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

View File

@@ -1,5 +1,6 @@
import type { Environment, RuntimeConfig } from '@affine/env/global';
import type {
ConfigStorageHandlerManager,
DBHandlerManager,
DebugHandlerManager,
DialogHandlerManager,
@@ -24,6 +25,7 @@ declare global {
ui: UnwrapManagerHandlerToClientSide<UIHandlerManager>;
updater: UnwrapManagerHandlerToClientSide<UpdaterHandlerManager>;
workspace: UnwrapManagerHandlerToClientSide<WorkspaceHandlerManager>;
configStorage: UnwrapManagerHandlerToClientSide<ConfigStorageHandlerManager>;
};
events: EventMap;
affine: {