mirror of
https://github.com/toeverything/AFFiNE.git
synced 2026-08-05 03:19:52 +08:00
refactor: setup files (#8201)
This commit is contained in:
@@ -5,7 +5,7 @@ import type { Awareness } from 'y-protocols/awareness.js';
|
|||||||
|
|
||||||
import { Entity } from '../../../framework';
|
import { Entity } from '../../../framework';
|
||||||
import { LiveData } from '../../../livedata';
|
import { LiveData } from '../../../livedata';
|
||||||
import { globalBlockSuiteSchema } from '../global-schema';
|
import { getAFFiNEWorkspaceSchema } from '../global-schema';
|
||||||
import type { WorkspaceScope } from '../scopes/workspace';
|
import type { WorkspaceScope } from '../scopes/workspace';
|
||||||
import { WorkspaceEngineService } from '../services/engine';
|
import { WorkspaceEngineService } from '../services/engine';
|
||||||
import { WorkspaceUpgradeService } from '../services/upgrade';
|
import { WorkspaceUpgradeService } from '../services/upgrade';
|
||||||
@@ -33,7 +33,7 @@ export class Workspace extends Entity {
|
|||||||
main: this.engine.blob,
|
main: this.engine.blob,
|
||||||
},
|
},
|
||||||
idGenerator: () => nanoid(),
|
idGenerator: () => nanoid(),
|
||||||
schema: globalBlockSuiteSchema,
|
schema: getAFFiNEWorkspaceSchema(),
|
||||||
});
|
});
|
||||||
this._docCollection.slots.docCreated.on(id => {
|
this._docCollection.slots.docCreated.on(id => {
|
||||||
this.engine.doc.markAsReady(id);
|
this.engine.doc.markAsReady(id);
|
||||||
|
|||||||
@@ -2,7 +2,13 @@ import { AffineSchemas } from '@blocksuite/blocks/schemas';
|
|||||||
import { AIChatBlockSchema } from '@blocksuite/presets';
|
import { AIChatBlockSchema } from '@blocksuite/presets';
|
||||||
import { Schema } from '@blocksuite/store';
|
import { Schema } from '@blocksuite/store';
|
||||||
|
|
||||||
export const globalBlockSuiteSchema = new Schema();
|
let _schema: Schema | null = null;
|
||||||
|
export function getAFFiNEWorkspaceSchema() {
|
||||||
|
if (!_schema) {
|
||||||
|
_schema = new Schema();
|
||||||
|
|
||||||
const schemas = [...AffineSchemas, AIChatBlockSchema];
|
_schema.register([...AffineSchemas, AIChatBlockSchema]);
|
||||||
globalBlockSuiteSchema.register(schemas);
|
}
|
||||||
|
|
||||||
|
return _schema;
|
||||||
|
}
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
export type { WorkspaceProfileInfo } from './entities/profile';
|
export type { WorkspaceProfileInfo } from './entities/profile';
|
||||||
export { Workspace } from './entities/workspace';
|
export { Workspace } from './entities/workspace';
|
||||||
export { WorkspaceEngineBeforeStart, WorkspaceInitialized } from './events';
|
export { WorkspaceEngineBeforeStart, WorkspaceInitialized } from './events';
|
||||||
export { globalBlockSuiteSchema } from './global-schema';
|
export { getAFFiNEWorkspaceSchema } from './global-schema';
|
||||||
export type { WorkspaceMetadata } from './metadata';
|
export type { WorkspaceMetadata } from './metadata';
|
||||||
export type { WorkspaceOpenOptions } from './open-options';
|
export type { WorkspaceOpenOptions } from './open-options';
|
||||||
export type { WorkspaceEngineProvider } from './providers/flavour';
|
export type { WorkspaceEngineProvider } from './providers/flavour';
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ import {
|
|||||||
import { MemoryBlobStorage } from '../../../sync/blob/blob';
|
import { MemoryBlobStorage } from '../../../sync/blob/blob';
|
||||||
import type { GlobalState } from '../../storage';
|
import type { GlobalState } from '../../storage';
|
||||||
import type { WorkspaceProfileInfo } from '../entities/profile';
|
import type { WorkspaceProfileInfo } from '../entities/profile';
|
||||||
import { globalBlockSuiteSchema } from '../global-schema';
|
import { getAFFiNEWorkspaceSchema } from '../global-schema';
|
||||||
import type { WorkspaceMetadata } from '../metadata';
|
import type { WorkspaceMetadata } from '../metadata';
|
||||||
import type {
|
import type {
|
||||||
WorkspaceEngineProvider,
|
WorkspaceEngineProvider,
|
||||||
@@ -57,7 +57,7 @@ export class TestingWorkspaceLocalProvider
|
|||||||
const docCollection = new DocCollection({
|
const docCollection = new DocCollection({
|
||||||
id: id,
|
id: id,
|
||||||
idGenerator: () => nanoid(),
|
idGenerator: () => nanoid(),
|
||||||
schema: globalBlockSuiteSchema,
|
schema: getAFFiNEWorkspaceSchema(),
|
||||||
blobSources: {
|
blobSources: {
|
||||||
main: blobStorage,
|
main: blobStorage,
|
||||||
},
|
},
|
||||||
@@ -94,7 +94,7 @@ export class TestingWorkspaceLocalProvider
|
|||||||
|
|
||||||
const bs = new DocCollection({
|
const bs = new DocCollection({
|
||||||
id,
|
id,
|
||||||
schema: globalBlockSuiteSchema,
|
schema: getAFFiNEWorkspaceSchema(),
|
||||||
});
|
});
|
||||||
|
|
||||||
applyUpdate(bs.doc, data);
|
applyUpdate(bs.doc, data);
|
||||||
|
|||||||
@@ -51,7 +51,6 @@
|
|||||||
"@types/uuid": "^10.0.0",
|
"@types/uuid": "^10.0.0",
|
||||||
"@vitejs/plugin-react-swc": "^3.6.0",
|
"@vitejs/plugin-react-swc": "^3.6.0",
|
||||||
"builder-util-runtime": "^9.2.5-alpha.2",
|
"builder-util-runtime": "^9.2.5-alpha.2",
|
||||||
"core-js": "^3.36.1",
|
|
||||||
"cross-env": "^7.0.3",
|
"cross-env": "^7.0.3",
|
||||||
"electron": "^32.0.0",
|
"electron": "^32.0.0",
|
||||||
"electron-log": "^5.1.2",
|
"electron-log": "^5.1.2",
|
||||||
|
|||||||
@@ -1,5 +1,4 @@
|
|||||||
import './polyfill/dispose';
|
import './setup';
|
||||||
import '@affine/core/bootstrap/preload';
|
|
||||||
import './global.css';
|
import './global.css';
|
||||||
|
|
||||||
import { appConfigProxy } from '@affine/core/hooks/use-app-config-storage';
|
import { appConfigProxy } from '@affine/core/hooks/use-app-config-storage';
|
||||||
|
|||||||
@@ -1,2 +0,0 @@
|
|||||||
import 'core-js/modules/esnext.symbol.async-dispose';
|
|
||||||
import 'core-js/modules/esnext.symbol.dispose';
|
|
||||||
@@ -0,0 +1,4 @@
|
|||||||
|
import { setupBlocksuite, setupElectron } from '@affine/core/bootstrap';
|
||||||
|
|
||||||
|
setupElectron();
|
||||||
|
setupBlocksuite();
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
import '@affine/component/theme/global.css';
|
import '@affine/component/theme/global.css';
|
||||||
import '@affine/component/theme/theme.css';
|
import '@affine/component/theme/theme.css';
|
||||||
import '@affine/core/bootstrap/preload';
|
|
||||||
import '../global.css';
|
import '../global.css';
|
||||||
|
import './setup';
|
||||||
|
|
||||||
import { ThemeProvider } from '@affine/component/theme-provider';
|
import { ThemeProvider } from '@affine/component/theme-provider';
|
||||||
import { configureAppTabsHeaderModule } from '@affine/core/modules/app-tabs-header';
|
import { configureAppTabsHeaderModule } from '@affine/core/modules/app-tabs-header';
|
||||||
|
|||||||
@@ -0,0 +1,3 @@
|
|||||||
|
import { setupElectron } from '@affine/core/bootstrap';
|
||||||
|
|
||||||
|
setupElectron();
|
||||||
@@ -21,9 +21,7 @@
|
|||||||
"@sentry/react": "^8.0.0",
|
"@sentry/react": "^8.0.0",
|
||||||
"@toeverything/theme": "^1.0.9",
|
"@toeverything/theme": "^1.0.9",
|
||||||
"clsx": "^2.1.1",
|
"clsx": "^2.1.1",
|
||||||
"core-js": "^3.36.1",
|
|
||||||
"figma-squircle": "^1.0.0",
|
"figma-squircle": "^1.0.0",
|
||||||
"intl-segmenter-polyfill-rs": "^0.1.7",
|
|
||||||
"jotai": "^2.9.3",
|
"jotai": "^2.9.3",
|
||||||
"jotai-effect": "^1.0.2",
|
"jotai-effect": "^1.0.2",
|
||||||
"jotai-scope": "^0.7.2",
|
"jotai-scope": "^0.7.2",
|
||||||
|
|||||||
@@ -1,8 +1,4 @@
|
|||||||
import './polyfill/dispose';
|
import './setup';
|
||||||
import './polyfill/intl-segmenter';
|
|
||||||
import './polyfill/promise-with-resolvers';
|
|
||||||
import './polyfill/request-idle-callback';
|
|
||||||
import '@affine/core/bootstrap/preload';
|
|
||||||
|
|
||||||
import { performanceLogger } from '@affine/core/shared';
|
import { performanceLogger } from '@affine/core/shared';
|
||||||
import {
|
import {
|
||||||
|
|||||||
@@ -1,2 +0,0 @@
|
|||||||
import 'core-js/modules/esnext.symbol.async-dispose';
|
|
||||||
import 'core-js/modules/esnext.symbol.dispose';
|
|
||||||
@@ -1,11 +0,0 @@
|
|||||||
if (Intl.Segmenter === undefined) {
|
|
||||||
await import('intl-segmenter-polyfill-rs').then(({ Segmenter }) => {
|
|
||||||
Object.defineProperty(Intl, 'Segmenter', {
|
|
||||||
value: Segmenter,
|
|
||||||
configurable: true,
|
|
||||||
writable: true,
|
|
||||||
});
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
export {};
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
import 'core-js/features/promise/with-resolvers';
|
|
||||||
@@ -1,19 +0,0 @@
|
|||||||
window.requestIdleCallback =
|
|
||||||
window.requestIdleCallback ||
|
|
||||||
function (cb) {
|
|
||||||
const start = Date.now();
|
|
||||||
return setTimeout(function () {
|
|
||||||
cb({
|
|
||||||
didTimeout: false,
|
|
||||||
timeRemaining: function () {
|
|
||||||
return Math.max(0, 50 - (Date.now() - start));
|
|
||||||
},
|
|
||||||
});
|
|
||||||
}, 1);
|
|
||||||
};
|
|
||||||
|
|
||||||
window.cancelIdleCallback =
|
|
||||||
window.cancelIdleCallback ||
|
|
||||||
function (id) {
|
|
||||||
clearTimeout(id);
|
|
||||||
};
|
|
||||||
@@ -0,0 +1,4 @@
|
|||||||
|
import { setupBlocksuite, setupBrowser } from '@affine/core/bootstrap';
|
||||||
|
|
||||||
|
await setupBrowser();
|
||||||
|
setupBlocksuite();
|
||||||
@@ -17,8 +17,6 @@
|
|||||||
"@affine/i18n": "workspace:*",
|
"@affine/i18n": "workspace:*",
|
||||||
"@emotion/react": "^11.11.4",
|
"@emotion/react": "^11.11.4",
|
||||||
"@sentry/react": "^8.0.0",
|
"@sentry/react": "^8.0.0",
|
||||||
"core-js": "^3.36.1",
|
|
||||||
"intl-segmenter-polyfill-rs": "^0.1.7",
|
|
||||||
"jotai": "^2.8.0",
|
"jotai": "^2.8.0",
|
||||||
"react": "^18.2.0",
|
"react": "^18.2.0",
|
||||||
"react-dom": "^18.2.0",
|
"react-dom": "^18.2.0",
|
||||||
|
|||||||
@@ -1,8 +1,4 @@
|
|||||||
import './polyfill/dispose';
|
import './setup';
|
||||||
import './polyfill/intl-segmenter';
|
|
||||||
import './polyfill/promise-with-resolvers';
|
|
||||||
import './polyfill/request-idle-callback';
|
|
||||||
import '@affine/core/bootstrap/preload';
|
|
||||||
|
|
||||||
import { performanceLogger } from '@affine/core/shared';
|
import { performanceLogger } from '@affine/core/shared';
|
||||||
import { appInfo } from '@affine/electron-api';
|
import { appInfo } from '@affine/electron-api';
|
||||||
|
|||||||
@@ -1,2 +0,0 @@
|
|||||||
import 'core-js/modules/esnext.symbol.async-dispose';
|
|
||||||
import 'core-js/modules/esnext.symbol.dispose';
|
|
||||||
@@ -1,11 +0,0 @@
|
|||||||
if (Intl.Segmenter === undefined) {
|
|
||||||
await import('intl-segmenter-polyfill-rs').then(({ Segmenter }) => {
|
|
||||||
Object.defineProperty(Intl, 'Segmenter', {
|
|
||||||
value: Segmenter,
|
|
||||||
configurable: true,
|
|
||||||
writable: true,
|
|
||||||
});
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
export {};
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
import 'core-js/features/promise/with-resolvers';
|
|
||||||
@@ -1,19 +0,0 @@
|
|||||||
window.requestIdleCallback =
|
|
||||||
window.requestIdleCallback ||
|
|
||||||
function (cb) {
|
|
||||||
const start = Date.now();
|
|
||||||
return setTimeout(function () {
|
|
||||||
cb({
|
|
||||||
didTimeout: false,
|
|
||||||
timeRemaining: function () {
|
|
||||||
return Math.max(0, 50 - (Date.now() - start));
|
|
||||||
},
|
|
||||||
});
|
|
||||||
}, 1);
|
|
||||||
};
|
|
||||||
|
|
||||||
window.cancelIdleCallback =
|
|
||||||
window.cancelIdleCallback ||
|
|
||||||
function (id) {
|
|
||||||
clearTimeout(id);
|
|
||||||
};
|
|
||||||
@@ -0,0 +1,4 @@
|
|||||||
|
import { setupBlocksuite, setupBrowser } from '@affine/core/bootstrap';
|
||||||
|
|
||||||
|
await setupBrowser();
|
||||||
|
setupBlocksuite();
|
||||||
@@ -4,7 +4,8 @@
|
|||||||
"private": true,
|
"private": true,
|
||||||
"version": "0.16.0",
|
"version": "0.16.0",
|
||||||
"exports": {
|
"exports": {
|
||||||
"./*": "./src/*"
|
"./*": "./src/*",
|
||||||
|
"./bootstrap": "./src/bootstrap/index.ts"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@affine-test/fixtures": "workspace:*",
|
"@affine-test/fixtures": "workspace:*",
|
||||||
@@ -52,6 +53,7 @@
|
|||||||
"bytes": "^3.1.2",
|
"bytes": "^3.1.2",
|
||||||
"clsx": "^2.1.0",
|
"clsx": "^2.1.0",
|
||||||
"cmdk": "^1.0.0",
|
"cmdk": "^1.0.0",
|
||||||
|
"core-js": "^3.36.1",
|
||||||
"css-spring": "^4.1.0",
|
"css-spring": "^4.1.0",
|
||||||
"dayjs": "^1.11.10",
|
"dayjs": "^1.11.10",
|
||||||
"file-type": "^19.1.0",
|
"file-type": "^19.1.0",
|
||||||
@@ -65,6 +67,7 @@
|
|||||||
"idb": "^8.0.0",
|
"idb": "^8.0.0",
|
||||||
"idb-keyval": "^6.2.1",
|
"idb-keyval": "^6.2.1",
|
||||||
"image-blob-reduce": "^4.1.0",
|
"image-blob-reduce": "^4.1.0",
|
||||||
|
"intl-segmenter-polyfill-rs": "^0.1.7",
|
||||||
"is-svg": "^5.0.0",
|
"is-svg": "^5.0.0",
|
||||||
"jotai": "^2.8.0",
|
"jotai": "^2.8.0",
|
||||||
"jotai-devtools": "^0.10.0",
|
"jotai-devtools": "^0.10.0",
|
||||||
|
|||||||
@@ -0,0 +1,4 @@
|
|||||||
|
import '@affine/env/constant';
|
||||||
|
import '../types/types.d.ts';
|
||||||
|
|
||||||
|
export { setupGlobal as setupEnvironment } from '@affine/env/global';
|
||||||
+8
-6
@@ -3,9 +3,11 @@ import { builtInTemplates as builtInStickersTemplates } from '@affine/templates/
|
|||||||
import type { TemplateManager } from '@blocksuite/blocks';
|
import type { TemplateManager } from '@blocksuite/blocks';
|
||||||
import { EdgelessTemplatePanel } from '@blocksuite/blocks';
|
import { EdgelessTemplatePanel } from '@blocksuite/blocks';
|
||||||
|
|
||||||
EdgelessTemplatePanel.templates.extend(
|
export function setupBlocksuite() {
|
||||||
builtInStickersTemplates as TemplateManager
|
EdgelessTemplatePanel.templates.extend(
|
||||||
);
|
builtInStickersTemplates as TemplateManager
|
||||||
EdgelessTemplatePanel.templates.extend(
|
);
|
||||||
builtInEdgelessTemplates as TemplateManager
|
EdgelessTemplatePanel.templates.extend(
|
||||||
);
|
builtInEdgelessTemplates as TemplateManager
|
||||||
|
);
|
||||||
|
}
|
||||||
@@ -0,0 +1,16 @@
|
|||||||
|
import '../types/types.d.ts';
|
||||||
|
|
||||||
|
import { setupEnvironment } from './app';
|
||||||
|
import { polyfillBrowser, polyfillElectron } from './polyfill';
|
||||||
|
|
||||||
|
export function setupElectron() {
|
||||||
|
polyfillElectron();
|
||||||
|
setupEnvironment();
|
||||||
|
}
|
||||||
|
|
||||||
|
export async function setupBrowser() {
|
||||||
|
await polyfillBrowser();
|
||||||
|
setupEnvironment();
|
||||||
|
}
|
||||||
|
|
||||||
|
export { setupBlocksuite } from './blocksuite';
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
export async function polyfillDispose() {
|
||||||
|
if (typeof Symbol.dispose !== 'symbol') {
|
||||||
|
// @ts-expect-error ignore
|
||||||
|
await import('core-js/modules/esnext.symbol.async-dispose');
|
||||||
|
// @ts-expect-error ignore
|
||||||
|
await import('core-js/modules/esnext.symbol.dispose');
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,17 @@
|
|||||||
|
import { polyfillDispose } from './dispose';
|
||||||
|
import { polyfillI18n } from './intl-segmenter';
|
||||||
|
import { polyfillPromise } from './promise-with-resolvers';
|
||||||
|
import { polyfillEventLoop } from './request-idle-callback';
|
||||||
|
import { polyfillResizeObserver } from './resize-observer';
|
||||||
|
|
||||||
|
export function polyfillElectron() {
|
||||||
|
polyfillResizeObserver();
|
||||||
|
}
|
||||||
|
|
||||||
|
export async function polyfillBrowser() {
|
||||||
|
polyfillResizeObserver();
|
||||||
|
polyfillEventLoop();
|
||||||
|
await polyfillI18n();
|
||||||
|
await polyfillPromise();
|
||||||
|
await polyfillDispose();
|
||||||
|
}
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
export async function polyfillI18n() {
|
||||||
|
if (Intl.Segmenter === undefined) {
|
||||||
|
await import('intl-segmenter-polyfill-rs').then(({ Segmenter }) => {
|
||||||
|
Object.defineProperty(Intl, 'Segmenter', {
|
||||||
|
value: Segmenter,
|
||||||
|
configurable: true,
|
||||||
|
writable: true,
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
export async function polyfillPromise() {
|
||||||
|
if (typeof Promise.withResolvers !== 'function') {
|
||||||
|
// @ts-expect-error ignore
|
||||||
|
await import('core-js/features/promise/with-resolvers');
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,21 @@
|
|||||||
|
export function polyfillEventLoop() {
|
||||||
|
window.requestIdleCallback =
|
||||||
|
window.requestIdleCallback ||
|
||||||
|
function (cb) {
|
||||||
|
const start = Date.now();
|
||||||
|
return setTimeout(function () {
|
||||||
|
cb({
|
||||||
|
didTimeout: false,
|
||||||
|
timeRemaining: function () {
|
||||||
|
return Math.max(0, 50 - (Date.now() - start));
|
||||||
|
},
|
||||||
|
});
|
||||||
|
}, 1);
|
||||||
|
};
|
||||||
|
|
||||||
|
window.cancelIdleCallback =
|
||||||
|
window.cancelIdleCallback ||
|
||||||
|
function (id) {
|
||||||
|
clearTimeout(id);
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
import { ResizeObserver } from '@juggle/resize-observer';
|
||||||
|
|
||||||
|
export function polyfillResizeObserver() {
|
||||||
|
window.ResizeObserver = ResizeObserver;
|
||||||
|
}
|
||||||
@@ -1,11 +0,0 @@
|
|||||||
import { ResizeObserver } from '@juggle/resize-observer';
|
|
||||||
window.ResizeObserver = ResizeObserver;
|
|
||||||
|
|
||||||
import '@affine/env/constant';
|
|
||||||
import './edgeless-template';
|
|
||||||
|
|
||||||
import { setupGlobal } from '@affine/env/global';
|
|
||||||
|
|
||||||
setupGlobal();
|
|
||||||
|
|
||||||
import '../types/types.d.ts';
|
|
||||||
@@ -6,7 +6,7 @@ import { listHistoryQuery, recoverDocMutation } from '@affine/graphql';
|
|||||||
import { i18nTime } from '@affine/i18n';
|
import { i18nTime } from '@affine/i18n';
|
||||||
import { assertEquals } from '@blocksuite/global/utils';
|
import { assertEquals } from '@blocksuite/global/utils';
|
||||||
import { DocCollection } from '@blocksuite/store';
|
import { DocCollection } from '@blocksuite/store';
|
||||||
import { globalBlockSuiteSchema } from '@toeverything/infra';
|
import { getAFFiNEWorkspaceSchema } from '@toeverything/infra';
|
||||||
import { useEffect, useMemo } from 'react';
|
import { useEffect, useMemo } from 'react';
|
||||||
import useSWRImmutable from 'swr/immutable';
|
import useSWRImmutable from 'swr/immutable';
|
||||||
import {
|
import {
|
||||||
@@ -108,7 +108,7 @@ const getOrCreateShellWorkspace = (workspaceId: string) => {
|
|||||||
blobSources: {
|
blobSources: {
|
||||||
main: blobStorage,
|
main: blobStorage,
|
||||||
},
|
},
|
||||||
schema: globalBlockSuiteSchema,
|
schema: getAFFiNEWorkspaceSchema(),
|
||||||
});
|
});
|
||||||
docCollectionMap.set(workspaceId, docCollection);
|
docCollectionMap.set(workspaceId, docCollection);
|
||||||
docCollection.doc.emit('sync', [true, docCollection.doc]);
|
docCollection.doc.emit('sync', [true, docCollection.doc]);
|
||||||
|
|||||||
+1
-2
@@ -4,8 +4,7 @@ import {
|
|||||||
useJournalInfoHelper,
|
useJournalInfoHelper,
|
||||||
useJournalRouteHelper,
|
useJournalRouteHelper,
|
||||||
} from '@affine/core/hooks/use-journal';
|
} from '@affine/core/hooks/use-journal';
|
||||||
import type { DocCollection } from '@affine/core/shared';
|
import type { Doc, DocCollection } from '@blocksuite/store';
|
||||||
import type { Doc } from '@blocksuite/store';
|
|
||||||
import dayjs from 'dayjs';
|
import dayjs from 'dayjs';
|
||||||
import { useEffect, useRef, useState } from 'react';
|
import { useEffect, useRef, useState } from 'react';
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -1,7 +1,7 @@
|
|||||||
import { Button } from '@affine/component';
|
import { Button } from '@affine/component';
|
||||||
import { useJournalRouteHelper } from '@affine/core/hooks/use-journal';
|
import { useJournalRouteHelper } from '@affine/core/hooks/use-journal';
|
||||||
import type { DocCollection } from '@affine/core/shared';
|
|
||||||
import { useI18n } from '@affine/i18n';
|
import { useI18n } from '@affine/i18n';
|
||||||
|
import type { DocCollection } from '@blocksuite/store';
|
||||||
import { useCallback } from 'react';
|
import { useCallback } from 'react';
|
||||||
|
|
||||||
export interface JournalTodayButtonProps {
|
export interface JournalTodayButtonProps {
|
||||||
|
|||||||
@@ -1,11 +1,10 @@
|
|||||||
import { toast } from '@affine/component';
|
import { toast } from '@affine/component';
|
||||||
import { WorkbenchService } from '@affine/core/modules/workbench';
|
import { WorkbenchService } from '@affine/core/modules/workbench';
|
||||||
import type { DocMode } from '@blocksuite/blocks';
|
import type { DocMode } from '@blocksuite/blocks';
|
||||||
|
import type { DocCollection } from '@blocksuite/store';
|
||||||
import { DocsService, useServices } from '@toeverything/infra';
|
import { DocsService, useServices } from '@toeverything/infra';
|
||||||
import { useCallback, useMemo } from 'react';
|
import { useCallback, useMemo } from 'react';
|
||||||
|
|
||||||
import type { DocCollection } from '../../../shared';
|
|
||||||
|
|
||||||
export const usePageHelper = (docCollection: DocCollection) => {
|
export const usePageHelper = (docCollection: DocCollection) => {
|
||||||
const { docsService, workbenchService } = useServices({
|
const { docsService, workbenchService } = useServices({
|
||||||
DocsService,
|
DocsService,
|
||||||
|
|||||||
@@ -2,8 +2,8 @@ import { useAsyncCallback } from '@affine/core/hooks/affine-async-hooks';
|
|||||||
import { track } from '@affine/core/mixpanel';
|
import { track } from '@affine/core/mixpanel';
|
||||||
import { useI18n } from '@affine/i18n';
|
import { useI18n } from '@affine/i18n';
|
||||||
import { ImportIcon } from '@blocksuite/icons/rc';
|
import { ImportIcon } from '@blocksuite/icons/rc';
|
||||||
|
import type { DocCollection } from '@blocksuite/store';
|
||||||
|
|
||||||
import type { DocCollection } from '../../shared';
|
|
||||||
import { MenuItem } from '../app-sidebar';
|
import { MenuItem } from '../app-sidebar';
|
||||||
import { usePageHelper } from '../blocksuite/block-suite-page-list/utils';
|
import { usePageHelper } from '../blocksuite/block-suite-page-list/utils';
|
||||||
|
|
||||||
|
|||||||
@@ -4,10 +4,10 @@ import {
|
|||||||
useJournalRouteHelper,
|
useJournalRouteHelper,
|
||||||
} from '@affine/core/hooks/use-journal';
|
} from '@affine/core/hooks/use-journal';
|
||||||
import { WorkbenchService } from '@affine/core/modules/workbench';
|
import { WorkbenchService } from '@affine/core/modules/workbench';
|
||||||
import type { DocCollection } from '@affine/core/shared';
|
|
||||||
import { isNewTabTrigger } from '@affine/core/utils';
|
import { isNewTabTrigger } from '@affine/core/utils';
|
||||||
import { useI18n } from '@affine/i18n';
|
import { useI18n } from '@affine/i18n';
|
||||||
import { TodayIcon, TomorrowIcon, YesterdayIcon } from '@blocksuite/icons/rc';
|
import { TodayIcon, TomorrowIcon, YesterdayIcon } from '@blocksuite/icons/rc';
|
||||||
|
import type { DocCollection } from '@blocksuite/store';
|
||||||
import { useLiveData, useService } from '@toeverything/infra';
|
import { useLiveData, useService } from '@toeverything/infra';
|
||||||
import { type MouseEvent } from 'react';
|
import { type MouseEvent } from 'react';
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
|
import type { DocCollection } from '@blocksuite/store';
|
||||||
import { useCallback } from 'react';
|
import { useCallback } from 'react';
|
||||||
|
|
||||||
import type { DocCollection } from '../../shared';
|
|
||||||
|
|
||||||
export function useReferenceLinkHelper(docCollection: DocCollection) {
|
export function useReferenceLinkHelper(docCollection: DocCollection) {
|
||||||
const addReferenceLink = useCallback(
|
const addReferenceLink = useCallback(
|
||||||
(pageId: string, referenceId: string) => {
|
(pageId: string, referenceId: string) => {
|
||||||
|
|||||||
@@ -1,11 +1,11 @@
|
|||||||
import { i18nTime } from '@affine/i18n';
|
import { i18nTime } from '@affine/i18n';
|
||||||
|
import type { DocCollection } from '@blocksuite/store';
|
||||||
import { DocsService, initEmptyPage, useService } from '@toeverything/infra';
|
import { DocsService, initEmptyPage, useService } from '@toeverything/infra';
|
||||||
import dayjs from 'dayjs';
|
import dayjs from 'dayjs';
|
||||||
import { useCallback, useMemo } from 'react';
|
import { useCallback, useMemo } from 'react';
|
||||||
|
|
||||||
import { track } from '../mixpanel';
|
import { track } from '../mixpanel';
|
||||||
import { WorkbenchService } from '../modules/workbench';
|
import { WorkbenchService } from '../modules/workbench';
|
||||||
import type { DocCollection } from '../shared';
|
|
||||||
import { useCurrentWorkspacePropertiesAdapter } from './use-affine-adapter';
|
import { useCurrentWorkspacePropertiesAdapter } from './use-affine-adapter';
|
||||||
import { useDocCollectionHelper } from './use-block-suite-workspace-helper';
|
import { useDocCollectionHelper } from './use-block-suite-workspace-helper';
|
||||||
|
|
||||||
|
|||||||
@@ -24,7 +24,7 @@ import {
|
|||||||
type WorkspaceMetadata,
|
type WorkspaceMetadata,
|
||||||
type WorkspaceProfileInfo,
|
type WorkspaceProfileInfo,
|
||||||
} from '@toeverything/infra';
|
} from '@toeverything/infra';
|
||||||
import { effect, globalBlockSuiteSchema, Service } from '@toeverything/infra';
|
import { effect, getAFFiNEWorkspaceSchema, Service } from '@toeverything/infra';
|
||||||
import { isEqual } from 'lodash-es';
|
import { isEqual } from 'lodash-es';
|
||||||
import { nanoid } from 'nanoid';
|
import { nanoid } from 'nanoid';
|
||||||
import { EMPTY, map, mergeMap } from 'rxjs';
|
import { EMPTY, map, mergeMap } from 'rxjs';
|
||||||
@@ -96,7 +96,7 @@ export class CloudWorkspaceFlavourProviderService
|
|||||||
const docCollection = new DocCollection({
|
const docCollection = new DocCollection({
|
||||||
id: workspaceId,
|
id: workspaceId,
|
||||||
idGenerator: () => nanoid(),
|
idGenerator: () => nanoid(),
|
||||||
schema: globalBlockSuiteSchema,
|
schema: getAFFiNEWorkspaceSchema(),
|
||||||
blobSources: {
|
blobSources: {
|
||||||
main: blobStorage,
|
main: blobStorage,
|
||||||
},
|
},
|
||||||
@@ -216,7 +216,7 @@ export class CloudWorkspaceFlavourProviderService
|
|||||||
|
|
||||||
const bs = new DocCollection({
|
const bs = new DocCollection({
|
||||||
id,
|
id,
|
||||||
schema: globalBlockSuiteSchema,
|
schema: getAFFiNEWorkspaceSchema(),
|
||||||
});
|
});
|
||||||
|
|
||||||
if (localData) applyUpdate(bs.doc, localData);
|
if (localData) applyUpdate(bs.doc, localData);
|
||||||
|
|||||||
@@ -9,7 +9,11 @@ import type {
|
|||||||
WorkspaceMetadata,
|
WorkspaceMetadata,
|
||||||
WorkspaceProfileInfo,
|
WorkspaceProfileInfo,
|
||||||
} from '@toeverything/infra';
|
} from '@toeverything/infra';
|
||||||
import { globalBlockSuiteSchema, LiveData, Service } from '@toeverything/infra';
|
import {
|
||||||
|
getAFFiNEWorkspaceSchema,
|
||||||
|
LiveData,
|
||||||
|
Service,
|
||||||
|
} from '@toeverything/infra';
|
||||||
import { isEqual } from 'lodash-es';
|
import { isEqual } from 'lodash-es';
|
||||||
import { nanoid } from 'nanoid';
|
import { nanoid } from 'nanoid';
|
||||||
import { Observable } from 'rxjs';
|
import { Observable } from 'rxjs';
|
||||||
@@ -70,7 +74,7 @@ export class LocalWorkspaceFlavourProvider
|
|||||||
const docCollection = new DocCollection({
|
const docCollection = new DocCollection({
|
||||||
id: id,
|
id: id,
|
||||||
idGenerator: () => nanoid(),
|
idGenerator: () => nanoid(),
|
||||||
schema: globalBlockSuiteSchema,
|
schema: getAFFiNEWorkspaceSchema(),
|
||||||
blobSources: { main: blobStorage },
|
blobSources: { main: blobStorage },
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -143,7 +147,7 @@ export class LocalWorkspaceFlavourProvider
|
|||||||
|
|
||||||
const bs = new DocCollection({
|
const bs = new DocCollection({
|
||||||
id,
|
id,
|
||||||
schema: globalBlockSuiteSchema,
|
schema: getAFFiNEWorkspaceSchema(),
|
||||||
});
|
});
|
||||||
|
|
||||||
if (localData) applyUpdate(bs.doc, localData);
|
if (localData) applyUpdate(bs.doc, localData);
|
||||||
|
|||||||
@@ -1,7 +1,4 @@
|
|||||||
import { DebugLogger } from '@affine/debug';
|
import { DebugLogger } from '@affine/debug';
|
||||||
import { DocCollection } from '@blocksuite/store';
|
|
||||||
|
|
||||||
export { DocCollection };
|
|
||||||
|
|
||||||
export enum WorkspaceSubPath {
|
export enum WorkspaceSubPath {
|
||||||
ALL = 'all',
|
ALL = 'all',
|
||||||
|
|||||||
@@ -462,6 +462,7 @@ __metadata:
|
|||||||
bytes: "npm:^3.1.2"
|
bytes: "npm:^3.1.2"
|
||||||
clsx: "npm:^2.1.0"
|
clsx: "npm:^2.1.0"
|
||||||
cmdk: "npm:^1.0.0"
|
cmdk: "npm:^1.0.0"
|
||||||
|
core-js: "npm:^3.36.1"
|
||||||
css-spring: "npm:^4.1.0"
|
css-spring: "npm:^4.1.0"
|
||||||
dayjs: "npm:^1.11.10"
|
dayjs: "npm:^1.11.10"
|
||||||
express: "npm:^4.19.2"
|
express: "npm:^4.19.2"
|
||||||
@@ -477,6 +478,7 @@ __metadata:
|
|||||||
idb: "npm:^8.0.0"
|
idb: "npm:^8.0.0"
|
||||||
idb-keyval: "npm:^6.2.1"
|
idb-keyval: "npm:^6.2.1"
|
||||||
image-blob-reduce: "npm:^4.1.0"
|
image-blob-reduce: "npm:^4.1.0"
|
||||||
|
intl-segmenter-polyfill-rs: "npm:^0.1.7"
|
||||||
is-svg: "npm:^5.0.0"
|
is-svg: "npm:^5.0.0"
|
||||||
jotai: "npm:^2.8.0"
|
jotai: "npm:^2.8.0"
|
||||||
jotai-devtools: "npm:^0.10.0"
|
jotai-devtools: "npm:^0.10.0"
|
||||||
@@ -576,7 +578,6 @@ __metadata:
|
|||||||
"@vitejs/plugin-react-swc": "npm:^3.6.0"
|
"@vitejs/plugin-react-swc": "npm:^3.6.0"
|
||||||
async-call-rpc: "npm:^6.4.2"
|
async-call-rpc: "npm:^6.4.2"
|
||||||
builder-util-runtime: "npm:^9.2.5-alpha.2"
|
builder-util-runtime: "npm:^9.2.5-alpha.2"
|
||||||
core-js: "npm:^3.36.1"
|
|
||||||
cross-env: "npm:^7.0.3"
|
cross-env: "npm:^7.0.3"
|
||||||
electron: "npm:^32.0.0"
|
electron: "npm:^32.0.0"
|
||||||
electron-log: "npm:^5.1.2"
|
electron-log: "npm:^5.1.2"
|
||||||
@@ -683,10 +684,8 @@ __metadata:
|
|||||||
"@vanilla-extract/css": "npm:^1.15.5"
|
"@vanilla-extract/css": "npm:^1.15.5"
|
||||||
"@vanilla-extract/dynamic": "npm:^2.1.2"
|
"@vanilla-extract/dynamic": "npm:^2.1.2"
|
||||||
clsx: "npm:^2.1.1"
|
clsx: "npm:^2.1.1"
|
||||||
core-js: "npm:^3.36.1"
|
|
||||||
cross-env: "npm:^7.0.3"
|
cross-env: "npm:^7.0.3"
|
||||||
figma-squircle: "npm:^1.0.0"
|
figma-squircle: "npm:^1.0.0"
|
||||||
intl-segmenter-polyfill-rs: "npm:^0.1.7"
|
|
||||||
jotai: "npm:^2.9.3"
|
jotai: "npm:^2.9.3"
|
||||||
jotai-effect: "npm:^1.0.2"
|
jotai-effect: "npm:^1.0.2"
|
||||||
jotai-scope: "npm:^0.7.2"
|
jotai-scope: "npm:^0.7.2"
|
||||||
@@ -929,9 +928,7 @@ __metadata:
|
|||||||
"@sentry/react": "npm:^8.0.0"
|
"@sentry/react": "npm:^8.0.0"
|
||||||
"@types/react": "npm:^18.2.75"
|
"@types/react": "npm:^18.2.75"
|
||||||
"@types/react-dom": "npm:^18.2.24"
|
"@types/react-dom": "npm:^18.2.24"
|
||||||
core-js: "npm:^3.36.1"
|
|
||||||
cross-env: "npm:^7.0.3"
|
cross-env: "npm:^7.0.3"
|
||||||
intl-segmenter-polyfill-rs: "npm:^0.1.7"
|
|
||||||
jotai: "npm:^2.8.0"
|
jotai: "npm:^2.8.0"
|
||||||
react: "npm:^18.2.0"
|
react: "npm:^18.2.0"
|
||||||
react-dom: "npm:^18.2.0"
|
react-dom: "npm:^18.2.0"
|
||||||
|
|||||||
Reference in New Issue
Block a user