import { FlexWrapper, MuiAvatar } from '@affine/component'; import { Button } from '@affine/component'; import { MuiFade } from '@affine/component'; import { WorkspaceUnit } from '@affine/datacenter'; import { useTranslation } from '@affine/i18n'; import { EmailIcon } from '@blocksuite/icons'; import { useCallback, useState } from 'react'; import { Upload } from '@/components/file-upload'; import { CloudWorkspaceIcon, JoinedWorkspaceIcon, LocalWorkspaceIcon, } from '@/components/icons'; import { WorkspaceUnitAvatar } from '@/components/workspace-avatar'; import { useWorkspaceHelper } from '@/hooks/use-workspace-helper'; import { useGlobalState } from '@/store/app'; import { StyledRow, StyledSettingKey } from '../style'; import { WorkspaceDelete } from './delete'; import { CameraIcon } from './icons'; import { WorkspaceLeave } from './leave'; import { StyledAvatar, StyledEditButton, StyledInput, StyledWorkspaceInfo, } from './style'; export const GeneralPage = ({ workspace }: { workspace: WorkspaceUnit }) => { const [showDelete, setShowDelete] = useState(false); const [showLeave, setShowLeave] = useState(false); const [workspaceName, setWorkspaceName] = useState(workspace?.name); const [showEditInput, setShowEditInput] = useState(false); const isOwner = useGlobalState(store => store.isOwner); const currentWorkspace = useGlobalState( useCallback(store => store.currentDataCenterWorkspace, []) ); const { updateWorkspace } = useWorkspaceHelper(); const { t } = useTranslation(); const handleUpdateWorkspaceName = () => { currentWorkspace && updateWorkspace({ name: workspaceName }, currentWorkspace); }; const fileChange = async (file: File) => { const blob = new Blob([file], { type: file.type }); currentWorkspace && (await updateWorkspace({ avatarBlob: blob }, currentWorkspace)); }; if (!workspace) { return null; } return ( <> {t('Workspace Avatar')} {isOwner ? ( <>
) : ( )}
{t('Workspace Name')}
{workspace.name} {isOwner && ( { setShowEditInput(true); }} > {t('Edit')} )} {isOwner && ( { setWorkspaceName(newName); }} > )}
{!isOwner && ( {t('Workspace Owner')} {currentWorkspace?.owner?.name} )} {!isOwner && ( {t('Members')} {currentWorkspace?.memberCount} )} {t('Workspace Type')} {isOwner ? ( currentWorkspace?.provider === 'local' ? ( {t('Local Workspace')} ) : ( {t('Cloud Workspace')} ) ) : ( {t('Joined Workspace')} )} {t('Delete Workspace')} {isOwner ? ( <> { setShowDelete(false); }} workspace={workspace} /> ) : ( <> { setShowLeave(false); }} /> )} ); };