feat:add loadWorkspace

This commit is contained in:
DiamondThree
2023-01-09 18:46:36 +08:00
parent 5687fa211e
commit bf61fbc057
3 changed files with 16 additions and 13 deletions

View File

@@ -7,12 +7,10 @@ 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'; import { useWorkspaceHelper } from '@/hooks/use-workspace-helper';
interface ICloseParams {
workspaceId?: string;
}
interface ModalProps { interface ModalProps {
open: boolean; open: boolean;
onClose: (opts: ICloseParams) => void; onClose: () => void;
} }
export const CreateWorkspaceModal = ({ open, onClose }: ModalProps) => { export const CreateWorkspaceModal = ({ open, onClose }: ModalProps) => {
@@ -23,6 +21,7 @@ export const CreateWorkspaceModal = ({ open, onClose }: ModalProps) => {
const workspace = await createWorkspace(workspaceName); const workspace = await createWorkspace(workspaceName);
if (workspace && workspace.room) { if (workspace && workspace.room) {
await loadWorkspace(workspace.room); await loadWorkspace(workspace.room);
onClose();
} else { } else {
console.log('create error'); console.log('create error');
} }
@@ -44,7 +43,7 @@ export const CreateWorkspaceModal = ({ open, onClose }: ModalProps) => {
top={6} top={6}
right={6} right={6}
onClick={() => { onClick={() => {
onClose({}); onClose();
}} }}
/> />
</Header> </Header>

View File

@@ -24,7 +24,7 @@ interface LoginModalProps {
export const WorkspaceModal = ({ open, onClose }: LoginModalProps) => { export const WorkspaceModal = ({ open, onClose }: LoginModalProps) => {
const [createWorkspaceOpen, setCreateWorkspaceOpen] = useState(false); const [createWorkspaceOpen, setCreateWorkspaceOpen] = useState(false);
const { confirm } = useConfirm(); const { confirm } = useConfirm();
const { user, workspaceList } = useAppState(); const { user, workspaceList, loadWorkspace } = useAppState();
return ( return (
<div> <div>
@@ -51,6 +51,8 @@ export const WorkspaceModal = ({ open, onClose }: LoginModalProps) => {
<WorkspaceItem <WorkspaceItem
onClick={() => { onClick={() => {
// setActiveWorkspace(item); // setActiveWorkspace(item);
console.log(item);
loadWorkspace(item.id);
onClose(); onClose();
}} }}
key={index} key={index}
@@ -149,7 +151,7 @@ export const WorkspaceModal = ({ open, onClose }: LoginModalProps) => {
</Footer> </Footer>
<CreateWorkspaceModal <CreateWorkspaceModal
open={createWorkspaceOpen} open={createWorkspaceOpen}
onClose={({ workspaceId }) => { onClose={() => {
setCreateWorkspaceOpen(false); setCreateWorkspaceOpen(false);
onClose(); onClose();
confirm({ confirm({

View File

@@ -3,18 +3,20 @@ import { useEffect, useState } from 'react';
import { WorkspaceModal } from '@/components/workspace-modal'; import { WorkspaceModal } from '@/components/workspace-modal';
import { WorkspaceAvatar } from '@/components/workspace-avatar'; import { WorkspaceAvatar } from '@/components/workspace-avatar';
import { useTemporaryHelper } from '@/providers/temporary-helper-provider'; import { useTemporaryHelper } from '@/providers/temporary-helper-provider';
import { useAppState } from '@/providers/app-state-provider';
export const WorkspaceSelector = () => { export const WorkspaceSelector = () => {
const [workspaceListShow, setWorkspaceListShow] = useState(false); const [workspaceListShow, setWorkspaceListShow] = useState(false);
const { currentWorkspace, workspaceMetaList } = useTemporaryHelper(); const { currentWorkspace, workspaceList } = useAppState();
useEffect(() => { useEffect(() => {
if (workspaceMetaList.length === 0) { if (workspaceList.length === 0) {
setWorkspaceListShow(true); setWorkspaceListShow(true);
} }
}, [workspaceMetaList]); }, [workspaceList]);
return ( return (
<> <>
<div>{currentWorkspace.meta.name}</div>
<SelectorWrapper <SelectorWrapper
onClick={() => { onClick={() => {
setWorkspaceListShow(true); setWorkspaceListShow(true);
@@ -24,7 +26,7 @@ export const WorkspaceSelector = () => {
<Avatar <Avatar
alt="Affine" alt="Affine"
data-testid="workspace-avatar" data-testid="workspace-avatar"
src={currentWorkspace?.avatar} src={currentWorkspace.meta.avatar}
> >
<div <div
style={{ style={{
@@ -33,12 +35,12 @@ export const WorkspaceSelector = () => {
> >
<WorkspaceAvatar <WorkspaceAvatar
size={28} size={28}
name={currentWorkspace?.name ?? 'AFFiNE'} name={currentWorkspace.meta.name ?? 'AFFiNE'}
/> />
</div> </div>
</Avatar> </Avatar>
<WorkspaceName data-testid="workspace-name"> <WorkspaceName data-testid="workspace-name">
{currentWorkspace?.name ?? 'AFFiNE'} {currentWorkspace?.meta.name ?? 'AFFiNE'}
</WorkspaceName> </WorkspaceName>
</SelectorWrapper> </SelectorWrapper>
<WorkspaceModal <WorkspaceModal