From f90033dbf699b50740ee67b9b7c43f1eff91092d Mon Sep 17 00:00:00 2001 From: minibits-cash Date: Thu, 30 May 2024 10:10:07 +0200 Subject: [PATCH] Register push token on changing notification settings --- src/App.tsx | 4 ++-- src/models/WalletProfileStore.ts | 8 ++++++-- src/screens/SettingsScreen.tsx | 2 +- 3 files changed, 9 insertions(+), 5 deletions(-) diff --git a/src/App.tsx b/src/App.tsx index 5383ae56..1c25ee6d 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -78,8 +78,8 @@ function App(props: AppProps) { log.debug('[useInitialRootStore]', {deviceToken}) // Save new or refreshed token to local and server profile - if (deviceToken.length > 0 && deviceToken !== walletProfileStore.device) { - walletProfileStore.setDevice(deviceToken) + if (deviceToken.length > 0) { + await walletProfileStore.setDevice(deviceToken) } // Set initial websocket to close as it might have remained open on last app close diff --git a/src/models/WalletProfileStore.ts b/src/models/WalletProfileStore.ts index d8b0e662..bbabd2ed 100644 --- a/src/models/WalletProfileStore.ts +++ b/src/models/WalletProfileStore.ts @@ -257,8 +257,12 @@ export const WalletProfileStoreModel = types return self }), setDevice: flow(function* setDevice(device: string) { - self.device = device - yield MinibitsClient.updateDeviceToken(self.pubkey, {deviceToken: device}) + try { + yield MinibitsClient.updateDeviceToken(self.pubkey, {deviceToken: device}) + self.device = device + } catch (e: any) { + log.error('[setDevice]', e.message) + } }), setNip05(nip05: string) { // used in migration to v3 model self.nip05 = nip05 diff --git a/src/screens/SettingsScreen.tsx b/src/screens/SettingsScreen.tsx index cd0515ae..24706fa9 100644 --- a/src/screens/SettingsScreen.tsx +++ b/src/screens/SettingsScreen.tsx @@ -89,7 +89,7 @@ export const SettingsScreen: FC = observer( log.debug('[SettingsScreen.useEffect]', {deviceToken}) // Save new or refreshed token to local and server profile - if (deviceToken.length > 0 && deviceToken !== walletProfileStore.device) { + if (deviceToken.length) { walletProfileStore.setDevice(deviceToken) } } catch (e: any) {