From fc8deafde6c3c3498fa755eed8fac92252830f45 Mon Sep 17 00:00:00 2001 From: JimmFly Date: Wed, 14 Dec 2022 12:51:36 +0800 Subject: [PATCH] feat: optimize code structure --- .../components/quick-search/content/index.tsx | 16 ---- .../quick-search/content/jumpTo.tsx | 36 --------- .../content/searchResult/index.tsx | 30 ------- .../content/searchResult/not-found.tsx | 10 --- .../src/components/quick-search/footer.tsx | 25 +++--- .../app/src/components/quick-search/index.tsx | 17 ++-- .../app/src/components/quick-search/input.tsx | 4 +- .../src/components/quick-search/results.tsx | 80 +++++++++++++++++++ .../app/src/components/quick-search/style.ts | 45 +++++++++-- 9 files changed, 135 insertions(+), 128 deletions(-) delete mode 100644 packages/app/src/components/quick-search/content/index.tsx delete mode 100644 packages/app/src/components/quick-search/content/jumpTo.tsx delete mode 100644 packages/app/src/components/quick-search/content/searchResult/index.tsx delete mode 100644 packages/app/src/components/quick-search/content/searchResult/not-found.tsx create mode 100644 packages/app/src/components/quick-search/results.tsx diff --git a/packages/app/src/components/quick-search/content/index.tsx b/packages/app/src/components/quick-search/content/index.tsx deleted file mode 100644 index d416c3598d..0000000000 --- a/packages/app/src/components/quick-search/content/index.tsx +++ /dev/null @@ -1,16 +0,0 @@ -import React from 'react'; -import JumpTo from './jumpTo'; -import { Command } from 'cmdk'; -import SearchResult from './searchResult'; - -const Result = (props: { query: string }) => { - const query = props.query; - - return ( - - {query ? : } - - ); -}; - -export default Result; diff --git a/packages/app/src/components/quick-search/content/jumpTo.tsx b/packages/app/src/components/quick-search/content/jumpTo.tsx deleted file mode 100644 index 8a94daf180..0000000000 --- a/packages/app/src/components/quick-search/content/jumpTo.tsx +++ /dev/null @@ -1,36 +0,0 @@ -import React from 'react'; -import { FavouritesIcon, TrashIcon, AllPagesIcon } from '@blocksuite/icons'; -import Link from 'next/link'; -import { StyledJumpTo } from '../style'; -import { useModal } from '@/providers/global-modal-provider'; -const JumpTo = () => { - const { triggerQuickSearchModal } = useModal(); - return ( - - Jump to - triggerQuickSearchModal()} - > - - All pages - - triggerQuickSearchModal()} - > - - Favourites - - triggerQuickSearchModal()} - > - - Trash - - - ); -}; - -export default JumpTo; diff --git a/packages/app/src/components/quick-search/content/searchResult/index.tsx b/packages/app/src/components/quick-search/content/searchResult/index.tsx deleted file mode 100644 index e9b9c95e4f..0000000000 --- a/packages/app/src/components/quick-search/content/searchResult/index.tsx +++ /dev/null @@ -1,30 +0,0 @@ -import { useEffect, useState } from 'react'; -import NotFound from './not-found'; -import { Command } from 'cmdk'; -import { useEditor } from '@/providers/editor-provider'; - -const SearchResult = (props: { query: string }) => { - const { search, openPage, pageList } = useEditor(); - const [results, setResults] = useState(new Map()); - const query = props.query; - useEffect(() => { - return setResults(search(query)); - //Save the Map obtained from the search as state - }, [query, search]); - const pageIds = [...results.values()]; - - const resultsPageMeta = pageList.filter( - page => pageIds.indexOf(page.id) > -1 - ); - - return ( - <> - - {resultsPageMeta.map(result => { - return {result.title}; - })} - - ); -}; - -export default SearchResult; diff --git a/packages/app/src/components/quick-search/content/searchResult/not-found.tsx b/packages/app/src/components/quick-search/content/searchResult/not-found.tsx deleted file mode 100644 index e81d7cdafd..0000000000 --- a/packages/app/src/components/quick-search/content/searchResult/not-found.tsx +++ /dev/null @@ -1,10 +0,0 @@ -import React from 'react'; -import { Command, useCommandState } from 'cmdk'; - -const NotFound = () => { - const search = useCommandState(state => state.search); - // eslint-disable-next-line react/no-unescaped-entities - return No results found for "{search}".; -}; - -export default NotFound; diff --git a/packages/app/src/components/quick-search/footer.tsx b/packages/app/src/components/quick-search/footer.tsx index 7f176c9fb0..2445c405ed 100644 --- a/packages/app/src/components/quick-search/footer.tsx +++ b/packages/app/src/components/quick-search/footer.tsx @@ -3,26 +3,21 @@ import { AddIcon } from '@blocksuite/icons'; import { StyledModalFooterContent } from './style'; import { useEditor } from '@/providers/editor-provider'; import { useModal } from '@/providers/global-modal-provider'; -import { IconButton } from '@/ui/button'; -const QuickSearchFooter = () => { +export const Footer = () => { const { createPage, getPageMeta, openPage } = useEditor(); const { triggerQuickSearchModal } = useModal(); return ( - - { - const page = createPage(); - const pageMeta = getPageMeta((await page).id); - pageMeta && openPage(pageMeta.id); - triggerQuickSearchModal(); - }} - > - - + { + const page = createPage(); + const pageMeta = getPageMeta((await page).id); + pageMeta && openPage(pageMeta.id); + triggerQuickSearchModal(); + }} + > + New page ); }; - -export default QuickSearchFooter; diff --git a/packages/app/src/components/quick-search/index.tsx b/packages/app/src/components/quick-search/index.tsx index c0ee637c92..e026552630 100644 --- a/packages/app/src/components/quick-search/index.tsx +++ b/packages/app/src/components/quick-search/index.tsx @@ -6,9 +6,9 @@ import { StyledModalDivider, StyledShortcut, } from './style'; -import Input from './input'; -import Result from './content'; -import QuickSearchFooter from './footer'; +import { Input } from './input'; +import { Results } from './results'; +import { Footer } from './footer'; import { Command } from 'cmdk'; import { useEffect, useState } from 'react'; import { useModal } from '@/providers/global-modal-provider'; @@ -57,16 +57,13 @@ export const QuickSearch = ({ open, onClose }: TransitionsModalProps) => { - + - - - - + +