chore: remove usePagelist

This commit is contained in:
QiShaoXuan
2022-12-21 17:09:30 +08:00
parent a453454250
commit 9280388c31
6 changed files with 17 additions and 38 deletions
@@ -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
);
@@ -103,3 +103,5 @@ export const usePageHelper = (): EditorHandlers => {
},
};
};
export default usePageHelper;
@@ -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 ? (
<>
<PageListHeader icon={<AllPagesIcon />}>All Page</PageListHeader>
<PageList
pageList={allPageList.filter(p => !p.trash)}
pageList={pageMetaList.filter(p => !p.trash)}
showFavoriteTag={true}
/>
</>
@@ -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 ? (
<>
<PageListHeader icon={<FavouritesIcon />}>Favourites</PageListHeader>
<PageList pageList={allPageList.filter(p => p.favorite && !p.trash)} />
<PageList pageList={pageMetaList.filter(p => p.favorite && !p.trash)} />
</>
) : null;
};
@@ -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 ? (
<>
<PageListHeader icon={<TrashIcon />}>Trash</PageListHeader>
<PageList pageList={allPageList.filter(p => p.trash)} isTrash={true} />
<PageList pageList={pageMetaList.filter(p => p.trash)} isTrash={true} />
</>
) : 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<PageMeta[]>([]);
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;
};