feat(electron): onboarding at first launch logic for client and web (#5183)

- Added a simple abstraction of persistent storage class.
- Different persistence solutions are provided for web and client.
    - web: stored in localStorage
    - client: stored in the application directory as `.json` file
- Define persistent app-config schema
- Add a new hook that can interactive with persistent-app-config reactively
This commit is contained in:
Cats Juice
2023-12-19 07:17:54 +00:00
parent e0d328676d
commit 15dd20ef48
32 changed files with 470 additions and 29 deletions
@@ -10,6 +10,7 @@ import {
useNavigationType,
} from 'react-router-dom';
import { appConfigProxy } from '../hooks/use-app-config-storage';
import { performanceLogger } from '../shared';
const performanceSetupLogger = performanceLogger.namespace('setup');
@@ -47,5 +48,12 @@ export function setup() {
});
}
// load persistent config for electron
// TODO: should be sync, but it's not necessary for now
environment.isDesktop &&
appConfigProxy
.getSync()
.catch(() => console.error('failed to load app config'));
performanceSetupLogger.info('done');
}