From 38bf1cd85c41793cd45c67d7e7cd21baa0bec28d Mon Sep 17 00:00:00 2001 From: trafficlunar Date: Fri, 20 Dec 2024 22:46:14 +0000 Subject: [PATCH] feat: clear all blocks button --- src/components/dialogs/ClearBlocks.tsx | 43 ++++++++++++++++++++++++++ src/components/menubar/FileMenu.tsx | 3 ++ 2 files changed, 46 insertions(+) create mode 100644 src/components/dialogs/ClearBlocks.tsx diff --git a/src/components/dialogs/ClearBlocks.tsx b/src/components/dialogs/ClearBlocks.tsx new file mode 100644 index 0000000..557fa59 --- /dev/null +++ b/src/components/dialogs/ClearBlocks.tsx @@ -0,0 +1,43 @@ +import { useContext } from "react"; + +import { CanvasContext } from "@/context/Canvas"; + +import { DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle } from "@/components/ui/dialog"; +import { Button } from "@/components/ui/button"; + +function ClearBlocks({ close }: DialogProps) { + const { stageSize, setBlocks, setCoords, setScale } = useContext(CanvasContext); + + const onSubmit = () => { + const newScale = 8; + const blockCenter = (1 + 1 * 16) / 2; + + setBlocks([{ name: "bedrock", x: 0, y: 0 }]); + setCoords({ + x: stageSize.width / 2 - blockCenter * newScale, + y: stageSize.height / 2 - blockCenter * newScale, + }); + setScale(newScale); + close(); + }; + + return ( + + + Are you sure? + This action will delete every block on the canvas. It cannot be undone once completed. + + + + + + + + ); +} + +export default ClearBlocks; diff --git a/src/components/menubar/FileMenu.tsx b/src/components/menubar/FileMenu.tsx index b1d1422..1e10587 100644 --- a/src/components/menubar/FileMenu.tsx +++ b/src/components/menubar/FileMenu.tsx @@ -32,6 +32,9 @@ function FileMenu() { image + + + openDialog("ClearBlocks")}>Clear All Blocks );