From 8a1730379ba83863a379a833e3584e608e626c80 Mon Sep 17 00:00:00 2001 From: JimmFly Date: Tue, 13 Dec 2022 11:10:23 +0800 Subject: [PATCH 1/5] feat: modify blocksuite --- packages/app/package.json | 6 +++--- pnpm-lock.yaml | 44 ++++++++++++++++++++++++--------------- 2 files changed, 30 insertions(+), 20 deletions(-) diff --git a/packages/app/package.json b/packages/app/package.json index 35bdd7d1a7..23118065a8 100644 --- a/packages/app/package.json +++ b/packages/app/package.json @@ -9,10 +9,10 @@ "lint": "next lint" }, "dependencies": { - "@blocksuite/blocks": "0.3.0-alpha.6", - "@blocksuite/editor": "0.3.0-alpha.6", + "@blocksuite/blocks": "0.3.0-alpha.7", + "@blocksuite/editor": "0.3.0-alpha.7", "@blocksuite/icons": "^1.0.5", - "@blocksuite/store": "0.3.0-alpha.6", + "@blocksuite/store": "0.3.0-alpha.7", "@emotion/css": "^11.10.0", "@emotion/react": "^11.10.4", "@emotion/server": "^11.10.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index b822c6637e..8457a583e6 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -22,10 +22,10 @@ importers: packages/app: specifiers: - '@blocksuite/blocks': 0.3.0-alpha.6 - '@blocksuite/editor': 0.3.0-alpha.6 + '@blocksuite/blocks': 0.3.0-alpha.7 + '@blocksuite/editor': 0.3.0-alpha.7 '@blocksuite/icons': ^1.0.5 - '@blocksuite/store': 0.3.0-alpha.6 + '@blocksuite/store': 0.3.0-alpha.7 '@emotion/css': ^11.10.0 '@emotion/react': ^11.10.4 '@emotion/server': ^11.10.0 @@ -54,10 +54,10 @@ importers: react-dom: 18.2.0 typescript: 4.8.3 dependencies: - '@blocksuite/blocks': 0.3.0-alpha.6 - '@blocksuite/editor': 0.3.0-alpha.6 + '@blocksuite/blocks': 0.3.0-alpha.7 + '@blocksuite/editor': 0.3.0-alpha.7 '@blocksuite/icons': 1.0.5_w5j4k42lgipnm43s3brx6h3c34 - '@blocksuite/store': 0.3.0-alpha.6 + '@blocksuite/store': 0.3.0-alpha.7 '@emotion/css': 11.10.0 '@emotion/react': 11.10.4_w5j4k42lgipnm43s3brx6h3c34 '@emotion/server': 11.10.0_@emotion+css@11.10.0 @@ -174,12 +174,14 @@ packages: to-fast-properties: 2.0.0 dev: false - /@blocksuite/blocks/0.3.0-alpha.6: - resolution: {integrity: sha512-pa8wP0hRIDlufae+ABAQFLW8TNOGsfh8AqyTKF/+LVYFCGr+9tlW55X3OlWtU51vFxawst1Wd3FnjCAW6XiaKQ==} + /@blocksuite/blocks/0.3.0-alpha.7: + resolution: {integrity: sha512-RV6yiKSVIr3hRkT1MYp15Bt7i615aahqQ7CEJZQAuDMr2OVRzAGeXJpjt3e69HWW5os4fs4yOsC1PiS8VuuWRg==} dependencies: - '@blocksuite/store': 0.3.0-alpha.6 + '@blocksuite/store': 0.3.0-alpha.7 + '@tldraw/vec': 1.8.0 hotkeys-js: 3.10.0 lit: 2.4.0 + perfect-freehand: 1.2.0 quill: 1.3.7 quill-cursors: 4.0.0 transitivePeerDependencies: @@ -188,11 +190,11 @@ packages: - utf-8-validate dev: false - /@blocksuite/editor/0.3.0-alpha.6: - resolution: {integrity: sha512-2wFkOlCKqC4BrfCIzuxjUyVnE/mmGOyUnqVTQNmHrToDS81RLIq0r+lj1IrzLv+LZQCfTyhoAlJyaxUNrUw3sw==} + /@blocksuite/editor/0.3.0-alpha.7: + resolution: {integrity: sha512-vq5xgg2Ea1kbYDCYogBnmccg3Opw2DfQeiEQM5JRxqRBe6E2R4lZqZvksVj5fekY5Pl2Nrr73VgxTutjGS1u2g==} dependencies: - '@blocksuite/blocks': 0.3.0-alpha.6 - '@blocksuite/store': 0.3.0-alpha.6 + '@blocksuite/blocks': 0.3.0-alpha.7 + '@blocksuite/store': 0.3.0-alpha.7 lit: 2.4.0 marked: 4.1.1 turndown: 7.1.1 @@ -212,8 +214,8 @@ packages: react: 18.2.0 dev: false - /@blocksuite/store/0.3.0-alpha.6: - resolution: {integrity: sha512-rI7cUVSqoMh1bsNLwL8MAgyaUq0Ix+SRBqweYwVjeDoqFIbHjnRSwkVw48K/FgxN6ekN96HLSf3Sj/HK1ivPpw==} + /@blocksuite/store/0.3.0-alpha.7: + resolution: {integrity: sha512-dO+hx/6V5aun5+U1M7qRSQLdHpXYNa2TDr9747f+Xy8CoToyYQ5jTJ/KcjKEdNm36xg66N3sNBDarhAUzs3QOg==} dependencies: buffer: 6.0.3 flexsearch: 0.7.21 @@ -1087,6 +1089,10 @@ packages: tslib: 2.4.0 dev: false + /@tldraw/vec/1.8.0: + resolution: {integrity: sha512-GiS5Df3CzXY/fPBFcM0CKFERZfI4Cg1X33VPZX+NLo7Fwm/h9zu/aU24N1mG75Q9LuMnwKm7woxKr8BiUXGYCg==} + dev: false + /@types/json5/0.0.29: resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==} dev: true @@ -1871,7 +1877,7 @@ packages: eslint-import-resolver-webpack: optional: true dependencies: - '@typescript-eslint/parser': 5.38.0_76twfck5d7crjqrmw4yltga7zm + '@typescript-eslint/parser': 5.38.0_eslint@8.22.0 debug: 3.2.7 eslint: 8.22.0 eslint-import-resolver-node: 0.3.6 @@ -1890,7 +1896,7 @@ packages: '@typescript-eslint/parser': optional: true dependencies: - '@typescript-eslint/parser': 5.38.0_76twfck5d7crjqrmw4yltga7zm + '@typescript-eslint/parser': 5.38.0_eslint@8.22.0 array-includes: 3.1.5 array.prototype.flat: 1.3.0 debug: 2.6.9 @@ -3033,6 +3039,10 @@ packages: resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} engines: {node: '>=8'} + /perfect-freehand/1.2.0: + resolution: {integrity: sha512-h/0ikF1M3phW7CwpZ5MMvKnfpHficWoOEyr//KVNTxV4F6deRK1eYMtHyBKEAKFK0aXIEUK9oBvlF6PNXMDsAw==} + dev: false + /picocolors/1.0.0: resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} dev: false From dfb6d93c45aa17ef851aa6e0ca0bcd4db3ff26b1 Mon Sep 17 00:00:00 2001 From: JimmFly Date: Tue, 13 Dec 2022 16:40:13 +0800 Subject: [PATCH 2/5] feat: update search result --- .../components/quick-search/content/index.tsx | 8 ++++++-- .../content/searchResult/index.tsx | 18 +++++++++++------- .../app/src/components/quick-search/footer.tsx | 8 +++++--- .../app/src/components/quick-search/index.tsx | 10 ++-------- 4 files changed, 24 insertions(+), 20 deletions(-) diff --git a/packages/app/src/components/quick-search/content/index.tsx b/packages/app/src/components/quick-search/content/index.tsx index 136d4fb222..d50368eaab 100644 --- a/packages/app/src/components/quick-search/content/index.tsx +++ b/packages/app/src/components/quick-search/content/index.tsx @@ -3,9 +3,13 @@ import JumpTo from './JumpTo'; import { Command } from 'cmdk'; import SearchResult from './searchResult'; -const Result = (props: { result: string }) => { +const Result = (props: { query: string }) => { + const query = props.query; + return ( - {props.result ? : } + + {query ? : } + ); }; diff --git a/packages/app/src/components/quick-search/content/searchResult/index.tsx b/packages/app/src/components/quick-search/content/searchResult/index.tsx index 33f14b08d2..6dc747792f 100644 --- a/packages/app/src/components/quick-search/content/searchResult/index.tsx +++ b/packages/app/src/components/quick-search/content/searchResult/index.tsx @@ -1,16 +1,20 @@ -import React from 'react'; +import { useEffect, useState } from 'react'; import NoResult from './NotFound'; import { Command } from 'cmdk'; +import { useEditor } from '@/providers/editor-provider'; + +const SearchResult = (props: { query: string }) => { + const { pageList, search, getPageMeta, openPage } = useEditor(); + const [results, setResults] = useState({}); + const query = props.query; + useEffect(() => { + setResults(search(query)); + }, [query]); -const SearchResult = () => { return ( <> - - a - b - c - + Apple ); diff --git a/packages/app/src/components/quick-search/footer.tsx b/packages/app/src/components/quick-search/footer.tsx index 68e83bf448..f74b3edd82 100644 --- a/packages/app/src/components/quick-search/footer.tsx +++ b/packages/app/src/components/quick-search/footer.tsx @@ -6,14 +6,16 @@ import { useModal } from '@/providers/global-modal-provider'; import { IconButton } from '@/ui/button'; const QuickSearchFooter = () => { - const { createPage } = useEditor(); + const { createPage, getPageMeta, openPage } = useEditor(); const { triggerQuickSearchModal } = useModal(); return ( { - createPage(); + onClick={async () => { + const page = createPage(); + const pageMeta = getPageMeta((await page).id); + pageMeta && openPage(pageMeta.id); triggerQuickSearchModal(); }} /> diff --git a/packages/app/src/components/quick-search/index.tsx b/packages/app/src/components/quick-search/index.tsx index 4355c9ecf8..c2545f6b37 100644 --- a/packages/app/src/components/quick-search/index.tsx +++ b/packages/app/src/components/quick-search/index.tsx @@ -11,7 +11,6 @@ import Result from './content'; import QuickSearchFooter from './Footer'; import { Command } from 'cmdk'; import { useEffect, useState } from 'react'; -import { useEditor } from '@/providers/editor-provider'; import { useModal } from '@/providers/global-modal-provider'; type TransitionsModalProps = { open: boolean; @@ -22,13 +21,8 @@ const isMac = () => { }; export const QuickSearch = ({ open, onClose }: TransitionsModalProps) => { const [query, setQuery] = useState(''); - const { search } = useEditor(); - const [result, setResult] = useState({}); - const { pageList } = useEditor(); const { triggerQuickSearchModal } = useModal(); - useEffect(() => { - setResult(search(query, { enrich: true })); - }, [query]); + useEffect(() => { const down = (e: KeyboardEvent) => { if (e.key === 'k' && e.metaKey) { @@ -64,7 +58,7 @@ export const QuickSearch = ({ open, onClose }: TransitionsModalProps) => { - + From 32d24d322a039bde9ebd8996ed6c4ceb8dd031aa Mon Sep 17 00:00:00 2001 From: JimmFly Date: Tue, 13 Dec 2022 18:02:07 +0800 Subject: [PATCH 3/5] feat: update search result --- .../components/quick-search/content/index.tsx | 2 +- .../content/searchResult/NotFound.tsx | 4 +-- .../content/searchResult/index.tsx | 32 +++++++++++++++---- .../app/src/components/quick-search/index.tsx | 4 +-- .../providers/editor-provider/interface.ts | 2 +- 5 files changed, 31 insertions(+), 13 deletions(-) diff --git a/packages/app/src/components/quick-search/content/index.tsx b/packages/app/src/components/quick-search/content/index.tsx index d50368eaab..d416c3598d 100644 --- a/packages/app/src/components/quick-search/content/index.tsx +++ b/packages/app/src/components/quick-search/content/index.tsx @@ -1,5 +1,5 @@ import React from 'react'; -import JumpTo from './JumpTo'; +import JumpTo from './jumpTo'; import { Command } from 'cmdk'; import SearchResult from './searchResult'; diff --git a/packages/app/src/components/quick-search/content/searchResult/NotFound.tsx b/packages/app/src/components/quick-search/content/searchResult/NotFound.tsx index 98554a3ead..9f5a67558e 100644 --- a/packages/app/src/components/quick-search/content/searchResult/NotFound.tsx +++ b/packages/app/src/components/quick-search/content/searchResult/NotFound.tsx @@ -1,9 +1,9 @@ import React from 'react'; import { Command, useCommandState } from 'cmdk'; -const noResult = () => { +const NoResult = (props: { query: string }) => { const search = useCommandState(state => state.search); return No results found for "{search}".; }; -export default noResult; +export default NoResult; diff --git a/packages/app/src/components/quick-search/content/searchResult/index.tsx b/packages/app/src/components/quick-search/content/searchResult/index.tsx index 6dc747792f..dc9dacc2a7 100644 --- a/packages/app/src/components/quick-search/content/searchResult/index.tsx +++ b/packages/app/src/components/quick-search/content/searchResult/index.tsx @@ -1,21 +1,39 @@ import { useEffect, useState } from 'react'; -import NoResult from './NotFound'; +import NoResult from './notFound'; import { Command } from 'cmdk'; -import { useEditor } from '@/providers/editor-provider'; +import { PageMeta, useEditor } from '@/providers/editor-provider'; + +function renderPages(resultsPageMeta: PageMeta[]) { + return resultsPageMeta.map(resultPageMeta => { + return {resultPageMeta.title}; + }); +} const SearchResult = (props: { query: string }) => { - const { pageList, search, getPageMeta, openPage } = useEditor(); - const [results, setResults] = useState({}); + const { search, getPageMeta, openPage } = useEditor(); + const [results, setResults] = useState(new Map()); const query = props.query; useEffect(() => { setResults(search(query)); + //Save the Map obtained from the search as state }, [query]); + const resultsPageMeta: PageMeta[] = []; + + results.forEach(pageId => { + const pageMeta = getPageMeta(pageId); + if (pageMeta) { + //Get pageMeta just like { title , id , text...} + resultsPageMeta.push(pageMeta); + } + }); return ( <> - - - Apple + {resultsPageMeta.length ? ( + renderPages(resultsPageMeta) + ) : ( + + )} ); }; diff --git a/packages/app/src/components/quick-search/index.tsx b/packages/app/src/components/quick-search/index.tsx index c2545f6b37..7b9da55c47 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 Input from './input'; import Result from './content'; -import QuickSearchFooter from './Footer'; +import QuickSearchFooter from './footer'; import { Command } from 'cmdk'; import { useEffect, useState } from 'react'; import { useModal } from '@/providers/global-modal-provider'; diff --git a/packages/app/src/providers/editor-provider/interface.ts b/packages/app/src/providers/editor-provider/interface.ts index 3b5a2290ce..f7a8fb1828 100644 --- a/packages/app/src/providers/editor-provider/interface.ts +++ b/packages/app/src/providers/editor-provider/interface.ts @@ -24,5 +24,5 @@ export type EditorHandlers = { unFavoritePage: (pageId: string) => void; toggleFavoritePage: (pageId: string) => void; permanentlyDeletePage: (pageId: string) => void; - search: (query: QueryContent) => any; + search: (query: QueryContent) => Map; }; From 41d96471e8a282618ebc5ed685fe6be48cc332c6 Mon Sep 17 00:00:00 2001 From: JimmFly Date: Tue, 13 Dec 2022 18:04:50 +0800 Subject: [PATCH 4/5] chore: update variable --- .../quick-search/content/searchResult/index.tsx | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/packages/app/src/components/quick-search/content/searchResult/index.tsx b/packages/app/src/components/quick-search/content/searchResult/index.tsx index dc9dacc2a7..21bc84b815 100644 --- a/packages/app/src/components/quick-search/content/searchResult/index.tsx +++ b/packages/app/src/components/quick-search/content/searchResult/index.tsx @@ -28,13 +28,7 @@ const SearchResult = (props: { query: string }) => { } }); return ( - <> - {resultsPageMeta.length ? ( - renderPages(resultsPageMeta) - ) : ( - - )} - + <>{resultsPageMeta.length ? renderPages(resultsPageMeta) : } ); }; From 17ad8d4e21a2b82957629488450fb6bfda15d305 Mon Sep 17 00:00:00 2001 From: JimmFly Date: Tue, 13 Dec 2022 18:21:11 +0800 Subject: [PATCH 5/5] fix: update type --- .../quick-search/content/searchResult/index.tsx | 13 ++++++++++--- .../app/src/providers/editor-provider/interface.ts | 2 +- .../providers/editor-provider/useEditorHandler.ts | 4 +--- 3 files changed, 12 insertions(+), 7 deletions(-) diff --git a/packages/app/src/components/quick-search/content/searchResult/index.tsx b/packages/app/src/components/quick-search/content/searchResult/index.tsx index 21bc84b815..e921b527d6 100644 --- a/packages/app/src/components/quick-search/content/searchResult/index.tsx +++ b/packages/app/src/components/quick-search/content/searchResult/index.tsx @@ -5,22 +5,29 @@ import { PageMeta, useEditor } from '@/providers/editor-provider'; function renderPages(resultsPageMeta: PageMeta[]) { return resultsPageMeta.map(resultPageMeta => { - return {resultPageMeta.title}; + return ( + + {resultPageMeta.title} + + ); }); } const SearchResult = (props: { query: string }) => { const { search, getPageMeta, openPage } = useEditor(); - const [results, setResults] = useState(new Map()); + const [results, setResults] = useState(new Map()); const query = props.query; useEffect(() => { - setResults(search(query)); + return setResults(search(query)); //Save the Map obtained from the search as state }, [query]); const resultsPageMeta: PageMeta[] = []; results.forEach(pageId => { + if (!pageId) { + return; + } const pageMeta = getPageMeta(pageId); if (pageMeta) { //Get pageMeta just like { title , id , text...} diff --git a/packages/app/src/providers/editor-provider/interface.ts b/packages/app/src/providers/editor-provider/interface.ts index 9cfda42fc1..e1fbfe514d 100644 --- a/packages/app/src/providers/editor-provider/interface.ts +++ b/packages/app/src/providers/editor-provider/interface.ts @@ -22,5 +22,5 @@ export type EditorHandlers = { unFavoritePage: (pageId: string) => void; toggleFavoritePage: (pageId: string) => void; permanentlyDeletePage: (pageId: string) => void; - search: (query: QueryContent) => Map; + search: (query: QueryContent) => Map; }; diff --git a/packages/app/src/providers/editor-provider/useEditorHandler.ts b/packages/app/src/providers/editor-provider/useEditorHandler.ts index 3341ddbd52..04199ff486 100644 --- a/packages/app/src/providers/editor-provider/useEditorHandler.ts +++ b/packages/app/src/providers/editor-provider/useEditorHandler.ts @@ -50,9 +50,7 @@ export const useEditorHandler = (workspace?: Workspace): EditorHandlers => { } }, search: (query: QueryContent) => { - if (query) { - return workspace!.search(query); - } + return workspace!.search(query); }, }; };