diff --git a/app/page.tsx b/app/page.tsx index 5aadfc4..82f972c 100644 --- a/app/page.tsx +++ b/app/page.tsx @@ -94,7 +94,7 @@ export default function Home() { y={item.y} width={item.width} height={item.height} - componentsId={item.componentsId} + widgetsId={item.widgetsId} /> ))} diff --git a/components/ComponentPaletteDrawer.tsx b/components/ComponentPaletteDrawer.tsx index 2250880..08b1fef 100644 --- a/components/ComponentPaletteDrawer.tsx +++ b/components/ComponentPaletteDrawer.tsx @@ -1,21 +1,32 @@ "use client"; import "@/app/globals.css"; -import { useRef, useState } from "react"; +import { useEffect, useRef, useState } from "react"; import ComponentsStore from "@/stores/componentStore"; -import { componentsLibrary } from "./Draggable/Draggable"; -import { useDynamicWidgets } from "@/hooks/useDynamicWidgets"; +import { useWidgets } from "@/hooks/useWidgets"; export default function ComponentPaletteDrawer() { const checkboxRef = useRef(null); - const [componentsId, setComponentsId] = useState("logo"); + const [widgetsId, setwidgetsId] = useState("logo"); const [data, setData] = useState(""); - const {widgets} = useDynamicWidgets(); + const {widgets, widgetsLibrary} = useWidgets(); + + useEffect(() => { + try { + const widget = widgets.find(item => item.id === widgetsId); + const defaultConfig = widget?.defaultConfig({}) + const stringData = JSON.stringify(defaultConfig, undefined, 4); + setData(stringData); + } catch (error) { + + } + }, [widgetsId]); const onSubmit = (e: SubmitEvent) => { e.preventDefault(); - ComponentsStore.addComponent(componentsId, data && JSON.parse(data)); + ComponentsStore.addComponent(widgetsId, data && JSON.parse(data)); checkboxRef.current?.click(); }; + return (
{ - componentsId && componentsLibrary[componentsId](data) - } +9 }
- { - JSON.stringify(widgets) - } -
小部件