From e1a62c1f03979ecfc668a2111159321df132a6e1 Mon Sep 17 00:00:00 2001 From: Alex Yang Date: Fri, 14 Jul 2023 15:47:51 +0800 Subject: [PATCH] refactor: simplify code (#3231) (cherry picked from commit 5864f8cb9a062b915d95861060ac154b4a79c8e9) --- .../collections/collections-list.tsx | 15 +++++++-------- .../workspace-slider-bar/collections/page.tsx | 12 ++++-------- .../favorite/favorite-list.tsx | 6 +++--- .../pure/workspace-slider-bar/index.tsx | 6 +++--- .../web/src/components/root-app-sidebar/index.tsx | 8 ++------ 5 files changed, 19 insertions(+), 28 deletions(-) diff --git a/apps/web/src/components/pure/workspace-slider-bar/collections/collections-list.tsx b/apps/web/src/components/pure/workspace-slider-bar/collections/collections-list.tsx index 2d5319f97f..3cbff89b2f 100644 --- a/apps/web/src/components/pure/workspace-slider-bar/collections/collections-list.tsx +++ b/apps/web/src/components/pure/workspace-slider-bar/collections/collections-list.tsx @@ -15,7 +15,7 @@ import { UnpinIcon, ViewLayersIcon, } from '@blocksuite/icons'; -import type { PageMeta } from '@blocksuite/store'; +import type { PageMeta, Workspace } from '@blocksuite/store'; import type { DragEndEvent } from '@dnd-kit/core'; import { useDroppable } from '@dnd-kit/core'; import * as Collapsible from '@radix-ui/react-collapsible'; @@ -25,7 +25,6 @@ import type { ReactElement } from 'react'; import React, { useCallback, useMemo, useState } from 'react'; import { useGetPageInfoById } from '../../../../hooks/use-get-page-info'; -import type { AllWorkspace } from '../../../../shared'; import { filterPage } from '../../../../utils/filter'; import type { CollectionsListProps } from '../index'; import { Page } from './page'; @@ -126,7 +125,7 @@ const CollectionRenderer = ({ }: { collection: Collection; pages: PageMeta[]; - workspace: AllWorkspace; + workspace: Workspace; getPageInfo: GetPageInfoById; }) => { const [collapsed, setCollapsed] = React.useState(true); @@ -189,7 +188,7 @@ const CollectionRenderer = ({ return ( ); }; -export const CollectionsList = ({ currentWorkspace }: CollectionsListProps) => { - const metas = useBlockSuitePageMeta(currentWorkspace.blockSuiteWorkspace); - const { savedCollections } = useSavedCollections(currentWorkspace.id); +export const CollectionsList = ({ workspace }: CollectionsListProps) => { + const metas = useBlockSuitePageMeta(workspace); + const { savedCollections } = useSavedCollections(workspace.id); const getPageInfo = useGetPageInfoById(); return (
@@ -268,7 +267,7 @@ export const CollectionsList = ({ currentWorkspace }: CollectionsListProps) => { key={view.id} collection={view} pages={metas} - workspace={currentWorkspace} + workspace={workspace} /> ); })} diff --git a/apps/web/src/components/pure/workspace-slider-bar/collections/page.tsx b/apps/web/src/components/pure/workspace-slider-bar/collections/page.tsx index 87fbdb49f9..16f8051f85 100644 --- a/apps/web/src/components/pure/workspace-slider-bar/collections/page.tsx +++ b/apps/web/src/components/pure/workspace-slider-bar/collections/page.tsx @@ -19,7 +19,6 @@ import React, { useCallback, useMemo } from 'react'; import { pageSettingFamily } from '../../../../atoms'; import { useBlockSuiteMetaHelper } from '../../../../hooks/affine/use-block-suite-meta-helper'; -import type { AllWorkspace } from '../../../../shared'; import { ReferencePage } from '../components/reference-page'; import * as styles from './styles.css'; @@ -130,7 +129,7 @@ export const Page = ({ removeFromAllowList: (id: string) => void; inExcludeList: boolean; addToExcludeList: (id: string) => void; - workspace: AllWorkspace; + workspace: Workspace; allPageMeta: Record; }) => { const [collapsed, setCollapsed] = React.useState(true); @@ -140,10 +139,7 @@ export const Page = ({ const active = router.query.pageId === pageId; const setting = useAtomValue(pageSettingFamily(pageId)); const icon = setting?.mode === 'edgeless' ? : ; - const references = useBlockSuitePageReferences( - workspace.blockSuiteWorkspace, - pageId - ); + const references = useBlockSuitePageReferences(workspace, pageId); const clickPage = useCallback(() => { return router.push(`/workspace/${workspace.id}/${page.id}`); }, [page.id, router, workspace.id]); @@ -170,7 +166,7 @@ export const Page = ({ inExcludeList={inExcludeList} addToExcludeList={addToExcludeList} page={page} - workspace={workspace.blockSuiteWorkspace} + workspace={workspace} />
} @@ -189,7 +185,7 @@ export const Page = ({ return ( { - const metas = useBlockSuitePageMeta(currentWorkspace.blockSuiteWorkspace); +export const FavoriteList = ({ workspace }: FavoriteListProps) => { + const metas = useBlockSuitePageMeta(workspace); const favoriteList = useMemo( () => metas.filter(p => p.favorite && !p.trash), @@ -36,7 +36,7 @@ export const FavoriteList = ({ currentWorkspace }: FavoriteListProps) => { pageId={pageMeta.id} // memo? parentIds={new Set()} - workspace={currentWorkspace.blockSuiteWorkspace} + workspace={workspace} /> ); })} diff --git a/apps/web/src/components/pure/workspace-slider-bar/index.tsx b/apps/web/src/components/pure/workspace-slider-bar/index.tsx index 64274d701c..38a21ffd30 100644 --- a/apps/web/src/components/pure/workspace-slider-bar/index.tsx +++ b/apps/web/src/components/pure/workspace-slider-bar/index.tsx @@ -1,9 +1,9 @@ -import type { AllWorkspace } from '../../../shared'; +import type { Workspace } from '@blocksuite/store'; export type FavoriteListProps = { - currentWorkspace: AllWorkspace; + workspace: Workspace; }; export type CollectionsListProps = { - currentWorkspace: AllWorkspace; + workspace: Workspace; }; diff --git a/apps/web/src/components/root-app-sidebar/index.tsx b/apps/web/src/components/root-app-sidebar/index.tsx index 0202cc9f90..ba6e3270b1 100644 --- a/apps/web/src/components/root-app-sidebar/index.tsx +++ b/apps/web/src/components/root-app-sidebar/index.tsx @@ -189,13 +189,9 @@ export const RootAppSidebar = ({ - {blockSuiteWorkspace && ( - - )} + - {blockSuiteWorkspace && ( - - )} +