From 8670c0662f574b7bc965a84610759dbaf522f11c Mon Sep 17 00:00:00 2001 From: Julian Dominguez-Schatz Date: Sat, 19 Oct 2024 17:50:11 -0400 Subject: [PATCH 01/16] Auto-reload on app updates --- packages/desktop-client/src/browser-preload.browser.js | 3 +++ 1 file changed, 3 insertions(+) diff --git a/packages/desktop-client/src/browser-preload.browser.js b/packages/desktop-client/src/browser-preload.browser.js index 4a04b0e23c0..df0d16c0fe8 100644 --- a/packages/desktop-client/src/browser-preload.browser.js +++ b/packages/desktop-client/src/browser-preload.browser.js @@ -1,4 +1,5 @@ import { initBackend as initSQLBackend } from 'absurd-sql/dist/indexeddb-main-thread'; +import { registerSW } from 'virtual:pwa-register'; import * as Platform from 'loot-core/src/client/platform'; @@ -186,3 +187,5 @@ document.addEventListener('keydown', e => { } } }); + +registerSW({ immediate: true }); From a7dd9bc9968cd454fa21dd727d5210baf1e5712a Mon Sep 17 00:00:00 2001 From: Julian Dominguez-Schatz Date: Sat, 19 Oct 2024 17:54:23 -0400 Subject: [PATCH 02/16] update #1 --- packages/desktop-client/src/components/Titlebar.tsx | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/desktop-client/src/components/Titlebar.tsx b/packages/desktop-client/src/components/Titlebar.tsx index d80f409c6d4..0ba2f378394 100644 --- a/packages/desktop-client/src/components/Titlebar.tsx +++ b/packages/desktop-client/src/components/Titlebar.tsx @@ -286,6 +286,7 @@ export function Titlebar({ style }: TitlebarProps) { Platform.OS === 'mac' && floatingSidebar && { paddingLeft: 80 }), ...style, + background: 'red', }} > {(floatingSidebar || sidebar.alwaysFloats) && ( From 51d00366f46f7740be67bed68309cf76df87cdda Mon Sep 17 00:00:00 2001 From: Julian Dominguez-Schatz Date: Sun, 20 Oct 2024 00:20:49 -0400 Subject: [PATCH 03/16] test --- packages/desktop-client/src/browser-preload.browser.js | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/packages/desktop-client/src/browser-preload.browser.js b/packages/desktop-client/src/browser-preload.browser.js index df0d16c0fe8..a7d340b83f6 100644 --- a/packages/desktop-client/src/browser-preload.browser.js +++ b/packages/desktop-client/src/browser-preload.browser.js @@ -188,4 +188,8 @@ document.addEventListener('keydown', e => { } }); -registerSW({ immediate: true }); +registerSW({ + onNeedRefresh: () => { + console.log('SW needs refresh'); + }, +}); From a756a6ec7da02ee2c4618c6dbbe289e748054b59 Mon Sep 17 00:00:00 2001 From: Julian Dominguez-Schatz Date: Sun, 20 Oct 2024 01:13:37 -0400 Subject: [PATCH 04/16] wip --- .../src/browser-preload.browser.js | 19 ++++++---- .../desktop-client/src/components/App.tsx | 37 +++++++++++++------ packages/desktop-client/src/index.tsx | 7 +++- packages/desktop-client/vite.config.mts | 2 +- 4 files changed, 45 insertions(+), 20 deletions(-) diff --git a/packages/desktop-client/src/browser-preload.browser.js b/packages/desktop-client/src/browser-preload.browser.js index a7d340b83f6..c4a7f40d880 100644 --- a/packages/desktop-client/src/browser-preload.browser.js +++ b/packages/desktop-client/src/browser-preload.browser.js @@ -40,6 +40,14 @@ function createBackendWorker() { createBackendWorker(); +let needRefresh = false; +const updateSW = registerSW({ + immediate: true, + onNeedRefresh: () => { + needRefresh = true; + }, +}); + global.Actual = { IS_DEV, ACTUAL_VERSION, @@ -141,7 +149,10 @@ global.Actual = { window.open(url, '_blank'); }, onEventFromMain: () => {}, - applyAppUpdate: () => {}, + isUpdateReadyForDownload: () => needRefresh, + applyAppUpdate: () => { + updateSW(); + }, updateAppMenu: () => {}, ipcConnect: () => {}, @@ -187,9 +198,3 @@ document.addEventListener('keydown', e => { } } }); - -registerSW({ - onNeedRefresh: () => { - console.log('SW needs refresh'); - }, -}); diff --git a/packages/desktop-client/src/components/App.tsx b/packages/desktop-client/src/components/App.tsx index f7785d58df4..f503a046f55 100644 --- a/packages/desktop-client/src/components/App.tsx +++ b/packages/desktop-client/src/components/App.tsx @@ -51,6 +51,19 @@ function AppInner() { const { showBoundary: showErrorBoundary } = useErrorBoundary(); const dispatch = useDispatch(); + const maybeUpdate = async (cb: () => T): T => { + if (global.Actual.isUpdateReadyForDownload()) { + dispatch( + setAppState({ + loadingText: t('Downloading and applying update...'), + }), + ); + global.Actual.applyAppUpdate(); + await new Promise(() => {}); + } + return cb(); + }; + async function init() { const socketName = await global.Actual.getServerSocket(); @@ -59,7 +72,7 @@ function AppInner() { loadingText: t('Initializing the connection to the local database...'), }), ); - await initConnection(socketName); + await maybeUpdate(() => initConnection(socketName)); // Load any global prefs dispatch( @@ -67,7 +80,7 @@ function AppInner() { loadingText: t('Loading global preferences...'), }), ); - await dispatch(loadGlobalPrefs()); + maybeUpdate(() => dispatch(loadGlobalPrefs())); // Open the last opened budget, if any dispatch( @@ -75,9 +88,9 @@ function AppInner() { loadingText: t('Opening last budget...'), }), ); - const budgetId = await send('get-last-opened-backup'); + const budgetId = await maybeUpdate(() => send('get-last-opened-backup')); if (budgetId) { - await dispatch(loadBudget(budgetId)); + maybeUpdate(() => dispatch(loadBudget(budgetId))); // Check to see if this file has been remotely deleted (but // don't block on this in case they are offline or something) @@ -86,14 +99,16 @@ function AppInner() { loadingText: t('Retrieving remote files...'), }), ); - send('get-remote-files').then(files => { - if (files) { - const remoteFile = files.find(f => f.fileId === cloudFileId); - if (remoteFile && remoteFile.deleted) { - dispatch(closeBudget()); + await maybeUpdate(() => + send('get-remote-files').then(files => { + if (files) { + const remoteFile = files.find(f => f.fileId === cloudFileId); + if (remoteFile && remoteFile.deleted) { + dispatch(closeBudget()); + } } - } - }); + }), + ); } } diff --git a/packages/desktop-client/src/index.tsx b/packages/desktop-client/src/index.tsx index c6800e70473..af9f5c664e5 100644 --- a/packages/desktop-client/src/index.tsx +++ b/packages/desktop-client/src/index.tsx @@ -58,7 +58,12 @@ function rootReducer(state, action) { return appReducer(state, action); } -const store = createStore(rootReducer, undefined, applyMiddleware(thunk)); +const composeEnhancers = window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ || compose; +const store = createStore( + rootReducer, + undefined, + composeEnhancers(applyMiddleware(thunk)), +); const boundActions = bindActionCreators( actions, store.dispatch, diff --git a/packages/desktop-client/vite.config.mts b/packages/desktop-client/vite.config.mts index ca7a93a61e7..0f921416bea 100644 --- a/packages/desktop-client/vite.config.mts +++ b/packages/desktop-client/vite.config.mts @@ -152,7 +152,7 @@ export default defineConfig(async ({ mode }) => { mode === 'desktop' ? undefined : VitePWA({ - registerType: 'autoUpdate', + registerType: 'prompt', workbox: { globPatterns: [ '**/*.{js,css,html,txt,wasm,sql,sqlite,ico,png,woff2,webmanifest}', From 3f6c96a0e277e5d9d5e7b56a25386e81314aa7cc Mon Sep 17 00:00:00 2001 From: Julian Dominguez-Schatz Date: Sun, 20 Oct 2024 01:14:10 -0400 Subject: [PATCH 05/16] green --- packages/desktop-client/src/components/Titlebar.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/desktop-client/src/components/Titlebar.tsx b/packages/desktop-client/src/components/Titlebar.tsx index 0ba2f378394..9bcb6a2a7c0 100644 --- a/packages/desktop-client/src/components/Titlebar.tsx +++ b/packages/desktop-client/src/components/Titlebar.tsx @@ -286,7 +286,7 @@ export function Titlebar({ style }: TitlebarProps) { Platform.OS === 'mac' && floatingSidebar && { paddingLeft: 80 }), ...style, - background: 'red', + background: 'green', }} > {(floatingSidebar || sidebar.alwaysFloats) && ( From 4875067e8fec1482a7ab3e301ebdca3b2883399a Mon Sep 17 00:00:00 2001 From: Julian Dominguez-Schatz Date: Sun, 20 Oct 2024 01:23:16 -0400 Subject: [PATCH 06/16] wip --- packages/desktop-client/src/components/App.tsx | 3 ++- packages/desktop-client/src/components/Titlebar.tsx | 2 +- packages/desktop-client/src/index.tsx | 4 ++-- 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/packages/desktop-client/src/components/App.tsx b/packages/desktop-client/src/components/App.tsx index f503a046f55..019dece0477 100644 --- a/packages/desktop-client/src/components/App.tsx +++ b/packages/desktop-client/src/components/App.tsx @@ -51,8 +51,9 @@ function AppInner() { const { showBoundary: showErrorBoundary } = useErrorBoundary(); const dispatch = useDispatch(); - const maybeUpdate = async (cb: () => T): T => { + const maybeUpdate = async (cb: () => T): Promise => { if (global.Actual.isUpdateReadyForDownload()) { + console.log('set text for update:'); dispatch( setAppState({ loadingText: t('Downloading and applying update...'), diff --git a/packages/desktop-client/src/components/Titlebar.tsx b/packages/desktop-client/src/components/Titlebar.tsx index 9bcb6a2a7c0..0ba2f378394 100644 --- a/packages/desktop-client/src/components/Titlebar.tsx +++ b/packages/desktop-client/src/components/Titlebar.tsx @@ -286,7 +286,7 @@ export function Titlebar({ style }: TitlebarProps) { Platform.OS === 'mac' && floatingSidebar && { paddingLeft: 80 }), ...style, - background: 'green', + background: 'red', }} > {(floatingSidebar || sidebar.alwaysFloats) && ( diff --git a/packages/desktop-client/src/index.tsx b/packages/desktop-client/src/index.tsx index af9f5c664e5..8d3e585a1c4 100644 --- a/packages/desktop-client/src/index.tsx +++ b/packages/desktop-client/src/index.tsx @@ -58,11 +58,11 @@ function rootReducer(state, action) { return appReducer(state, action); } -const composeEnhancers = window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ || compose; +const compose = window['__REDUX_DEVTOOLS_EXTENSION_COMPOSE__'] || (f => f); const store = createStore( rootReducer, undefined, - composeEnhancers(applyMiddleware(thunk)), + compose(applyMiddleware(thunk)), ); const boundActions = bindActionCreators( actions, From 02b31638b54ceac8ff9eb962e73322d7fad054ff Mon Sep 17 00:00:00 2001 From: Julian Dominguez-Schatz Date: Sun, 20 Oct 2024 14:32:52 -0400 Subject: [PATCH 07/16] ux --- .../src/browser-preload.browser.js | 21 +++++++++++----- .../desktop-client/src/components/App.tsx | 4 +-- .../src/components/FinancesApp.tsx | 25 +++++++++++++++++++ packages/loot-core/src/client/actions/app.ts | 2 +- 4 files changed, 42 insertions(+), 10 deletions(-) diff --git a/packages/desktop-client/src/browser-preload.browser.js b/packages/desktop-client/src/browser-preload.browser.js index c4a7f40d880..95c048247c8 100644 --- a/packages/desktop-client/src/browser-preload.browser.js +++ b/packages/desktop-client/src/browser-preload.browser.js @@ -40,12 +40,17 @@ function createBackendWorker() { createBackendWorker(); -let needRefresh = false; +let isUpdateReadyForDownload = false; +let markUpdateReadyForDownload; +const isUpdateReadyForDownloadPromise = new Promise(resolve => { + markUpdateReadyForDownload = () => { + isUpdateReadyForDownload = true; + resolve(true); + }; +}); const updateSW = registerSW({ immediate: true, - onNeedRefresh: () => { - needRefresh = true; - }, + onNeedRefresh: markUpdateReadyForDownload, }); global.Actual = { @@ -149,9 +154,13 @@ global.Actual = { window.open(url, '_blank'); }, onEventFromMain: () => {}, - isUpdateReadyForDownload: () => needRefresh, - applyAppUpdate: () => { + isUpdateReadyForDownload: () => isUpdateReadyForDownload, + waitForUpdateReadyForDownload: () => isUpdateReadyForDownloadPromise, + applyAppUpdate: async () => { updateSW(); + + // Wait for the app to reload + await new Promise(() => {}); }, updateAppMenu: () => {}, diff --git a/packages/desktop-client/src/components/App.tsx b/packages/desktop-client/src/components/App.tsx index 019dece0477..3557ef3d5b5 100644 --- a/packages/desktop-client/src/components/App.tsx +++ b/packages/desktop-client/src/components/App.tsx @@ -53,14 +53,12 @@ function AppInner() { const maybeUpdate = async (cb: () => T): Promise => { if (global.Actual.isUpdateReadyForDownload()) { - console.log('set text for update:'); dispatch( setAppState({ loadingText: t('Downloading and applying update...'), }), ); - global.Actual.applyAppUpdate(); - await new Promise(() => {}); + await global.Actual.applyAppUpdate(); } return cb(); }; diff --git a/packages/desktop-client/src/components/FinancesApp.tsx b/packages/desktop-client/src/components/FinancesApp.tsx index b585d5d30ee..acefff97e31 100644 --- a/packages/desktop-client/src/components/FinancesApp.tsx +++ b/packages/desktop-client/src/components/FinancesApp.tsx @@ -100,6 +100,31 @@ export function FinancesApp() { }, 100); }, []); + useEffect(() => { + async function run() { + await global.Actual.waitForUpdateReadyForDownload(); + dispatch( + addNotification({ + type: 'message', + title: t('A new version of Actual is available!'), + message: t( + 'A new version of Actual is available from the server. Reload to update.', + ), + sticky: true, + id: 'update-notification', + button: { + title: t('Download update'), + action: async () => { + await global.Actual.applyAppUpdate(); + }, + }, + }), + ); + } + + run(); + }, []); + useEffect(() => { async function run() { const latestVersion = await getLatestVersion(); diff --git a/packages/loot-core/src/client/actions/app.ts b/packages/loot-core/src/client/actions/app.ts index 6f322b196c6..b2a707ffb26 100644 --- a/packages/loot-core/src/client/actions/app.ts +++ b/packages/loot-core/src/client/actions/app.ts @@ -18,7 +18,7 @@ export function setAppState(state: Partial): SetAppStateAction { export function updateApp() { return async (dispatch: Dispatch) => { - global.Actual.applyAppUpdate(); + await global.Actual.applyAppUpdate(); dispatch(setAppState({ updateInfo: null })); }; } From 1d90848bd592d00811694b34ae8b5c326b2d1d0c Mon Sep 17 00:00:00 2001 From: Julian Dominguez-Schatz Date: Sun, 20 Oct 2024 14:33:07 -0400 Subject: [PATCH 08/16] green --- packages/desktop-client/src/components/Titlebar.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/desktop-client/src/components/Titlebar.tsx b/packages/desktop-client/src/components/Titlebar.tsx index 0ba2f378394..9bcb6a2a7c0 100644 --- a/packages/desktop-client/src/components/Titlebar.tsx +++ b/packages/desktop-client/src/components/Titlebar.tsx @@ -286,7 +286,7 @@ export function Titlebar({ style }: TitlebarProps) { Platform.OS === 'mac' && floatingSidebar && { paddingLeft: 80 }), ...style, - background: 'red', + background: 'green', }} > {(floatingSidebar || sidebar.alwaysFloats) && ( From 5c6a548a4f67959b487a26ee2ee9f93398607a2c Mon Sep 17 00:00:00 2001 From: Julian Dominguez-Schatz Date: Sun, 20 Oct 2024 14:33:21 -0400 Subject: [PATCH 09/16] red --- packages/desktop-client/src/components/Titlebar.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/desktop-client/src/components/Titlebar.tsx b/packages/desktop-client/src/components/Titlebar.tsx index 9bcb6a2a7c0..0ba2f378394 100644 --- a/packages/desktop-client/src/components/Titlebar.tsx +++ b/packages/desktop-client/src/components/Titlebar.tsx @@ -286,7 +286,7 @@ export function Titlebar({ style }: TitlebarProps) { Platform.OS === 'mac' && floatingSidebar && { paddingLeft: 80 }), ...style, - background: 'green', + background: 'red', }} > {(floatingSidebar || sidebar.alwaysFloats) && ( From 40f7ba5b81ffcaba1fb2de061a38135d5c97280c Mon Sep 17 00:00:00 2001 From: Julian Dominguez-Schatz Date: Sun, 20 Oct 2024 14:49:28 -0400 Subject: [PATCH 10/16] cleanup --- packages/desktop-client/src/components/FinancesApp.tsx | 6 ++---- packages/desktop-client/src/components/Titlebar.tsx | 1 - 2 files changed, 2 insertions(+), 5 deletions(-) diff --git a/packages/desktop-client/src/components/FinancesApp.tsx b/packages/desktop-client/src/components/FinancesApp.tsx index acefff97e31..87d9508f8c3 100644 --- a/packages/desktop-client/src/components/FinancesApp.tsx +++ b/packages/desktop-client/src/components/FinancesApp.tsx @@ -107,13 +107,11 @@ export function FinancesApp() { addNotification({ type: 'message', title: t('A new version of Actual is available!'), - message: t( - 'A new version of Actual is available from the server. Reload to update.', - ), + message: t('Click the button below to reload and apply the update.'), sticky: true, id: 'update-notification', button: { - title: t('Download update'), + title: t('Update now'), action: async () => { await global.Actual.applyAppUpdate(); }, diff --git a/packages/desktop-client/src/components/Titlebar.tsx b/packages/desktop-client/src/components/Titlebar.tsx index 0ba2f378394..d80f409c6d4 100644 --- a/packages/desktop-client/src/components/Titlebar.tsx +++ b/packages/desktop-client/src/components/Titlebar.tsx @@ -286,7 +286,6 @@ export function Titlebar({ style }: TitlebarProps) { Platform.OS === 'mac' && floatingSidebar && { paddingLeft: 80 }), ...style, - background: 'red', }} > {(floatingSidebar || sidebar.alwaysFloats) && ( From 303464872ee2682a81215cd4c5eb2827c4e4f613 Mon Sep 17 00:00:00 2001 From: Julian Dominguez-Schatz Date: Sun, 20 Oct 2024 15:04:44 -0400 Subject: [PATCH 11/16] Add release notes --- upcoming-release-notes/3693.md | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 upcoming-release-notes/3693.md diff --git a/upcoming-release-notes/3693.md b/upcoming-release-notes/3693.md new file mode 100644 index 00000000000..c6c3969d814 --- /dev/null +++ b/upcoming-release-notes/3693.md @@ -0,0 +1,6 @@ +--- +category: Enhancements +authors: [jfdoming] +--- + +Auto-reload on app updates if possible, and show a notification if not possible From fbe2df862bca6722c0ea696b4b1aa9b7027af237 Mon Sep 17 00:00:00 2001 From: Julian Dominguez-Schatz Date: Sun, 20 Oct 2024 15:10:35 -0400 Subject: [PATCH 12/16] Unique notification name --- packages/desktop-client/src/components/FinancesApp.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/desktop-client/src/components/FinancesApp.tsx b/packages/desktop-client/src/components/FinancesApp.tsx index 87d9508f8c3..387b8bbcac5 100644 --- a/packages/desktop-client/src/components/FinancesApp.tsx +++ b/packages/desktop-client/src/components/FinancesApp.tsx @@ -109,7 +109,7 @@ export function FinancesApp() { title: t('A new version of Actual is available!'), message: t('Click the button below to reload and apply the update.'), sticky: true, - id: 'update-notification', + id: 'update-reload-notification', button: { title: t('Update now'), action: async () => { From 972af99081a4d34951d11fbb5c40ea2cb782e558 Mon Sep 17 00:00:00 2001 From: Julian Dominguez-Schatz Date: Sun, 20 Oct 2024 15:12:26 -0400 Subject: [PATCH 13/16] Missing awaits --- packages/desktop-client/src/components/App.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/desktop-client/src/components/App.tsx b/packages/desktop-client/src/components/App.tsx index 3557ef3d5b5..6e0874b71d8 100644 --- a/packages/desktop-client/src/components/App.tsx +++ b/packages/desktop-client/src/components/App.tsx @@ -79,7 +79,7 @@ function AppInner() { loadingText: t('Loading global preferences...'), }), ); - maybeUpdate(() => dispatch(loadGlobalPrefs())); + await maybeUpdate(() => dispatch(loadGlobalPrefs())); // Open the last opened budget, if any dispatch( @@ -89,7 +89,7 @@ function AppInner() { ); const budgetId = await maybeUpdate(() => send('get-last-opened-backup')); if (budgetId) { - maybeUpdate(() => dispatch(loadBudget(budgetId))); + await maybeUpdate(() => dispatch(loadBudget(budgetId))); // Check to see if this file has been remotely deleted (but // don't block on this in case they are offline or something) From a5ed42586ab7dc2b4d9fe2a21946d0b035eac1f9 Mon Sep 17 00:00:00 2001 From: Julian Dominguez-Schatz Date: Sun, 20 Oct 2024 15:19:56 -0400 Subject: [PATCH 14/16] Try to fix Electron app --- packages/desktop-electron/preload.ts | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/packages/desktop-electron/preload.ts b/packages/desktop-electron/preload.ts index c6f8327ebf5..1f98a39096a 100644 --- a/packages/desktop-electron/preload.ts +++ b/packages/desktop-electron/preload.ts @@ -66,6 +66,10 @@ contextBridge.exposeInMainWorld('Actual', { ipcRenderer.send('update-menu', budgetId); }, + // No auto-updates in the desktop app + isUpdateReadyForDownload: () => false, + waitForUpdateReadyForDownload: () => new Promise(() => {}), + getServerSocket: () => { return null; }, From cf2824194537403965dfe32625a58a04599c6ebc Mon Sep 17 00:00:00 2001 From: Julian Dominguez-Schatz Date: Wed, 30 Oct 2024 08:33:39 -0400 Subject: [PATCH 15/16] Simplify update checking --- .../desktop-client/src/components/App.tsx | 32 +++++++++---------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/packages/desktop-client/src/components/App.tsx b/packages/desktop-client/src/components/App.tsx index 6e0874b71d8..e81cca7734f 100644 --- a/packages/desktop-client/src/components/App.tsx +++ b/packages/desktop-client/src/components/App.tsx @@ -51,7 +51,7 @@ function AppInner() { const { showBoundary: showErrorBoundary } = useErrorBoundary(); const dispatch = useDispatch(); - const maybeUpdate = async (cb: () => T): Promise => { + const maybeUpdate = async (cb?: () => T): Promise => { if (global.Actual.isUpdateReadyForDownload()) { dispatch( setAppState({ @@ -60,18 +60,18 @@ function AppInner() { ); await global.Actual.applyAppUpdate(); } - return cb(); + return cb?.(); }; async function init() { - const socketName = await global.Actual.getServerSocket(); + const socketName = await maybeUpdate(() => global.Actual.getServerSocket()); dispatch( setAppState({ loadingText: t('Initializing the connection to the local database...'), }), ); - await maybeUpdate(() => initConnection(socketName)); + await initConnection(socketName); // Load any global prefs dispatch( @@ -79,7 +79,7 @@ function AppInner() { loadingText: t('Loading global preferences...'), }), ); - await maybeUpdate(() => dispatch(loadGlobalPrefs())); + await dispatch(loadGlobalPrefs()); // Open the last opened budget, if any dispatch( @@ -87,9 +87,9 @@ function AppInner() { loadingText: t('Opening last budget...'), }), ); - const budgetId = await maybeUpdate(() => send('get-last-opened-backup')); + const budgetId = await send('get-last-opened-backup'); if (budgetId) { - await maybeUpdate(() => dispatch(loadBudget(budgetId))); + await dispatch(loadBudget(budgetId)); // Check to see if this file has been remotely deleted (but // don't block on this in case they are offline or something) @@ -98,16 +98,16 @@ function AppInner() { loadingText: t('Retrieving remote files...'), }), ); - await maybeUpdate(() => - send('get-remote-files').then(files => { - if (files) { - const remoteFile = files.find(f => f.fileId === cloudFileId); - if (remoteFile && remoteFile.deleted) { - dispatch(closeBudget()); - } + await send('get-remote-files').then(files => { + if (files) { + const remoteFile = files.find(f => f.fileId === cloudFileId); + if (remoteFile && remoteFile.deleted) { + dispatch(closeBudget()); } - }), - ); + } + }); + + await maybeUpdate(); } } From b202c3ff3a4f751766f76c6cef5294887d1d98d2 Mon Sep 17 00:00:00 2001 From: Julian Dominguez-Schatz Date: Thu, 31 Oct 2024 23:19:44 -0400 Subject: [PATCH 16/16] PR feedback --- packages/desktop-client/src/components/App.tsx | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/packages/desktop-client/src/components/App.tsx b/packages/desktop-client/src/components/App.tsx index e81cca7734f..75841207b0c 100644 --- a/packages/desktop-client/src/components/App.tsx +++ b/packages/desktop-client/src/components/App.tsx @@ -98,14 +98,14 @@ function AppInner() { loadingText: t('Retrieving remote files...'), }), ); - await send('get-remote-files').then(files => { - if (files) { - const remoteFile = files.find(f => f.fileId === cloudFileId); - if (remoteFile && remoteFile.deleted) { - dispatch(closeBudget()); - } + + const files = await send('get-remote-files'); + if (files) { + const remoteFile = files.find(f => f.fileId === cloudFileId); + if (remoteFile && remoteFile.deleted) { + dispatch(closeBudget()); } - }); + } await maybeUpdate(); }