import { useEffect, useMemo, useState } from "react" import { CloseCircleFilled, SearchOutlined } from "@ant-design/icons" import { SidebarWidgetCard, TreeViewCard } from "../components/cards" import { Tree } from "antd" import { useWidgetContext } from "../canvas/context/widgetContext" function transformWidgets(widgets, widgetRefs, isTopLevel=true) { // console.log("Wdiegts refs: ", widgetRefs) return widgets.map(widget => ({ title: widgetRefs.current[widget.id].current.getDisplayName(), // Assuming widgetType is a class key: widget.id, isTopLevel: isTopLevel, widgetRef: widgetRefs.current[widget.id], children: widget.children.length > 0 ? transformWidgets(widget.children, widgetRefs, false) : [] })) } /** * * @param {function} onWidgetsUpdate - this is a callback that will be called once the sidebar is populated with widgets * @returns */ function TreeviewContainer() { const {widgets, widgetRefs} = useWidgetContext() const transformedContent = useMemo(() => { return (transformWidgets(widgets, widgetRefs)) }, [widgets, widgetRefs]) const topLevelKeys = transformedContent.filter(cont => cont.isTopLevel).map(cont => cont.key) return (