From 492115bb4cc5e5d6ece13e305d7ccf59d5d1b8cd Mon Sep 17 00:00:00 2001 From: paul Date: Tue, 24 Sep 2024 23:27:52 +0530 Subject: [PATCH] enhancement: toolbar now has accordion/collapsible --- src/canvas/toolbar.js | 212 +++++++++++------- src/canvas/widgets/base.js | 22 +- .../tkinter/widgets/ checkButton.js | 2 + src/frameworks/tkinter/widgets/optionMenu.js | 1 + 4 files changed, 142 insertions(+), 95 deletions(-) diff --git a/src/canvas/toolbar.js b/src/canvas/toolbar.js index 64d8eb4..7f1f4d3 100644 --- a/src/canvas/toolbar.js +++ b/src/canvas/toolbar.js @@ -1,6 +1,9 @@ import { memo, useEffect, useState } from "react" -import { Checkbox, ColorPicker, Input, InputNumber, Select } from "antd" +import { + Checkbox, ColorPicker, Input, + InputNumber, Select, Collapse +} from "antd" import { capitalize } from "../utils/common" import Tools from "./constants/tools.js" @@ -128,7 +131,83 @@ const CanvasToolBar = memo(({ isOpen, widgetType, attrs = {} }) => { } - const renderWidgets = (obj, parentKey = "") => { + const renderTool = (keyName, val) => { + + return ( + <> + {val.tool === Tools.INPUT && ( + handleChange(e.target.value, val.onChange)} + /> + )} + + {val.tool === Tools.NUMBER_INPUT && ( + handleChange(value, val.onChange)} + /> + )} + + {val.tool === Tools.COLOR_PICKER && ( + handleChange(value.toHexString(), val.onChange)} + /> + )} + + {val.tool === Tools.SELECT_DROPDOWN && ( + handleChange(e.target.value, val.onChange)} - /> - )} + return ( + + + {renderTool(keyName, val)} + + + ) - {val.tool === Tools.NUMBER_INPUT && ( - handleChange(value, val.onChange)} - /> - )} + } - {val.tool === Tools.COLOR_PICKER && ( - handleChange(value.toHexString(), val.onChange)} - /> - )} - - {val.tool === Tools.SELECT_DROPDOWN && ( -