feat(core): add editor commanads (#4514)

Co-authored-by: Peng Xiao <pengxiao@outlook.com>
This commit is contained in:
JimmFly
2023-10-02 11:22:12 +08:00
committed by GitHub
parent aab1a1e50a
commit 69db99636b
29 changed files with 673 additions and 413 deletions

View File

@@ -133,7 +133,23 @@ globalStyle(`${root} [cmdk-item]`, {
globalStyle(`${root} [cmdk-item][data-selected=true]`, {
background: 'var(--affine-background-secondary-color)',
});
globalStyle(`${root} [cmdk-item][data-selected=true][data-is-danger=true]`, {
background: 'var(--affine-background-error-color)',
color: 'var(--affine-error-color)',
});
globalStyle(`${root} [cmdk-item][data-selected=true] ${itemIcon}`, {
color: 'var(--affine-icon-color)',
});
globalStyle(
`${root} [cmdk-item][data-selected=true][data-is-danger=true] ${itemIcon}`,
{
color: 'var(--affine-error-color)',
}
);
globalStyle(
`${root} [cmdk-item][data-selected=true][data-is-danger=true] ${itemLabel}`,
{
color: 'var(--affine-error-color)',
}
);

View File

@@ -64,6 +64,10 @@ const QuickSearchGroup = ({
onOpenChange?.(false);
}}
value={command.value}
data-is-danger={
command.id === 'editor:page-move-to-trash' ||
command.id === 'editor:edgeless-move-to-trash'
}
>
<div className={styles.itemIcon}>{command.icon}</div>
<div

View File

@@ -24,7 +24,7 @@ import React, { useCallback, useMemo } from 'react';
import { useParams } from 'react-router-dom';
import { pageSettingFamily } from '../../../../atoms';
import { useBlockSuiteMetaHelper } from '../../../../hooks/affine/use-block-suite-meta-helper';
import { useTrashModalHelper } from '../../../../hooks/affine/use-trash-modal-helper';
import { useNavigateHelper } from '../../../../hooks/use-navigate-helper';
import { ReferencePage } from '../components/reference-page';
import * as styles from './styles.css';
@@ -44,8 +44,15 @@ export const PageOperations = ({
inExcludeList: boolean;
addToExcludeList: (id: string) => void;
}) => {
const { removeToTrash } = useBlockSuiteMetaHelper(workspace);
const t = useAFFiNEI18N();
const { setTrashModal } = useTrashModalHelper(workspace);
const onClickDelete = useCallback(() => {
setTrashModal({
open: true,
pageId: page.id,
pageTitle: page.title,
});
}, [page.id, page.title, setTrashModal]);
const actions = useMemo<
Array<
| {
@@ -97,9 +104,7 @@ export const PageOperations = ({
</MenuIcon>
),
name: t['com.affine.trashOperation.delete'](),
click: () => {
removeToTrash(page.id);
},
click: onClickDelete,
type: 'danger',
},
],
@@ -107,10 +112,10 @@ export const PageOperations = ({
inAllowList,
t,
inExcludeList,
onClickDelete,
removeFromAllowList,
page.id,
addToExcludeList,
removeToTrash,
]
);
return (