feat: add workspace-help
This commit is contained in:
@@ -3,10 +3,10 @@ import { Modal, ModalWrapper, ModalCloseButton } from '@/ui/modal';
|
|||||||
import { Button } from '@/ui/button';
|
import { Button } from '@/ui/button';
|
||||||
import { useState } from 'react';
|
import { useState } from 'react';
|
||||||
import Input from '@/ui/input';
|
import Input from '@/ui/input';
|
||||||
import { useTemporaryHelper } from '@/providers/temporary-helper-provider';
|
|
||||||
import { KeyboardEvent } from 'react';
|
import { KeyboardEvent } from 'react';
|
||||||
import { useTranslation } from 'react-i18next';
|
import { useTranslation } from 'react-i18next';
|
||||||
import { useAppState } from '@/providers/app-state-provider';
|
import { useAppState } from '@/providers/app-state-provider';
|
||||||
|
import { useWorkspaceHelper } from '@/hooks/use-workspace-helper';
|
||||||
interface ICloseParams {
|
interface ICloseParams {
|
||||||
workspaceId?: string;
|
workspaceId?: string;
|
||||||
}
|
}
|
||||||
@@ -17,11 +17,15 @@ interface ModalProps {
|
|||||||
|
|
||||||
export const CreateWorkspaceModal = ({ open, onClose }: ModalProps) => {
|
export const CreateWorkspaceModal = ({ open, onClose }: ModalProps) => {
|
||||||
const [workspaceName, setWorkspaceName] = useState('');
|
const [workspaceName, setWorkspaceName] = useState('');
|
||||||
const { createWorkspace } = useAppState();
|
const { createWorkspace } = useWorkspaceHelper();
|
||||||
const handleCreateWorkspace = () => {
|
const { loadWorkspace } = useAppState();
|
||||||
const workspace = createWorkspace(workspaceName);
|
const handleCreateWorkspace = async () => {
|
||||||
// onClose({ workspaceId: workspace.id });
|
const workspace = await createWorkspace(workspaceName);
|
||||||
// setActiveWorkspace(workspace);
|
if (workspace && workspace.room) {
|
||||||
|
await loadWorkspace(workspace.room);
|
||||||
|
} else {
|
||||||
|
console.log('create error');
|
||||||
|
}
|
||||||
};
|
};
|
||||||
const handleKeyDown = (event: KeyboardEvent<HTMLInputElement>) => {
|
const handleKeyDown = (event: KeyboardEvent<HTMLInputElement>) => {
|
||||||
if (event.key === 'Enter') {
|
if (event.key === 'Enter') {
|
||||||
|
|||||||
19
packages/app/src/hooks/use-workspace-helper.ts
Normal file
19
packages/app/src/hooks/use-workspace-helper.ts
Normal file
@@ -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(
|
const currentWorkspace = await dataCenter.loadWorkspace(
|
||||||
dataCenter.workspaces[0].id
|
dataCenter.workspaces[0].id
|
||||||
);
|
);
|
||||||
console.log('currentWorkspace: ', currentWorkspace);
|
|
||||||
|
|
||||||
setAppState({
|
setAppState({
|
||||||
dataCenter,
|
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 (
|
return (
|
||||||
<AppState.Provider
|
<AppState.Provider
|
||||||
value={{
|
value={{
|
||||||
@@ -170,7 +157,6 @@ export const AppStateProvider = ({
|
|||||||
loadPage,
|
loadPage,
|
||||||
loadWorkspace,
|
loadWorkspace,
|
||||||
createEditor,
|
createEditor,
|
||||||
createWorkspace,
|
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
<DynamicBlocksuite setCreateEditorHandler={setCreateEditorHandler} />
|
<DynamicBlocksuite setCreateEditorHandler={setCreateEditorHandler} />
|
||||||
|
|||||||
@@ -24,7 +24,6 @@ export type AppStateFunction = {
|
|||||||
setEditor: (page: EditorContainer) => void;
|
setEditor: (page: EditorContainer) => void;
|
||||||
loadWorkspace: (workspaceId: string) => Promise<void>;
|
loadWorkspace: (workspaceId: string) => Promise<void>;
|
||||||
loadPage: (pageId: string) => void;
|
loadPage: (pageId: string) => void;
|
||||||
createWorkspace: (name: string) => Promise<void>;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
export type AppStateContext = AppStateValue & AppStateFunction;
|
export type AppStateContext = AppStateValue & AppStateFunction;
|
||||||
|
|||||||
Reference in New Issue
Block a user