feat: add workspace-help

This commit is contained in:
DiamondThree
2023-01-09 17:51:12 +08:00
parent 740500716e
commit 5687fa211e
4 changed files with 29 additions and 21 deletions
@@ -3,10 +3,10 @@ import { Modal, ModalWrapper, ModalCloseButton } from '@/ui/modal';
import { Button } from '@/ui/button';
import { useState } from 'react';
import Input from '@/ui/input';
import { useTemporaryHelper } from '@/providers/temporary-helper-provider';
import { KeyboardEvent } from 'react';
import { useTranslation } from 'react-i18next';
import { useAppState } from '@/providers/app-state-provider';
import { useWorkspaceHelper } from '@/hooks/use-workspace-helper';
interface ICloseParams {
workspaceId?: string;
}
@@ -17,11 +17,15 @@ interface ModalProps {
export const CreateWorkspaceModal = ({ open, onClose }: ModalProps) => {
const [workspaceName, setWorkspaceName] = useState('');
const { createWorkspace } = useAppState();
const handleCreateWorkspace = () => {
const workspace = createWorkspace(workspaceName);
// onClose({ workspaceId: workspace.id });
// setActiveWorkspace(workspace);
const { createWorkspace } = useWorkspaceHelper();
const { loadWorkspace } = useAppState();
const handleCreateWorkspace = async () => {
const workspace = await createWorkspace(workspaceName);
if (workspace && workspace.room) {
await loadWorkspace(workspace.room);
} else {
console.log('create error');
}
};
const handleKeyDown = (event: KeyboardEvent<HTMLInputElement>) => {
if (event.key === 'Enter') {
@@ -0,0 +1,19 @@
import { useAppState } from '@/providers/app-state-provider';
export const useWorkspaceHelper = () => {
const { dataCenter } = useAppState();
const createWorkspace = async (name: string) => {
const workspaceInfo = await dataCenter.createWorkspace({
name: name,
avatar: 'cccc',
});
if (workspaceInfo && workspaceInfo.room) {
const workspace = await dataCenter.loadWorkspace(workspaceInfo.room);
return workspace;
}
return null;
};
return {
createWorkspace,
};
};
@@ -47,7 +47,6 @@ export const AppStateProvider = ({
const currentWorkspace = await dataCenter.loadWorkspace(
dataCenter.workspaces[0].id
);
console.log('currentWorkspace: ', currentWorkspace);
setAppState({
dataCenter,
@@ -150,18 +149,6 @@ export const AppStateProvider = ({
});
};
const createWorkspace = async (name: string) => {
const { dataCenter } = appState;
const workspaceInfo = await dataCenter.createWorkspace({
name: name,
avatar: 'cccc',
});
if (workspaceInfo && workspaceInfo.room) {
const workspace = await dataCenter.loadWorkspace(workspaceInfo.room);
console.log('workspace: ', workspace);
}
};
return (
<AppState.Provider
value={{
@@ -170,7 +157,6 @@ export const AppStateProvider = ({
loadPage,
loadWorkspace,
createEditor,
createWorkspace,
}}
>
<DynamicBlocksuite setCreateEditorHandler={setCreateEditorHandler} />
@@ -24,7 +24,6 @@ export type AppStateFunction = {
setEditor: (page: EditorContainer) => void;
loadWorkspace: (workspaceId: string) => Promise<void>;
loadPage: (pageId: string) => void;
createWorkspace: (name: string) => Promise<void>;
};
export type AppStateContext = AppStateValue & AppStateFunction;