import { memo, useEffect, useState } from "react" import { Checkbox, ColorPicker, Input, InputNumber, Select, Collapse } from "antd" import { capitalize } from "../utils/common" import Tools from "./constants/tools.js" import { useActiveWidget } from "./activeWidgetContext.js" import { Layouts } from "./constants/layouts.js" import { DynamicRadioInputList } from "../components/inputs.js" // FIXME: Maximum recursion error /** * * @param {boolean} isOpen * @param {string} widgetType * @param {object} attrs - widget attributes */ const CanvasToolBar = memo(({ isOpen, widgetType, attrs = {} }) => { // const { activeWidgetAttrs } = useActiveWidget() // console.log("active widget context: ", activeWidgetAttrs) const [toolbarOpen, setToolbarOpen] = useState(isOpen) const [toolbarAttrs, setToolbarAttrs] = useState(attrs) useEffect(() => { setToolbarOpen(isOpen) }, [isOpen]) useEffect(() => { setToolbarAttrs(attrs) }, [attrs]) const handleChange = (value, callback) => { if (callback) { callback(value) } } const renderLayoutManager = (val) => { return (
handleChange({ ...val.value, direction: value }, val.onChange)} />
Gap { handleChange({ ...val.value, gap: value }, val.onChange) }} />
{/*
Grids
Rows { let newGrid = { rows: value, cols: val.value?.grid.cols } handleChange({ ...val.value, grid: newGrid }, val.onChange) }} />
Columns { let newGrid = { rows: val.value?.grid.cols, cols: value } handleChange({ ...val.value, grid: newGrid }, val.onChange) }} />
*/} ) } 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 && (