From 05f39a0cf0c2f5b00dcbc44e7b3fb9e228343c90 Mon Sep 17 00:00:00 2001 From: Rémy Raes Date: Sun, 16 Apr 2023 19:41:26 +0200 Subject: feat: Persist dev mode (#265) * feat: store dev mode state in persistent store * feat: display dev view on app launch if it was previously activated * refactor: separate debug and developper modes activation * docs: update debug/dev modes comment --- src-vue/src/plugins/store.ts | 32 ++++++++++++++++++++++---------- 1 file changed, 22 insertions(+), 10 deletions(-) (limited to 'src-vue') diff --git a/src-vue/src/plugins/store.ts b/src-vue/src/plugins/store.ts index 6f878277..00b8f35a 100644 --- a/src-vue/src/plugins/store.ts +++ b/src-vue/src/plugins/store.ts @@ -89,7 +89,13 @@ export const store = createStore({ checkNorthstarUpdates(state) { _get_northstar_version_number(state); }, - toggleDeveloperMode(state, affectMenuStyle = false) { + async toggleDebugMode(_state) { + let menu_bar_handle = document.querySelector('#fc_menu-bar'); + if (menu_bar_handle !== null) { + menu_bar_handle.classList.toggle('developer_build'); + } + }, + async toggleDeveloperMode(state) { state.developer_mode = !state.developer_mode; // Reset tab when closing dev mode. @@ -97,10 +103,9 @@ export const store = createStore({ store.commit('updateCurrentTab', Tabs.PLAY); } - let menu_bar_handle = document.querySelector('#fc_menu-bar'); - if (affectMenuStyle && menu_bar_handle !== null) { - menu_bar_handle.classList.toggle('developer_build'); - } + // Save dev mode state in persistent store + await persistentStore.set('dev_mode', state.developer_mode); + await persistentStore.save(); }, initialize(state) { _initializeApp(state); @@ -337,11 +342,18 @@ export const store = createStore({ * It invokes all Rust methods that are needed to initialize UI. */ async function _initializeApp(state: any) { - // Enable dev mode directly if application is in debug mode - if (await invoke("is_debug_mode")) { - store.commit('toggleDeveloperMode', true); - } else { - // Disable context menu in release build. + // Display dev view if dev mode was previously enabled. + const devModeEnabled: boolean = await persistentStore.get('dev_mode') ?? false; + const debugModeEnabled: boolean = await invoke("is_debug_mode"); + if (devModeEnabled) { + store.commit('toggleDeveloperMode'); + } + if (debugModeEnabled) { + store.commit('toggleDebugMode'); + } + + // Disable context menu in release build. + if (!debugModeEnabled) { document.addEventListener('contextmenu', event => event.preventDefault()); } -- cgit v1.2.3