fix: types of data center call

This commit is contained in:
DarkSky
2023-01-03 13:32:03 +08:00
committed by DarkSky
parent b105eaf9a6
commit 0110efc340
18 changed files with 111 additions and 120 deletions

View File

@@ -1,18 +1,18 @@
import { createContext, MutableRefObject, useContext } from 'react';
import type { Workspace } from '@affine/datacenter';
import type { AccessTokenMessage, Workspace } from '@affine/datacenter';
import type {
Page as StorePage,
Workspace as StoreWorkspace,
} from '@blocksuite/store';
import type { EditorContainer } from '@blocksuite/editor';
export type LoadWorkspaceHandler = (
workspaceId: string
// user?: AccessTokenMessage | null
workspaceId: string,
user?: AccessTokenMessage | null
) => Promise<StoreWorkspace | null> | null;
export type CreateEditorHandler = (page: StorePage) => EditorContainer | null;
export interface AppStateValue {
// user: AccessTokenMessage | null;
user: AccessTokenMessage | null;
workspacesMeta: Workspace[];
currentWorkspaceId: string;
@@ -38,7 +38,7 @@ export interface AppStateContext extends AppStateValue {
}
export const AppState = createContext<AppStateContext>({
// user: null,
user: null,
workspacesMeta: [],
currentWorkspaceId: '',

View File

@@ -15,19 +15,17 @@ const DynamicBlocksuite = ({
setCreateEditorHandler,
}: Props) => {
useEffect(() => {
const openWorkspace: LoadWorkspaceHandler = (workspaceId: string, user) =>
// eslint-disable-next-line no-async-promise-executor
new Promise(async resolve => {
if (workspaceId) {
const workspace = await getDataCenter().then(dc =>
dc.getWorkspace(workspaceId, 'affine')
);
resolve(workspace);
} else {
resolve(null);
}
});
const openWorkspace: LoadWorkspaceHandler = async (
workspaceId: string,
user
) => {
if (workspaceId) {
const dc = await getDataCenter();
return dc.getWorkspace(workspaceId, { providerId: 'affine' });
} else {
return null;
}
};
setLoadWorkspaceHandler(openWorkspace);
}, [setLoadWorkspaceHandler]);

View File

@@ -1,7 +1,7 @@
import { useMemo, useState, useEffect, useCallback, useRef } from 'react';
import type { ReactNode } from 'react';
import dynamic from 'next/dynamic';
import { getWorkspaces } from '@affine/datacenter';
import { getDataCenter } from '@affine/datacenter';
import { AppState, AppStateContext } from './context';
import type {
AppStateValue,
@@ -16,7 +16,8 @@ const DynamicBlocksuite = dynamic(() => import('./dynamic-blocksuite'), {
export const AppStateProvider = ({ children }: { children?: ReactNode }) => {
const refreshWorkspacesMeta = async () => {
const workspacesMeta = await getWorkspaces().catch(() => {
const dc = await getDataCenter();
const workspacesMeta = await dc.apis.getWorkspaces().catch(() => {
return [];
});
setState(state => ({ ...state, workspacesMeta }));