diff --git a/packages/app/src/hooks/mock-data/mock.ts b/packages/app/src/hooks/mock-data/mock.ts deleted file mode 100644 index 9a091e202e..0000000000 --- a/packages/app/src/hooks/mock-data/mock.ts +++ /dev/null @@ -1,160 +0,0 @@ -export interface Workspace { - name: string; // 名称 - id: string; //唯一标识 - isPublish?: boolean; // 是否公开 - isLocal?: boolean; // 是否全部数据都在本地 - avatar?: string; // 封面 - type: 'local' | 'cloud' | 'join'; // cloud: 云端(本次暂不支持),local: 本地,join : 加入别人的 - workspaceOwner?: User; // 本地工作空间的拥有者 -} - -export interface User { - name: string; - id: string; - email: string; - avatar: string; -} - -export function updateWorkspaceMeta( - workspaceId: string, - workspaceData: { - name?: string; - avatar?: string; - type?: 'local' | 'cloud' | 'join'; - } -) { - const workspacesMeta = getWorkspaces(); - const newWorkspacesMeta = workspacesMeta.map((workspace: Workspace) => { - if (workspace.id === workspaceId) { - workspaceData.name && (workspace.name = workspaceData.name); - workspaceData.avatar && (workspace.avatar = workspaceData.avatar); - workspaceData.type && (workspace.type = workspaceData.type); - return workspaceData; - } - return workspace; - }); - localStorage.setItem('affine-workspace', JSON.stringify(newWorkspacesMeta)); - const activeWorkspace = getActiveWorkspace(); - workspaceData.name && (activeWorkspace.name = workspaceData.name); - workspaceData.avatar && (activeWorkspace.avatar = workspaceData.avatar); - - workspaceData.type && (activeWorkspace.type = workspaceData.type); - console.log(workspaceData); - setActiveWorkspace(activeWorkspace); -} -export function createWorkspace(workspaceName: string) { - const workspaceId = 'workspace-' + Date.now(); - const workspaceData = { - name: workspaceName, - id: workspaceId, - isPublish: false, - isLocal: true, - avatar: '', - type: 'local', - } as Workspace; - const workspacesMeta = getWorkspaces(); - workspacesMeta.push(workspaceData); - localStorage.setItem('affine-workspace', JSON.stringify(workspacesMeta)); - setActiveWorkspace(workspaceData); - return { workspaceId }; -} - -export function getWorkspaces(): Workspace[] { - const workspacesMeta = JSON.parse( - localStorage.getItem('affine-workspace') ?? '[]' - ); - return workspacesMeta; -} - -export function deleteWorkspace(workspaceId: string) { - const workspacesMeta = getWorkspaces(); - const newWorkspacesMeta = workspacesMeta.filter(() => { - return workspaceId !== workspaceId; - }); - localStorage.setItem('affine-workspace', JSON.stringify(newWorkspacesMeta)); -} - -export function getMembers(id: string): User[] { - const memberMap = JSON.parse(localStorage.getItem('affine-member') ?? '{}'); - return memberMap[id] || []; -} - -export function setMember(workspaceId: string, member: User) { - const memberMap = JSON.parse(localStorage.getItem('affine-member') ?? '{}'); - memberMap[workspaceId] = memberMap[workspaceId] || []; - memberMap[workspaceId].push(member); - localStorage.setItem('affine-member', JSON.stringify(memberMap)); -} - -export function deleteMember(workspaceId: string, index: number) { - const memberMap = JSON.parse(localStorage.getItem('affine-member') ?? '{}'); - const memberList = memberMap[workspaceId]; - memberList.splice(index, 1); - memberMap[workspaceId] = memberList; - localStorage.setItem('affine-member', JSON.stringify(memberMap)); -} -export function leaveWorkspace() { - return true; -} - -export function setWorkspacePublish(id: string, isPublish: boolean): boolean { - const workspacesMeta = getWorkspaces(); - const newWorkspacesMeta = workspacesMeta.map((workspace: Workspace) => { - if (workspace.id === id) { - workspace.isPublish = isPublish; - } - return workspace; - }); - localStorage.setItem('affine-workspace', JSON.stringify(newWorkspacesMeta)); - return isPublish; -} - -export function getWorkspaceById(id: string) { - const workspacesMeta = getWorkspaces(); - return workspacesMeta.find((workspace: Workspace) => { - return workspace.id === id; - }); -} - -export function getPagesByWorkspaceId(workspaceId: string) { - if (!workspaceId) return []; - const workspacesMeta = []; - for (let i = 0; i < 10; i++) { - workspacesMeta.push({ - id: 'page-' + i, - name: 'page ' + i, - }); - } -} - -export function getActiveWorkspace(): Workspace { - return JSON.parse(localStorage.getItem('affine-active-workspace') ?? '{}'); -} - -export function setActiveWorkspace(workspaceData: Workspace) { - console.log('workspaceData: ', workspaceData); - localStorage.setItem( - 'affine-active-workspace', - JSON.stringify(workspaceData) - ); -} - -export function getUserInfo(): User { - return JSON.parse(localStorage.getItem('affine-user') ?? 'null'); -} - -export function Login(): void { - localStorage.setItem( - 'affine-user', - JSON.stringify({ - name: 'Diamond', - id: 'ttt', - email: 'diamond.shx@gmail.com', - avatar: 'string', - }) - ); -} - -export function SignOut(): void { - localStorage.removeItem('affine-user'); -} diff --git a/packages/app/src/pages/_app.tsx b/packages/app/src/pages/_app.tsx index c6cb2f6e6a..bc06e51a42 100644 --- a/packages/app/src/pages/_app.tsx +++ b/packages/app/src/pages/_app.tsx @@ -21,7 +21,6 @@ import { useAppState } from '@/providers/app-state-provider'; import { PageLoading } from '@/components/loading'; import Head from 'next/head'; import '@affine/i18n'; -import TemporaryHelperProvider from '@/providers/temporary-helper-provider'; const ThemeProvider = dynamic(() => import('@/providers/ThemeProvider'), { ssr: false, @@ -55,10 +54,8 @@ const App = ({ Component, pageProps }: AppPropsWithLayout) => { , , , - // , , , ]} diff --git a/packages/app/src/providers/temporary-helper-provider.tsx b/packages/app/src/providers/temporary-helper-provider.tsx deleted file mode 100644 index 5731646a15..0000000000 --- a/packages/app/src/providers/temporary-helper-provider.tsx +++ /dev/null @@ -1,183 +0,0 @@ -import { createContext, useContext, useEffect, useState } from 'react'; -import type { PropsWithChildren } from 'react'; -import { getWorkspaces, User, Workspace } from '@/hooks/mock-data/mock'; - -type TemporaryContextValue = { - workspaceMetaList: Workspace[]; - currentWorkspace: Workspace | null; - user: User | null; - - updateWorkspaceMeta: ( - workspaceId: string, - workspaceData: { - name?: string; - avatar?: string; - isPublish?: boolean; - type?: 'local' | 'cloud' | 'join'; - } - ) => void; - - createWorkspace: (workspaceName: string) => Workspace; - - deleteWorkspace: (workspaceId: string) => void; - - setWorkspacePublish: (id: string, isPublish: boolean) => void; - - setActiveWorkspace: (workspaceData: Workspace) => void; - - login: () => void; - - signOut: () => void; -}; -type TemporaryContextProps = PropsWithChildren>; - -export const TemporaryContext = createContext({ - workspaceMetaList: [], - currentWorkspace: null, - user: null, - - // eslint-disable-next-line @typescript-eslint/no-empty-function - updateWorkspaceMeta: () => {}, - - createWorkspace: () => { - return {} as Workspace; - }, - // eslint-disable-next-line @typescript-eslint/no-empty-function - deleteWorkspace: () => {}, - // eslint-disable-next-line @typescript-eslint/no-empty-function - setWorkspacePublish: () => {}, - // eslint-disable-next-line @typescript-eslint/no-empty-function - setActiveWorkspace: () => {}, - // eslint-disable-next-line @typescript-eslint/no-empty-function - login: () => {}, - // eslint-disable-next-line @typescript-eslint/no-empty-function - signOut: () => {}, -}); - -export const useTemporaryHelper = () => useContext(TemporaryContext); - -export const TemporaryHelperProvider = ({ - children, -}: PropsWithChildren) => { - const [workspaceMetaList, setWorkspaceMetaList] = useState([]); - const [currentWorkspace, setCurrentWorkspace] = useState( - null - ); - const [user, setUser] = useState(null); - - useEffect(() => { - setWorkspaceMetaList(getWorkspaces()); - setCurrentWorkspace( - JSON.parse(localStorage.getItem('affine-active-workspace') ?? '{}') - ); - }, []); - - return ( - { - const workspacesMeta = getWorkspaces(); - const newWorkspacesMeta = workspacesMeta.map( - (workspace: Workspace) => { - if (workspace.id === workspaceId) { - const workspaceObj = Object.assign(workspace, workspaceData); - return workspaceObj; - } - return workspace; - } - ); - localStorage.setItem( - 'affine-workspace', - JSON.stringify(newWorkspacesMeta) - ); - setWorkspaceMetaList(newWorkspacesMeta); - if (workspaceId === currentWorkspace?.id) { - setCurrentWorkspace( - // eslint-disable-next-line @typescript-eslint/ban-ts-comment - // @ts-ignore - newWorkspacesMeta.find(v => v.id === currentWorkspace.id) - ); - } - }, - createWorkspace: workspaceName => { - const workspaceData = { - name: workspaceName, - id: 'workspace-' + Date.now(), - isPublish: false, - isLocal: true, - avatar: '', - type: 'local', - } as Workspace; - const workspacesMeta = getWorkspaces(); - workspacesMeta.push(workspaceData); - localStorage.setItem( - 'affine-workspace', - JSON.stringify(workspacesMeta) - ); - - setWorkspaceMetaList([...workspacesMeta]); - return workspaceData; - }, - deleteWorkspace: workspaceId => { - const workspacesMeta = getWorkspaces(); - const newWorkspacesMeta = workspacesMeta.filter(() => { - return workspaceId !== workspaceId; - }); - localStorage.setItem( - 'affine-workspace', - JSON.stringify(newWorkspacesMeta) - ); - setWorkspaceMetaList(workspacesMeta); - }, - - setWorkspacePublish: (id, isPublish) => { - const workspacesMeta = getWorkspaces(); - const newWorkspacesMeta = workspacesMeta.map( - (workspace: Workspace) => { - if (workspace.id === id) { - workspace.isPublish = isPublish; - } - return workspace; - } - ); - localStorage.setItem( - 'affine-workspace', - JSON.stringify(newWorkspacesMeta) - ); - setWorkspaceMetaList(workspacesMeta); - }, - setActiveWorkspace(workspaceData) { - localStorage.setItem( - 'affine-active-workspace', - JSON.stringify(workspaceData) - ); - setCurrentWorkspace(workspaceData); - }, - - login: () => { - const userInfo = { - name: 'Diamond', - id: 'ttt', - email: 'diamond.shx@gmail.com', - avatar: 'string', - }; - localStorage.setItem('affine-user', JSON.stringify(userInfo)); - setUser(userInfo); - }, - - signOut(): void { - localStorage.removeItem('affine-user'); - setUser(null); - }, - }} - > - {children} - - ); -}; - -export default TemporaryHelperProvider;