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

View File

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

View File

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

View File

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

View File

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