("");
+
+ const onClickBlockButton = (id: number) => {
+ setWaitingId(id);
+ setOldTool(tool);
+ setTool("eyedropper");
+ };
+
+ const onClickReplace = () => {
+ setBlocks((prevBlocks) => prevBlocks.map((block) => (block.name === block1 ? { ...block, name: block2 } : block)));
+ };
+
+ useEffect(() => {
+ if (!waitingId) return;
+
+ if (waitingId == 1) {
+ setBlock1(selectedBlock);
+ } else if (waitingId == 2) {
+ setBlock2(selectedBlock);
+ }
+
+ setTool(oldTool);
+ setWaitingId(null);
+ }, [selectedBlock]);
+
+ return (
+
+
+
+
+
+
+
+
+
+
+ );
+}
+
+export default Replace;
diff --git a/src/components/tool-settings/index.tsx b/src/components/tool-settings/index.tsx
index 7882d6d..9ee9466 100644
--- a/src/components/tool-settings/index.tsx
+++ b/src/components/tool-settings/index.tsx
@@ -6,6 +6,7 @@ import { Input } from "@/components/ui/input";
import { Separator } from "@/components/ui/separator";
import ColorPicker from "./ColorPicker";
+import Replace from "./Replace";
import Radius from "./Radius";
import SelectorBlocks from "./SelectorBlocks";
@@ -24,7 +25,7 @@ function ToolSettings() {
return (
<>
- {(settings.colorPicker || settings.radiusChanger || settings.blockSelector) && (
+ {(settings.colorPicker || settings.blocksReplacer || settings.radiusChanger || settings.blockSelector) && (
{settings.colorPicker && (
<>
@@ -33,6 +34,13 @@ function ToolSettings() {
>
)}
+ {settings.blocksReplacer && (
+ <>
+
+
+ >
+ )}
+
{settings.radiusChanger && (
<>
diff --git a/src/context/Settings.tsx b/src/context/Settings.tsx
index 70045d1..775058a 100644
--- a/src/context/Settings.tsx
+++ b/src/context/Settings.tsx
@@ -13,6 +13,7 @@ const defaultSettings: Settings = {
grid: true,
canvasBorder: false,
colorPicker: false,
+ blocksReplacer: true,
radiusChanger: true,
blockSelector: true,
};
diff --git a/src/types.d.ts b/src/types.d.ts
index 5e64484..0519ff1 100644
--- a/src/types.d.ts
+++ b/src/types.d.ts
@@ -27,6 +27,7 @@ interface Settings {
grid: boolean;
canvasBorder: boolean;
colorPicker: boolean;
+ blocksReplacer: boolean;
radiusChanger: boolean;
blockSelector: boolean;
}