diff --git a/packages/app/src/components/quick-search/results.tsx b/packages/app/src/components/quick-search/results.tsx
index c9a5a56706..bd10cc335a 100644
--- a/packages/app/src/components/quick-search/results.tsx
+++ b/packages/app/src/components/quick-search/results.tsx
@@ -6,10 +6,9 @@ import { Dispatch, SetStateAction, useEffect, useState } from 'react';
import { useAppState } from '@/providers/app-state-provider/context';
import { useRouter } from 'next/router';
import { config } from './config';
-import { usePageList } from '@/providers/app-state-provider/usePageList';
-import { useLoadWorkspace } from '@/providers/app-state-provider/hooks';
import { NoResultSVG } from './noResultSVG';
-import { usePageHelper } from '@/hooks/use-page-helper';
+import usePageHelper from '@/hooks/use-page-helper';
+import usePageMetaList from '@/hooks/use-page-meta-list';
export const Results = (props: {
query: string;
loading: boolean;
@@ -21,8 +20,7 @@ export const Results = (props: {
const setLoading = props.setLoading;
const setShowCreatePage = props.setShowCreatePage;
const { triggerQuickSearchModal } = useModal();
- const workspace = useLoadWorkspace();
- const pageList = usePageList(workspace);
+ const pageMetaList = usePageMetaList();
const { openPage } = usePageHelper();
const router = useRouter();
const { currentWorkspaceId } = useAppState();
@@ -36,7 +34,7 @@ export const Results = (props: {
}, [query, search, setLoading]);
const pageIds = [...results.values()];
- const resultsPageMeta = pageList.filter(
+ const resultsPageMeta = pageMetaList.filter(
page => pageIds.indexOf(page.id) > -1 && !page.trash
);
diff --git a/packages/app/src/hooks/use-page-helper.ts b/packages/app/src/hooks/use-page-helper.ts
index e5a30e43fa..b1b4c4ae6e 100644
--- a/packages/app/src/hooks/use-page-helper.ts
+++ b/packages/app/src/hooks/use-page-helper.ts
@@ -103,3 +103,5 @@ export const usePageHelper = (): EditorHandlers => {
},
};
};
+
+export default usePageHelper;
diff --git a/packages/app/src/pages/workspace/[workspaceId]/all.tsx b/packages/app/src/pages/workspace/[workspaceId]/all.tsx
index 878e6d4eac..59b25448f1 100644
--- a/packages/app/src/pages/workspace/[workspaceId]/all.tsx
+++ b/packages/app/src/pages/workspace/[workspaceId]/all.tsx
@@ -1,18 +1,18 @@
-import { usePageList } from '@/providers/app-state-provider/usePageList';
import { useLoadWorkspace } from '@/providers/app-state-provider/hooks';
import { PageList } from '@/components/page-list';
import { AllPagesIcon } from '@blocksuite/icons';
-
+import usePageMetaList from '@/hooks/use-page-meta-list';
import { PageListHeader } from '@/components/header';
const All = () => {
const workspace = useLoadWorkspace();
- const allPageList = usePageList(workspace);
+ const pageMetaList = usePageMetaList();
+
return workspace ? (
<>
}>All Page
!p.trash)}
+ pageList={pageMetaList.filter(p => !p.trash)}
showFavoriteTag={true}
/>
>
diff --git a/packages/app/src/pages/workspace/[workspaceId]/favorite.tsx b/packages/app/src/pages/workspace/[workspaceId]/favorite.tsx
index 51b3ea03bc..1202fdd9bd 100644
--- a/packages/app/src/pages/workspace/[workspaceId]/favorite.tsx
+++ b/packages/app/src/pages/workspace/[workspaceId]/favorite.tsx
@@ -1,16 +1,16 @@
-import { usePageList } from '@/providers/app-state-provider/usePageList';
import { useLoadWorkspace } from '@/providers/app-state-provider/hooks';
import { PageListHeader } from '@/components/header';
import { PageList } from '@/components/page-list';
import { FavouritesIcon } from '@blocksuite/icons';
+import usePageMetaList from '@/hooks/use-page-meta-list';
export const Favorite = () => {
const workspace = useLoadWorkspace();
- const allPageList = usePageList(workspace);
+ const pageMetaList = usePageMetaList();
return workspace ? (
<>
}>Favourites
- p.favorite && !p.trash)} />
+ p.favorite && !p.trash)} />
>
) : null;
};
diff --git a/packages/app/src/pages/workspace/[workspaceId]/trash.tsx b/packages/app/src/pages/workspace/[workspaceId]/trash.tsx
index 54a45a92ba..73cbec8432 100644
--- a/packages/app/src/pages/workspace/[workspaceId]/trash.tsx
+++ b/packages/app/src/pages/workspace/[workspaceId]/trash.tsx
@@ -1,15 +1,16 @@
-import { usePageList } from '@/providers/app-state-provider/usePageList';
import { useLoadWorkspace } from '@/providers/app-state-provider/hooks';
import { PageListHeader } from '@/components/header';
import { PageList } from '@/components/page-list';
import { TrashIcon } from '@blocksuite/icons';
+import usePageMetaList from '@/hooks/use-page-meta-list';
+
export const Trash = () => {
const workspace = useLoadWorkspace();
- const allPageList = usePageList(workspace);
+ const pageMetaList = usePageMetaList();
return workspace ? (
<>
}>Trash
- p.trash)} isTrash={true} />
+ p.trash)} isTrash={true} />
>
) : null;
};
diff --git a/packages/app/src/providers/app-state-provider/usePageList.ts b/packages/app/src/providers/app-state-provider/usePageList.ts
deleted file mode 100644
index e39f5f1b18..0000000000
--- a/packages/app/src/providers/app-state-provider/usePageList.ts
+++ /dev/null
@@ -1,22 +0,0 @@
-import { useState, useEffect } from 'react';
-import type { Workspace } from '@blocksuite/store';
-import { PageMeta } from './interface';
-
-export const usePageList = (workspace: Workspace | null) => {
- const [pageList, setPageList] = useState([]);
-
- useEffect(() => {
- if (!workspace) {
- return;
- }
- setPageList(workspace.meta.pageMetas as PageMeta[]);
- const dispose = workspace.meta.pagesUpdated.on(res => {
- setPageList(workspace.meta.pageMetas as PageMeta[]);
- }).dispose;
- return () => {
- dispose();
- };
- }, [workspace]);
-
- return pageList;
-};