import { StyledInput, StyledProviderInfo, StyledAvatar } from './style'; import { StyledSettingKey, StyledRow } from '../style'; import { FlexWrapper, Content } from '@/ui/layout'; import { useState } from 'react'; import { Button } from '@/ui/button'; import { useAppState } from '@/providers/app-state-provider'; import { WorkspaceDelete } from './delete'; import { WorkspaceLeave } from './leave'; import { UsersIcon } from '@blocksuite/icons'; import { WorkspaceUnitAvatar } from '@/components/workspace-avatar'; import { WorkspaceUnit } from '@affine/datacenter'; import { useWorkspaceHelper } from '@/hooks/use-workspace-helper'; import { useTranslation } from '@affine/i18n'; import { CloudIcon, LocalIcon } from '@/components/workspace-modal/icons'; import { CameraIcon } from './icons'; import { Upload } from '@/components/file-upload'; export const GeneralPage = ({ workspace }: { workspace: WorkspaceUnit }) => { const [showDelete, setShowDelete] = useState(false); const [showLeave, setShowLeave] = useState(false); const [workspaceName, setWorkspaceName] = useState(workspace.name); const { currentWorkspace, isOwner } = useAppState(); 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')} { setWorkspaceName(newName); }} > {isOwner && ( <> )} {t('Workspace Type')} {isOwner ? ( currentWorkspace?.provider === 'local' ? ( {t('Local Workspace')} ) : ( {t('Available Offline')} ) ) : ( {t('Joined Workspace')} )} {t('Delete Workspace')} {isOwner ? ( <> { setShowDelete(false); }} workspace={workspace} /> ) : ( <> { setShowLeave(false); }} /> )} ); };