diff --git a/src/components/menubar/ViewMenu.tsx b/src/components/menubar/ViewMenu.tsx
index abb19ce..0e318c2 100644
--- a/src/components/menubar/ViewMenu.tsx
+++ b/src/components/menubar/ViewMenu.tsx
@@ -1,5 +1,15 @@
import { useContext } from "react";
-import { MenubarCheckboxItem, MenubarContent, MenubarItem, MenubarMenu, MenubarSeparator, MenubarTrigger } from "@/components/ui/menubar";
+import {
+ MenubarCheckboxItem,
+ MenubarContent,
+ MenubarItem,
+ MenubarMenu,
+ MenubarSeparator,
+ MenubarSub,
+ MenubarSubContent,
+ MenubarSubTrigger,
+ MenubarTrigger,
+} from "@/components/ui/menubar";
import { CanvasContext } from "@/context/Canvas";
import { DialogContext } from "@/context/Dialog";
@@ -31,15 +41,20 @@ function ViewMenu() {
-
- History Panel
-
-
- Color Picker
-
-
- Block Replacer
-
+
+ Tabs
+
+
+ History
+
+
+ Color Picker
+
+
+ Block Replacer
+
+
+
Radius Changer
diff --git a/src/components/tool-settings/index.tsx b/src/components/tool-settings/index.tsx
index f881076..39c703a 100644
--- a/src/components/tool-settings/index.tsx
+++ b/src/components/tool-settings/index.tsx
@@ -12,17 +12,23 @@ import ColorPicker from "./ColorPicker";
import Replace from "./Replace";
import Radius from "./Radius";
import BlockSelector from "./BlockSelector";
+import { Tabs, TabsContent, TabsList, TabsTrigger } from "../ui/tabs";
function ToolSettings() {
const { settings } = useContext(SettingsContext);
- const [width, setWidth] = useState(288);
+ const [width, setWidth] = useState(300);
const [resizing, setResizing] = useState(false);
const divRef = useRef(null);
const [stageWidth, setStageWidth] = useState(0);
const [searchInput, setSearchInput] = useState("");
+ const enabledTabs = [settings.historyPanel, settings.colorPicker, settings.blockReplacer].filter(Boolean).length;
+ const defaultTab = settings.historyPanel ? "history" : settings.colorPicker ? "color-picker" : settings.blockReplacer ? "replace" : undefined;
+
+ const [activeTab, setActiveTab] = useState(defaultTab);
+
const onMouseDown = () => {
setResizing(true);
document.body.style.cursor = "ew-resize";
@@ -69,9 +75,13 @@ function ToolSettings() {
};
}, [divRef]);
+ useEffect(() => {
+ setActiveTab(settings.historyPanel ? "history" : settings.colorPicker ? "color-picker" : settings.blockReplacer ? "replace" : undefined);
+ }, [settings]);
+
return (
<>
- {(settings.colorPicker || settings.blockReplacer || settings.radiusChanger || settings.blockSelector) && (
+ {(settings.historyPanel || settings.colorPicker || settings.blockReplacer || settings.radiusChanger || settings.blockSelector) && (
- {settings.historyPanel && (
+ {(settings.historyPanel || settings.colorPicker || settings.blockReplacer) && (
<>
- {/* History */}
-
-
- >
- )}
+
+ {enabledTabs > 1 && (
+
+ {settings.historyPanel && History}
+ {settings.colorPicker && Color}
+ {settings.blockReplacer && Replace}
+
+ )}
+ {settings.historyPanel && (
+
+
+
+ )}
+ {settings.colorPicker && (
+
+
+
+ )}
+ {settings.blockReplacer && (
+
+
+
+ )}
+
- {settings.colorPicker && (
- <>
-
-
- >
- )}
-
- {settings.blockReplacer && (
- <>
-
>
)}
diff --git a/src/context/Settings.tsx b/src/context/Settings.tsx
index e901cfb..ed43f31 100644
--- a/src/context/Settings.tsx
+++ b/src/context/Settings.tsx
@@ -13,8 +13,8 @@ const defaultSettings: Settings = {
grid: true,
canvasBorder: false,
historyPanel: true,
- colorPicker: false,
- blockReplacer: false,
+ colorPicker: true,
+ blockReplacer: true,
radiusChanger: true,
blockSelector: true,
};