From 521ef2530b6a358649e9d32b57c2bbfdc2482215 Mon Sep 17 00:00:00 2001 From: jcesarmobile Date: Mon, 4 Mar 2024 11:36:22 +0000 Subject: [PATCH] fix: Use await on addListener --- src/App.tsx | 7 ++++++- src/pages/App.tsx | 20 ++++++++++++-------- src/pages/Browser.tsx | 10 ++++++---- src/pages/Filesystem.tsx | 7 ++++++- src/pages/Keyboard.tsx | 10 +++++++--- src/pages/LocalNotifications.tsx | 2 +- src/pages/Network.tsx | 8 ++++++-- src/pages/PushNotifications.tsx | 2 +- src/pages/ScreenReader.tsx | 8 ++++++-- src/pages/TextZoom.tsx | 4 ++-- 10 files changed, 53 insertions(+), 25 deletions(-) diff --git a/src/App.tsx b/src/App.tsx index b4a0dcd0..9056ca89 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -1,6 +1,11 @@ import React, { useEffect } from 'react'; import { Redirect, Route } from 'react-router-dom'; -import { IonApp, IonRouterOutlet, IonSplitPane, setupIonicReact } from '@ionic/react'; +import { + IonApp, + IonRouterOutlet, + IonSplitPane, + setupIonicReact, +} from '@ionic/react'; import { IonReactRouter } from '@ionic/react-router'; import { SplashScreen } from '@capacitor/splash-screen'; diff --git a/src/pages/App.tsx b/src/pages/App.tsx index 278b5a03..2ec0981a 100644 --- a/src/pages/App.tsx +++ b/src/pages/App.tsx @@ -29,35 +29,39 @@ const AppPage: React.FC = () => { let restoredResultHandler: PluginListenerHandle; useIonViewDidEnter(() => { - stateChangeHandler = App.addListener( + setListeners(); + + getLaunchUrl(); + }); + + const setListeners = async () => { + stateChangeHandler = await App.addListener( 'appStateChange', (state: AppState) => { console.log('App state changed', state); }, ); - pauseHandler = App.addListener('pause', async () => { + pauseHandler = await App.addListener('pause', async () => { console.log('App paused'); }); - resumeHandler = App.addListener('resume', () => { + resumeHandler = await App.addListener('resume', () => { console.log('App resumed'); }); - urlOpenHandler = App.addListener('appUrlOpen', (data: any) => { + urlOpenHandler = await App.addListener('appUrlOpen', (data: any) => { alert('APP URL OPEN: ' + data.url); }); - restoredResultHandler = App.addListener( + restoredResultHandler = await App.addListener( 'appRestoredResult', (data: any) => { alert('Got restored result'); console.log('Restored result:', data); }, ); - - getLaunchUrl(); - }); + }; const getLaunchUrl = async () => { const ret = await App.getLaunchUrl(); diff --git a/src/pages/Browser.tsx b/src/pages/Browser.tsx index 53961722..b996f9e2 100644 --- a/src/pages/Browser.tsx +++ b/src/pages/Browser.tsx @@ -28,7 +28,7 @@ const BrowserPage: React.FC = () => { const autoCloseAfterDelay = async () => { loadedHandler?.remove(); - loadedHandler = Browser.addListener('browserPageLoaded', async () => { + loadedHandler = await Browser.addListener('browserPageLoaded', async () => { await timeout(1000); await Browser.close(); await timeout(200); @@ -37,12 +37,14 @@ const BrowserPage: React.FC = () => { }; useIonViewDidEnter(() => { - finishedHandler = Browser.addListener('browserFinished', async () => { + setListeners(); + }); + const setListeners = async () => { + finishedHandler = await Browser.addListener('browserFinished', async () => { await timeout(200); alert(`You closed the window`); }); - }); - + }; useIonViewDidLeave(() => { finishedHandler?.remove(); loadedHandler?.remove(); diff --git a/src/pages/Filesystem.tsx b/src/pages/Filesystem.tsx index cf82e0f8..a309c42e 100644 --- a/src/pages/Filesystem.tsx +++ b/src/pages/Filesystem.tsx @@ -13,7 +13,12 @@ import { IonProgressBar, } from '@ionic/react'; import React, { useState } from 'react'; -import { Filesystem, Directory, Encoding, ProgressStatus } from '@capacitor/filesystem'; +import { + Filesystem, + Directory, + Encoding, + ProgressStatus, +} from '@capacitor/filesystem'; interface myCallback { (path: string): void; diff --git a/src/pages/Keyboard.tsx b/src/pages/Keyboard.tsx index 375c67ae..3a822a1d 100644 --- a/src/pages/Keyboard.tsx +++ b/src/pages/Keyboard.tsx @@ -23,13 +23,17 @@ const KeyboardPage: React.FC = () => { let scrollEnabled = true; useIonViewDidEnter(() => { - showHandler = Keyboard.addListener('keyboardWillShow', info => { + setListeners(); + }); + + const setListeners = async () => { + showHandler = await Keyboard.addListener('keyboardWillShow', info => { console.log('keyboard show', info); }); - hideHandler = Keyboard.addListener('keyboardWillHide', () => { + hideHandler = await Keyboard.addListener('keyboardWillHide', () => { console.log('keyboard hide'); }); - }); + }; useIonViewDidLeave(() => { hideHandler.remove(); diff --git a/src/pages/LocalNotifications.tsx b/src/pages/LocalNotifications.tsx index f63a566f..9e226297 100644 --- a/src/pages/LocalNotifications.tsx +++ b/src/pages/LocalNotifications.tsx @@ -122,7 +122,7 @@ const LocalNotificationsPage: React.FC = () => { const checkPermissions = async () => { const permissions = await ensurePermissions(); setHasPermission(permissions); - } + }; return ( diff --git a/src/pages/Network.tsx b/src/pages/Network.tsx index 48cbc151..2b5a5757 100644 --- a/src/pages/Network.tsx +++ b/src/pages/Network.tsx @@ -33,7 +33,11 @@ class NetworkPage extends React.Component<{}, NetworkPageState> { ionViewDidEnter() { this.updateNetworkStatus(); - const handler = Network?.addListener( + this.setListeners(); + } + + setListeners = async () => { + const handler = await Network?.addListener( 'networkStatusChange', (status: ConnectionStatus) => { this.setState({ @@ -42,7 +46,7 @@ class NetworkPage extends React.Component<{}, NetworkPageState> { }, ); this.setState({ handler: handler }); - } + }; ionViewDidLeave() { this.state.handler?.remove(); diff --git a/src/pages/PushNotifications.tsx b/src/pages/PushNotifications.tsx index e3a884f0..fd4d571a 100644 --- a/src/pages/PushNotifications.tsx +++ b/src/pages/PushNotifications.tsx @@ -59,7 +59,7 @@ const PushNotificationsPage: React.FC = () => { const hasPermission = await ensurePermissions(); setHasPermission(hasPermission); await register(); - } + }; return ( diff --git a/src/pages/ScreenReader.tsx b/src/pages/ScreenReader.tsx index cf486a85..d32c8219 100644 --- a/src/pages/ScreenReader.tsx +++ b/src/pages/ScreenReader.tsx @@ -24,10 +24,14 @@ const ScreenReaderPage: React.FC = () => { const [sentence, setSentence] = useState('Hello World?'); useIonViewDidEnter(() => { - handler = ScreenReader.addListener('stateChange', ({ value }: any) => + setListeners(); + }); + + const setListeners = async () => { + handler = await ScreenReader.addListener('stateChange', ({ value }: any) => alert(`State Change! Screen Reader on? ${value}`), ); - }); + }; useIonViewDidLeave(() => { handler.remove(); diff --git a/src/pages/TextZoom.tsx b/src/pages/TextZoom.tsx index 3dae2254..8630faa1 100644 --- a/src/pages/TextZoom.tsx +++ b/src/pages/TextZoom.tsx @@ -36,8 +36,8 @@ const TextZoomPage: React.FC = () => { const getInitialZoom = async () => { const { value: level } = await TextZoom.get(); - setLevel(level.toString()); - } + setLevel(level.toString()); + }; const handleLevelInputChange = createEventTargetValueExtractor(setLevel);