mirror of
https://github.com/toeverything/AFFiNE.git
synced 2026-02-27 02:42:25 +08:00
fix(android): fix android nbstore provider (#9865)
This commit is contained in:
@@ -11,6 +11,7 @@
|
|||||||
"@affine/component": "workspace:*",
|
"@affine/component": "workspace:*",
|
||||||
"@affine/core": "workspace:*",
|
"@affine/core": "workspace:*",
|
||||||
"@affine/i18n": "workspace:*",
|
"@affine/i18n": "workspace:*",
|
||||||
|
"@affine/nbstore": "workspace:*",
|
||||||
"@blocksuite/affine": "workspace:*",
|
"@blocksuite/affine": "workspace:*",
|
||||||
"@blocksuite/icons": "2.2.2",
|
"@blocksuite/icons": "2.2.2",
|
||||||
"@capacitor/android": "^7.0.0",
|
"@capacitor/android": "^7.0.0",
|
||||||
|
|||||||
@@ -5,10 +5,15 @@ import { router } from '@affine/core/mobile/router';
|
|||||||
import { configureCommonModules } from '@affine/core/modules';
|
import { configureCommonModules } from '@affine/core/modules';
|
||||||
import { I18nProvider } from '@affine/core/modules/i18n';
|
import { I18nProvider } from '@affine/core/modules/i18n';
|
||||||
import { LifecycleService } from '@affine/core/modules/lifecycle';
|
import { LifecycleService } from '@affine/core/modules/lifecycle';
|
||||||
import { configureLocalStorageStateStorageImpls } from '@affine/core/modules/storage';
|
import {
|
||||||
|
configureLocalStorageStateStorageImpls,
|
||||||
|
NbstoreProvider,
|
||||||
|
} from '@affine/core/modules/storage';
|
||||||
import { configureBrowserWorkbenchModule } from '@affine/core/modules/workbench';
|
import { configureBrowserWorkbenchModule } from '@affine/core/modules/workbench';
|
||||||
import { configureBrowserWorkspaceFlavours } from '@affine/core/modules/workspace-engine';
|
import { configureBrowserWorkspaceFlavours } from '@affine/core/modules/workspace-engine';
|
||||||
|
import { WorkerClient } from '@affine/nbstore/worker/client';
|
||||||
import { Framework, FrameworkRoot, getCurrentStore } from '@toeverything/infra';
|
import { Framework, FrameworkRoot, getCurrentStore } from '@toeverything/infra';
|
||||||
|
import { OpClient } from '@toeverything/infra/op';
|
||||||
import { Suspense } from 'react';
|
import { Suspense } from 'react';
|
||||||
import { RouterProvider } from 'react-router-dom';
|
import { RouterProvider } from 'react-router-dom';
|
||||||
|
|
||||||
@@ -22,6 +27,20 @@ configureBrowserWorkbenchModule(framework);
|
|||||||
configureLocalStorageStateStorageImpls(framework);
|
configureLocalStorageStateStorageImpls(framework);
|
||||||
configureBrowserWorkspaceFlavours(framework);
|
configureBrowserWorkspaceFlavours(framework);
|
||||||
configureMobileModules(framework);
|
configureMobileModules(framework);
|
||||||
|
framework.impl(NbstoreProvider, {
|
||||||
|
openStore(_key, options) {
|
||||||
|
const worker = new Worker(
|
||||||
|
new URL(/* webpackChunkName: "nbstore" */ './nbstore.ts', import.meta.url)
|
||||||
|
);
|
||||||
|
const client = new WorkerClient(new OpClient(worker), options);
|
||||||
|
return {
|
||||||
|
store: client,
|
||||||
|
dispose: () => {
|
||||||
|
worker.terminate();
|
||||||
|
},
|
||||||
|
};
|
||||||
|
},
|
||||||
|
});
|
||||||
const frameworkProvider = framework.provider();
|
const frameworkProvider = framework.provider();
|
||||||
|
|
||||||
// setup application lifecycle events, and emit application start event
|
// setup application lifecycle events, and emit application start event
|
||||||
|
|||||||
22
packages/frontend/apps/android/src/nbstore.ts
Normal file
22
packages/frontend/apps/android/src/nbstore.ts
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
import '@affine/core/bootstrap/browser';
|
||||||
|
|
||||||
|
import { broadcastChannelStorages } from '@affine/nbstore/broadcast-channel';
|
||||||
|
import { cloudStorages } from '@affine/nbstore/cloud';
|
||||||
|
import { idbStorages } from '@affine/nbstore/idb';
|
||||||
|
import {
|
||||||
|
WorkerConsumer,
|
||||||
|
type WorkerOps,
|
||||||
|
} from '@affine/nbstore/worker/consumer';
|
||||||
|
import { type MessageCommunicapable, OpConsumer } from '@toeverything/infra/op';
|
||||||
|
|
||||||
|
const consumer = new WorkerConsumer([
|
||||||
|
...idbStorages,
|
||||||
|
...broadcastChannelStorages,
|
||||||
|
...cloudStorages,
|
||||||
|
]);
|
||||||
|
|
||||||
|
const opConsumer = new OpConsumer<WorkerOps>(
|
||||||
|
globalThis as MessageCommunicapable
|
||||||
|
);
|
||||||
|
|
||||||
|
consumer.bindConsumer(opConsumer);
|
||||||
@@ -10,6 +10,7 @@
|
|||||||
{ "path": "../../component" },
|
{ "path": "../../component" },
|
||||||
{ "path": "../../core" },
|
{ "path": "../../core" },
|
||||||
{ "path": "../../i18n" },
|
{ "path": "../../i18n" },
|
||||||
|
{ "path": "../../../common/nbstore" },
|
||||||
{ "path": "../../../../blocksuite/affine/all" },
|
{ "path": "../../../../blocksuite/affine/all" },
|
||||||
{ "path": "../../../common/infra" }
|
{ "path": "../../../common/infra" }
|
||||||
]
|
]
|
||||||
|
|||||||
@@ -504,6 +504,7 @@ export const PackageList = [
|
|||||||
'packages/frontend/component',
|
'packages/frontend/component',
|
||||||
'packages/frontend/core',
|
'packages/frontend/core',
|
||||||
'packages/frontend/i18n',
|
'packages/frontend/i18n',
|
||||||
|
'packages/common/nbstore',
|
||||||
'blocksuite/affine/all',
|
'blocksuite/affine/all',
|
||||||
'packages/common/infra',
|
'packages/common/infra',
|
||||||
],
|
],
|
||||||
|
|||||||
@@ -222,6 +222,7 @@ __metadata:
|
|||||||
"@affine/component": "workspace:*"
|
"@affine/component": "workspace:*"
|
||||||
"@affine/core": "workspace:*"
|
"@affine/core": "workspace:*"
|
||||||
"@affine/i18n": "workspace:*"
|
"@affine/i18n": "workspace:*"
|
||||||
|
"@affine/nbstore": "workspace:*"
|
||||||
"@blocksuite/affine": "workspace:*"
|
"@blocksuite/affine": "workspace:*"
|
||||||
"@blocksuite/icons": "npm:2.2.2"
|
"@blocksuite/icons": "npm:2.2.2"
|
||||||
"@capacitor/android": "npm:^7.0.0"
|
"@capacitor/android": "npm:^7.0.0"
|
||||||
|
|||||||
Reference in New Issue
Block a user