feat: modify setting modal entry in quick search modal (#3089)

(cherry picked from commit 2f910fbad0)
This commit is contained in:
Qi
2023-07-10 17:28:14 +08:00
committed by Alex Yang
parent 9b948613dc
commit d66f7da3c0
5 changed files with 37 additions and 19 deletions

View File

@@ -1,17 +1,26 @@
import { useAFFiNEI18N } from '@affine/i18n/hooks'; import { useAFFiNEI18N } from '@affine/i18n/hooks';
import { DeleteTemporarilyIcon, FolderIcon } from '@blocksuite/icons'; import {
DeleteTemporarilyIcon,
FolderIcon,
SettingsIcon,
} from '@blocksuite/icons';
import { useAtom } from 'jotai';
import type { FC, SVGProps } from 'react'; import type { FC, SVGProps } from 'react';
import { useMemo } from 'react'; import { useMemo } from 'react';
import { openSettingModalAtom } from '../../../atoms';
import { pathGenerator } from '../../../shared'; import { pathGenerator } from '../../../shared';
export const useSwitchToConfig = ( export const useSwitchToConfig = (
workspaceId: string workspaceId: string
): { ): {
title: string; title: string;
href: string; href?: string;
onClick?: () => void;
icon: FC<SVGProps<SVGSVGElement>>; icon: FC<SVGProps<SVGSVGElement>>;
}[] => { }[] => {
const t = useAFFiNEI18N(); const t = useAFFiNEI18N();
const [, setOpenSettingModalAtom] = useAtom(openSettingModalAtom);
return useMemo( return useMemo(
() => [ () => [
{ {
@@ -19,17 +28,23 @@ export const useSwitchToConfig = (
href: pathGenerator.all(workspaceId), href: pathGenerator.all(workspaceId),
icon: FolderIcon, icon: FolderIcon,
}, },
// { {
// title: t['Workspace Settings'](), title: t['Workspace Settings'](),
// href: pathGenerator.setting(workspaceId), onClick: () => {
// icon: SettingsIcon, setOpenSettingModalAtom({
// }, open: true,
activeTab: 'workspace',
workspaceId,
});
},
icon: SettingsIcon,
},
{ {
title: t['Trash'](), title: t['Trash'](),
href: pathGenerator.trash(workspaceId), href: pathGenerator.trash(workspaceId),
icon: DeleteTemporarilyIcon, icon: DeleteTemporarilyIcon,
}, },
], ],
[workspaceId, t] [t, workspaceId, setOpenSettingModalAtom]
); );
}; };

View File

@@ -12,7 +12,7 @@ import {
useTransition, useTransition,
} from 'react'; } from 'react';
import type { BlockSuiteWorkspace } from '../../../shared'; import type { AllWorkspace } from '../../../shared';
import { Footer } from './footer'; import { Footer } from './footer';
import { PublishedResults } from './published-results'; import { PublishedResults } from './published-results';
import { Results } from './results'; import { Results } from './results';
@@ -26,7 +26,7 @@ import {
} from './style'; } from './style';
export type QuickSearchModalProps = { export type QuickSearchModalProps = {
blockSuiteWorkspace: BlockSuiteWorkspace; workspace: AllWorkspace;
open: boolean; open: boolean;
setOpen: (value: boolean) => void; setOpen: (value: boolean) => void;
router: NextRouter; router: NextRouter;
@@ -36,8 +36,9 @@ export const QuickSearchModal: React.FC<QuickSearchModalProps> = ({
open, open,
setOpen, setOpen,
router, router,
blockSuiteWorkspace, workspace,
}) => { }) => {
const blockSuiteWorkspace = workspace?.blockSuiteWorkspace;
const t = useAFFiNEI18N(); const t = useAFFiNEI18N();
const inputRef = useRef<HTMLInputElement>(null); const inputRef = useRef<HTMLInputElement>(null);
const [loading, startTransition] = useTransition(); const [loading, startTransition] = useTransition();
@@ -171,7 +172,7 @@ export const QuickSearchModal: React.FC<QuickSearchModalProps> = ({
query={query} query={query}
onClose={handleClose} onClose={handleClose}
router={router} router={router}
blockSuiteWorkspace={blockSuiteWorkspace} workspace={workspace}
setShowCreatePage={setShowCreatePage} setShowCreatePage={setShowCreatePage}
/> />
)} )}

View File

@@ -13,12 +13,12 @@ import { useEffect } from 'react';
import { recentPageSettingsAtom } from '../../../atoms'; import { recentPageSettingsAtom } from '../../../atoms';
import { useRouterHelper } from '../../../hooks/use-router-helper'; import { useRouterHelper } from '../../../hooks/use-router-helper';
import type { BlockSuiteWorkspace } from '../../../shared'; import type { AllWorkspace } from '../../../shared';
import { useSwitchToConfig } from './config'; import { useSwitchToConfig } from './config';
import { StyledListItem, StyledNotFound } from './style'; import { StyledListItem, StyledNotFound } from './style';
export type ResultsProps = { export type ResultsProps = {
blockSuiteWorkspace: BlockSuiteWorkspace; workspace: AllWorkspace;
query: string; query: string;
onClose: () => void; onClose: () => void;
setShowCreatePage: Dispatch<SetStateAction<boolean>>; setShowCreatePage: Dispatch<SetStateAction<boolean>>;
@@ -26,15 +26,16 @@ export type ResultsProps = {
}; };
export const Results: FC<ResultsProps> = ({ export const Results: FC<ResultsProps> = ({
query, query,
blockSuiteWorkspace, workspace,
setShowCreatePage, setShowCreatePage,
router, router,
onClose, onClose,
}) => { }) => {
const blockSuiteWorkspace = workspace.blockSuiteWorkspace;
useBlockSuiteWorkspaceHelper(blockSuiteWorkspace); useBlockSuiteWorkspaceHelper(blockSuiteWorkspace);
const pageList = useBlockSuitePageMeta(blockSuiteWorkspace); const pageList = useBlockSuitePageMeta(blockSuiteWorkspace);
assertExists(blockSuiteWorkspace.id); assertExists(blockSuiteWorkspace.id);
const List = useSwitchToConfig(blockSuiteWorkspace.id); const List = useSwitchToConfig(workspace.id);
const recentPageSetting = useAtomValue(recentPageSettingsAtom); const recentPageSetting = useAtomValue(recentPageSettingsAtom);
const t = useAFFiNEI18N(); const t = useAFFiNEI18N();
@@ -100,7 +101,8 @@ export const Results: FC<ResultsProps> = ({
value={link.title} value={link.title}
onSelect={() => { onSelect={() => {
onClose(); onClose();
router.push(link.href).catch(console.error); link.href && router.push(link.href).catch(console.error);
link.onClick?.();
}} }}
> >
<StyledListItem> <StyledListItem>

View File

@@ -30,7 +30,7 @@ export const PublicQuickSearch: React.FC<PublicQuickSearchProps> = ({
return ( return (
<Suspense> <Suspense>
<QuickSearchModal <QuickSearchModal
blockSuiteWorkspace={workspace.blockSuiteWorkspace} workspace={workspace}
open={openQuickSearchModal} open={openQuickSearchModal}
setOpen={setOpenQuickSearchModalAtom} setOpen={setOpenQuickSearchModalAtom}
router={router} router={router}

View File

@@ -87,7 +87,7 @@ export const QuickSearch: FC = () => {
} }
return ( return (
<QuickSearchModal <QuickSearchModal
blockSuiteWorkspace={currentWorkspace?.blockSuiteWorkspace} workspace={currentWorkspace}
open={openQuickSearchModal} open={openQuickSearchModal}
setOpen={setOpenQuickSearchModalAtom} setOpen={setOpenQuickSearchModalAtom}
router={router} router={router}