diff --git a/packages/app/src/components/loading/styled.ts b/packages/app/src/components/loading/styled.ts index b98a8bfaa..31906e1b7 100644 --- a/packages/app/src/components/loading/styled.ts +++ b/packages/app/src/components/loading/styled.ts @@ -1,19 +1,22 @@ import { styled } from '@/styles'; // Inspired by https://codepen.io/graphilla/pen/rNvBMYY -export const StyledLoadingWrapper = styled.div<{ size?: number }>( - ({ size = 40 }) => { - return { - width: size * 4, - height: size * 4, - position: 'relative', - }; - } -); +export const StyledLoadingWrapper = styled('div', { + shouldForwardProp: prop => { + return !['size'].includes(prop); + }, +})<{ size?: number }>(({ size = 40 }) => { + return { + width: size * 4, + height: size * 4, + position: 'relative', + }; +}); export const StyledLoading = styled.div` position: absolute; left: 25%; - top: 25%; + top: 50%; + transform: rotateX(55deg) rotateZ(-45deg); @keyframes slide { 0% { transform: translate(var(--sx), var(--sy)); diff --git a/packages/app/src/components/page-list/index.tsx b/packages/app/src/components/page-list/index.tsx index 2501f13ba..d31767b81 100644 --- a/packages/app/src/components/page-list/index.tsx +++ b/packages/app/src/components/page-list/index.tsx @@ -51,7 +51,7 @@ const FavoriteTag = ({ style={{ color: favorite ? theme.colors.primaryColor : theme.colors.iconColor, }} - className="favorite-button" + className={favorite ? '' : 'favorite-button'} > {favorite ? ( diff --git a/packages/app/src/components/workspace-modal/index.tsx b/packages/app/src/components/workspace-modal/index.tsx index 3621d22e4..08372b52b 100644 --- a/packages/app/src/components/workspace-modal/index.tsx +++ b/packages/app/src/components/workspace-modal/index.tsx @@ -55,7 +55,7 @@ export const WorkspaceModal = ({ open, onClose }: WorkspaceModalProps) => { router.replace(`/workspace/${item.id}`); onClose(); }} - active={item.id === currentWorkspace.room} + active={item.id === currentWorkspace?.room} key={index} > diff --git a/packages/app/src/hooks/use-ensure-workspace.ts b/packages/app/src/hooks/use-ensure-workspace.ts index 93140dd92..ce1fed074 100644 --- a/packages/app/src/hooks/use-ensure-workspace.ts +++ b/packages/app/src/hooks/use-ensure-workspace.ts @@ -1,8 +1,6 @@ import { useState, useEffect } from 'react'; import { useAppState } from '@/providers/app-state-provider'; import { useRouter } from 'next/router'; -const defaultOutLineWorkspaceId = 'affine'; -// 'local-first-' + '85b4ca0b9081421d903bbc2501ea280f'; // It is a fully effective hook // Cause it not just ensure workspace loaded, but also have router change. export const useEnsureWorkspace = () => { @@ -35,9 +33,8 @@ export const useEnsureWorkspace = () => { // return; // } - const workspaceId = user - ? (router.query.workspaceId as string) || workspaceList[0]?.id - : (router.query.workspaceId as string) || defaultOutLineWorkspaceId; + const workspaceId = + (router.query.workspaceId as string) || workspaceList[0]?.id; loadWorkspace(workspaceId).finally(() => { console.log('workspaceId: ', workspaceId); diff --git a/packages/app/src/providers/app-state-provider/Provider.tsx b/packages/app/src/providers/app-state-provider/Provider.tsx index 40a3f8775..e0a833d81 100644 --- a/packages/app/src/providers/app-state-provider/Provider.tsx +++ b/packages/app/src/providers/app-state-provider/Provider.tsx @@ -22,35 +22,29 @@ export const AppStateProvider = ({ const [appState, setAppState] = useState({} as AppStateValue); useEffect(() => { - const init = async () => { + const initState = async () => { const dataCenter = await getDataCenter(); + // Ensure datacenter has at least one workspace if (dataCenter.workspaces.length === 0) { await createDefaultWorkspace(dataCenter); } - const currentWorkspace = await dataCenter.loadWorkspace( - dataCenter.workspaces[0].id - ); - const currentMetaWorkSpace = dataCenter.workspaces.find(item => { - return item.id === currentWorkspace.room; - }); - setAppState({ dataCenter, user: (await dataCenter.getUserInfo()) || null, workspaceList: dataCenter.workspaces, - currentWorkspaceId: dataCenter.workspaces[0].id, - currentWorkspace, - pageList: currentWorkspace.meta.pageMetas as PageMeta[], + currentWorkspaceId: '', + currentWorkspace: null, + pageList: [], currentPage: null, editor: null, synced: true, - currentMetaWorkSpace: currentMetaWorkSpace ?? null, + currentMetaWorkSpace: null, }); }; - init(); + initState(); }, []); useEffect(() => { @@ -95,6 +89,8 @@ export const AppStateProvider = ({ const loadWorkspace = useRef(); loadWorkspace.current = async (workspaceId: string) => { + console.log('loadWorkspace'); + const { dataCenter, workspaceList, currentWorkspaceId, currentWorkspace } = appState; if (!workspaceList.find(v => v.id === workspaceId)) { @@ -114,7 +110,7 @@ export const AppStateProvider = ({ currentWorkspace: workspace, currentWorkspaceId: workspaceId, currentMetaWorkSpace: currentMetaWorkSpace ?? null, - pageList: currentWorkspace.meta.pageMetas as PageMeta[], + pageList: currentWorkspace?.meta.pageMetas as PageMeta[], currentPage: null, editor: null, }); diff --git a/packages/app/src/providers/app-state-provider/interface.ts b/packages/app/src/providers/app-state-provider/interface.ts index 4e5ec6a9b..ca178781f 100644 --- a/packages/app/src/providers/app-state-provider/interface.ts +++ b/packages/app/src/providers/app-state-provider/interface.ts @@ -19,7 +19,7 @@ export type AppStateValue = { dataCenter: DataCenter; user: User | null; workspaceList: WorkspaceInfo[]; - currentWorkspace: StoreWorkspace; + currentWorkspace: StoreWorkspace | null; currentMetaWorkSpace: WorkspaceInfo | null; currentWorkspaceId: string; pageList: PageMeta[]; diff --git a/packages/app/src/ui/table/styles.ts b/packages/app/src/ui/table/styles.ts index 009888e8b..ab1a2629d 100644 --- a/packages/app/src/ui/table/styles.ts +++ b/packages/app/src/ui/table/styles.ts @@ -9,7 +9,7 @@ export const StyledTable = styled.table<{ tableLayout: 'auto' | 'fixed' }>( tableLayout, width: '100%', borderCollapse: 'separate', - borderSpacing: '0 25px', + borderSpacing: '0', }; } ); @@ -52,7 +52,6 @@ export const StyledTableHead = styled.thead(() => { export const StyledTableRow = styled.tr(({ theme }) => { return { - marginBottom: '25px', td: { transition: 'background .15s', },