fix: fix quick search

This commit is contained in:
JimmFly
2022-12-20 12:50:11 +08:00
parent d5832b1093
commit 45766b6b46
5 changed files with 48 additions and 29 deletions
@@ -1,20 +1,22 @@
import { AllPagesIcon, FavouritesIcon, TrashIcon } from '@blocksuite/icons';
// FIXME: href changed
export const List = [
{
title: 'All pages',
href: '/page-list/all',
icon: AllPagesIcon,
},
{
title: 'Favourites',
href: '/page-list/favorite',
icon: FavouritesIcon,
},
{
title: 'Trash',
href: '/page-list/trash',
icon: TrashIcon,
},
];
export const config = (currentWorkspaceId: string) => {
const List = [
{
title: 'All pages',
href: `/workspace/${currentWorkspaceId}/all`,
icon: AllPagesIcon,
},
{
title: 'Favourites',
href: `/workspace/${currentWorkspaceId}/favorite`,
icon: FavouritesIcon,
},
{
title: 'Trash',
href: `/workspace/${currentWorkspaceId}/trash`,
icon: TrashIcon,
},
];
return List;
};
@@ -1,21 +1,25 @@
import React from 'react';
import { AddIcon } from '@blocksuite/icons';
import { StyledModalFooterContent } from './style';
import { useEditor } from '@/providers/editor-provider';
import { useModal } from '@/providers/global-modal-provider';
import { useAppState } from '@/providers/app-state-provider/context';
import { Command } from 'cmdk';
import { useGoToPage } from '@/providers/app-state-provider/hooks';
export const Footer = (props: { query: string }) => {
const { createPage, openPage } = useEditor();
const { createPage } = useAppState();
const { triggerQuickSearchModal } = useModal();
const goToPage = useGoToPage();
const query = props.query;
return (
<Command.Item
data-testid="quickSearch-addNewPage"
onSelect={async () => {
const page = await createPage({ title: query });
openPage(page.id);
const pageId = await createPage();
if (pageId) {
goToPage(pageId);
}
triggerQuickSearchModal();
}}
@@ -1,12 +1,14 @@
import { Command } from 'cmdk';
import { StyledListItem, StyledNotFound } from './style';
import { useModal } from '@/providers/global-modal-provider';
import { PaperIcon, EdgelessIcon, LogoUnlogIcon } from '@blocksuite/icons';
import { useEditor } from '@/providers/editor-provider';
import { PaperIcon, EdgelessIcon } from '@blocksuite/icons';
import { Dispatch, SetStateAction, useEffect, useState } from 'react';
import { useAppState } from '@/providers/app-state-provider/context';
import { useRouter } from 'next/router';
import { List } from './config';
import { config } from './config';
import { useGoToPage } from '@/providers/app-state-provider/hooks';
import { usePageList } from '@/providers/app-state-provider/usePageList';
import { useLoadWorkspace } from '@/providers/app-state-provider/hooks';
export const Results = (props: {
query: string;
loading: boolean;
@@ -18,8 +20,12 @@ export const Results = (props: {
const setLoading = props.setLoading;
const setShowCreatePage = props.setShowCreatePage;
const { triggerQuickSearchModal } = useModal();
const { search, openPage, pageList } = useEditor();
const workspace = useLoadWorkspace();
const pageList = usePageList(workspace);
const goToPage = useGoToPage();
const router = useRouter();
const { search, currentWorkspaceId } = useAppState();
const List = config(currentWorkspaceId);
const [results, setResults] = useState(new Map<string, string | undefined>());
useEffect(() => {
setResults(search(query));
@@ -46,7 +52,7 @@ export const Results = (props: {
<Command.Item
key={result.id}
onSelect={() => {
openPage(result.id);
goToPage(result.id);
triggerQuickSearchModal();
}}
value={result.title}
@@ -66,7 +72,6 @@ export const Results = (props: {
) : (
<StyledNotFound>
<span>Find 0 result</span>
<LogoUnlogIcon />
</StyledNotFound>
)
) : (