feat: Duplicate page in page list and clone naming improvements (#5818)

This commit is contained in:
Adithyan
2024-02-20 14:14:25 +05:30
committed by GitHub
parent aa79229a21
commit afe59a864d
4 changed files with 35 additions and 5 deletions
@@ -31,10 +31,11 @@ const usePageOperationsRenderer = () => {
const { setTrashModal } = useTrashModalHelper(
currentWorkspace.blockSuiteWorkspace
);
const { toggleFavorite } = useBlockSuiteMetaHelper(
const { toggleFavorite, duplicate } = useBlockSuiteMetaHelper(
currentWorkspace.blockSuiteWorkspace
);
const t = useAFFiNEI18N();
const pageOperationsRenderer = useCallback(
(page: PageMeta) => {
const onDisablePublicSharing = () => {
@@ -42,12 +43,16 @@ const usePageOperationsRenderer = () => {
portal: document.body,
});
};
return (
<PageOperationCell
favorite={!!page.favorite}
isPublic={!!page.isPublic}
onDisablePublicSharing={onDisablePublicSharing}
link={`/workspace/${currentWorkspace.id}/${page.id}`}
onDuplicate={() => {
duplicate(page.id, false);
}}
onRemoveToTrash={() =>
setTrashModal({
open: true,
@@ -67,7 +72,7 @@ const usePageOperationsRenderer = () => {
/>
);
},
[currentWorkspace.id, setTrashModal, t, toggleFavorite]
[currentWorkspace.id, setTrashModal, t, toggleFavorite, duplicate]
);
return pageOperationsRenderer;
@@ -11,6 +11,7 @@ import { useAFFiNEI18N } from '@affine/i18n/hooks';
import {
DeleteIcon,
DeletePermanentlyIcon,
DuplicateIcon,
EditIcon,
FavoritedIcon,
FavoriteIcon,
@@ -39,6 +40,7 @@ export interface PageOperationCellProps {
link: string;
onToggleFavoritePage: () => void;
onRemoveToTrash: () => void;
onDuplicate: () => void;
onDisablePublicSharing: () => void;
}
@@ -48,6 +50,7 @@ export const PageOperationCell = ({
link,
onToggleFavoritePage,
onRemoveToTrash,
onDuplicate,
onDisablePublicSharing,
}: PageOperationCellProps) => {
const t = useAFFiNEI18N();
@@ -98,6 +101,18 @@ export const PageOperationCell = ({
</MenuItem>
</Link>
)}
<MenuItem
preFix={
<MenuIcon>
<DuplicateIcon />
</MenuIcon>
}
onSelect={onDuplicate}
>
{t['com.affine.header.option.duplicate']()}
</MenuItem>
<MoveToTrash data-testid="move-to-trash" onSelect={onRemoveToTrash} />
</>
);