mirror of
https://github.com/toeverything/AFFiNE.git
synced 2026-02-13 21:05:19 +00:00
43 lines
1.1 KiB
TypeScript
43 lines
1.1 KiB
TypeScript
import { DataCenter, User, WorkspaceUnit } from '@affine/datacenter';
|
|
import type { EditorContainer } from '@blocksuite/editor';
|
|
|
|
import type {
|
|
Page as StorePage,
|
|
PageMeta as StorePageMeta,
|
|
} from '@blocksuite/store';
|
|
import { MutableRefObject } from 'react';
|
|
export interface PageMeta extends StorePageMeta {
|
|
favorite: boolean;
|
|
trash: boolean;
|
|
trashDate: number;
|
|
updatedDate: number;
|
|
mode: 'edgeless' | 'page';
|
|
}
|
|
|
|
export type AppStateValue = {
|
|
dataCenter: DataCenter;
|
|
user: User | null;
|
|
workspaceList: WorkspaceUnit[];
|
|
currentWorkspace: WorkspaceUnit | null;
|
|
pageList: PageMeta[];
|
|
currentPage: StorePage | null;
|
|
editor?: EditorContainer | null;
|
|
synced: boolean;
|
|
isOwner?: boolean;
|
|
blobDataSynced?: boolean;
|
|
};
|
|
|
|
export type AppStateFunction = {
|
|
setEditor: MutableRefObject<(page: EditorContainer) => void>;
|
|
|
|
loadWorkspace: (workspaceId: string) => Promise<WorkspaceUnit | null>;
|
|
loadPage: (pageId: string) => void;
|
|
|
|
login: () => Promise<User>;
|
|
logout: () => Promise<void>;
|
|
};
|
|
|
|
export type AppStateContext = AppStateValue & AppStateFunction;
|
|
|
|
export type CreateEditorHandler = (page: StorePage) => EditorContainer | null;
|