From f6abaa1cabb55ef5b495cfadb43d0ef9ff7e91f6 Mon Sep 17 00:00:00 2001 From: Faris Ansari Date: Tue, 28 Jan 2020 13:50:01 +0530 Subject: [PATCH] feat: File selector for multi-company switching - Use config file to store preferences --- package.json | 1 + src/App.vue | 7 +- src/config.js | 4 + src/pages/DatabaseSelector.vue | 138 +++++++++++++++++++------- src/pages/Settings/TabSystem.vue | 54 +++++----- src/pages/SetupWizard/setupCompany.js | 13 +++ src/utils.js | 19 +++- yarn.lock | 84 +++++++++++++++- 8 files changed, 247 insertions(+), 73 deletions(-) create mode 100644 src/config.js diff --git a/package.json b/package.json index c9cd1d7b..69849a26 100644 --- a/package.json +++ b/package.json @@ -18,6 +18,7 @@ "main": "background.js", "dependencies": { "core-js": "^3.4.3", + "electron-store": "^5.1.0", "frappe-charts": "^1.3.0", "frappejs": "http://github.com/frappe/frappejs", "knex": "^0.20.4", diff --git a/src/App.vue b/src/App.vue index f98863bc..d22b1fbb 100644 --- a/src/App.vue +++ b/src/App.vue @@ -28,6 +28,7 @@ import DatabaseSelector from './pages/DatabaseSelector'; import Settings from '@/pages/Settings/Settings.vue'; import WindowsTitleBar from '@/components/WindowsTitleBar'; import { remote } from 'electron'; +import config from '@/config'; import { connectToLocalDatabase } from '@/utils'; import { getMainWindowSize } from '@/screenSize'; @@ -65,11 +66,11 @@ export default { WindowsTitleBar }, async mounted() { - let dbPath = localStorage.dbPath; - if (!dbPath) { + let lastSelectedFilePath = config.get('lastSelectedFilePath', null); + if (!lastSelectedFilePath) { this.activeScreen = 'DatabaseSelector'; } else { - await connectToLocalDatabase(dbPath); + await connectToLocalDatabase(lastSelectedFilePath); this.showSetupWizardOrDesk(); } }, diff --git a/src/config.js b/src/config.js new file mode 100644 index 00000000..d95dffb6 --- /dev/null +++ b/src/config.js @@ -0,0 +1,4 @@ +import Store from 'electron-store'; + +let config = new Store(); +export default config; diff --git a/src/pages/DatabaseSelector.vue b/src/pages/DatabaseSelector.vue index 44c992df..313c3c23 100644 --- a/src/pages/DatabaseSelector.vue +++ b/src/pages/DatabaseSelector.vue @@ -1,49 +1,101 @@