mirror of
https://github.com/trafficlunar/blockmatic.git
synced 2026-06-28 14:44:12 +00:00
feat: edit menu - cut and clear selection
This commit is contained in:
parent
5b8a859f60
commit
feb82f2b17
4 changed files with 54 additions and 3 deletions
33
src/components/menubar/EditMenu.tsx
Normal file
33
src/components/menubar/EditMenu.tsx
Normal file
|
|
@ -0,0 +1,33 @@
|
|||
import { useContext } from "react";
|
||||
|
||||
import { CanvasContext } from "@/context/Canvas";
|
||||
import { ToolContext } from "@/context/Tool";
|
||||
|
||||
import { MenubarContent, MenubarItem, MenubarMenu, MenubarSeparator, MenubarTrigger } from "@/components/ui/menubar";
|
||||
|
||||
function EditMenu() {
|
||||
const { setBlocks } = useContext(CanvasContext);
|
||||
const { selectionBoxBounds, setSelectionBoxBounds } = useContext(ToolContext);
|
||||
|
||||
const cut = () => {
|
||||
setBlocks((prev) =>
|
||||
prev.filter(
|
||||
(b) => !(b.x >= selectionBoxBounds.minX && b.x < selectionBoxBounds.maxX && b.y >= selectionBoxBounds.minY && b.y < selectionBoxBounds.maxY)
|
||||
)
|
||||
);
|
||||
};
|
||||
|
||||
return (
|
||||
<MenubarMenu>
|
||||
<MenubarTrigger>Edit</MenubarTrigger>
|
||||
<MenubarContent>
|
||||
<MenubarItem onClick={cut}>Cut</MenubarItem>
|
||||
|
||||
<MenubarSeparator />
|
||||
<MenubarItem onClick={() => setSelectionBoxBounds({ minX: 0, minY: 0, maxX: 0, maxY: 0 })}>Clear Selection</MenubarItem>
|
||||
</MenubarContent>
|
||||
</MenubarMenu>
|
||||
);
|
||||
}
|
||||
|
||||
export default EditMenu;
|
||||
|
|
@ -7,6 +7,7 @@ import { ThemeContext } from "@/context/Theme";
|
|||
import { Menubar as UIMenubar } from "@/components/ui/menubar";
|
||||
|
||||
import FileMenu from "./FileMenu";
|
||||
import EditMenu from "./EditMenu";
|
||||
import ViewMenu from "./ViewMenu";
|
||||
import MoreMenu from "./MoreMenu";
|
||||
|
||||
|
|
@ -24,6 +25,7 @@ function Menubar() {
|
|||
</Link>
|
||||
|
||||
<FileMenu />
|
||||
<EditMenu />
|
||||
<ViewMenu />
|
||||
<MoreMenu />
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue