feat: undo and redo in edit menu

This commit is contained in:
trafficlunar 2025-02-07 20:17:42 +00:00
parent ac9ac3d454
commit 9f07754ab7

View file

@ -1,6 +1,7 @@
import { useContext } from "react"; import { useContext } from "react";
import { CanvasContext } from "@/context/Canvas"; import { CanvasContext } from "@/context/Canvas";
import { HistoryContext } from "@/context/History";
import { SelectionContext } from "@/context/Selection"; import { SelectionContext } from "@/context/Selection";
import { ToolContext } from "@/context/Tool"; import { ToolContext } from "@/context/Tool";
@ -10,6 +11,7 @@ import { MenubarContent, MenubarItem, MenubarMenu, MenubarSeparator, MenubarShor
function EditMenu() { function EditMenu() {
const { blocks, setBlocks } = useContext(CanvasContext); const { blocks, setBlocks } = useContext(CanvasContext);
const { undo, redo, isUndoAvailable, isRedoAvailable } = useContext(HistoryContext);
const { selectionCoords, setSelectionCoords, setSelectionLayerBlocks } = useContext(SelectionContext); const { selectionCoords, setSelectionCoords, setSelectionLayerBlocks } = useContext(SelectionContext);
const { setTool } = useContext(ToolContext); const { setTool } = useContext(ToolContext);
@ -21,11 +23,11 @@ function EditMenu() {
<MenubarMenu> <MenubarMenu>
<MenubarTrigger>Edit</MenubarTrigger> <MenubarTrigger>Edit</MenubarTrigger>
<MenubarContent> <MenubarContent>
<MenubarItem> <MenubarItem onClick={undo} disabled={!isUndoAvailable}>
Undo Undo
<MenubarShortcut>Ctrl Z</MenubarShortcut> <MenubarShortcut>Ctrl Z</MenubarShortcut>
</MenubarItem> </MenubarItem>
<MenubarItem> <MenubarItem onClick={redo} disabled={!isRedoAvailable}>
Redo Redo
<MenubarShortcut>Ctrl Y</MenubarShortcut> <MenubarShortcut>Ctrl Y</MenubarShortcut>
</MenubarItem> </MenubarItem>
@ -35,7 +37,7 @@ function EditMenu() {
Copy Copy
<MenubarShortcut>Ctrl C</MenubarShortcut> <MenubarShortcut>Ctrl C</MenubarShortcut>
</MenubarItem> </MenubarItem>
<MenubarItem onClick={() => clipboard.paste(setSelectionLayerBlocks, setSelectionCoords, setTool)}> <MenubarItem onClick={() => clipboard.paste(null, setSelectionLayerBlocks, setSelectionCoords, setTool)}>
Paste Paste
<MenubarShortcut>Ctrl V</MenubarShortcut> <MenubarShortcut>Ctrl V</MenubarShortcut>
</MenubarItem> </MenubarItem>