feat:add loadWorkspace
This commit is contained in:
@@ -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>
|
||||||
|
|||||||
@@ -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({
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user