import ShapeCanvas from "@/components/canvas/ShapeCanvas"; import PresetSelector from "@/components/controls/PresetSelector"; import { Slider } from "@/components/ui/slider"; import { useShapeState } from "@/hooks/useShapeState"; import { useEffect, useState } from "react"; import Layout from "./Layout"; import { cn } from "./lib/utils"; function Index() { const [dimensions, setDimensions] = useState({ width: window.innerWidth - 320, height: window.innerHeight, }); useEffect(() => { const handleResize = () => { setDimensions({ width: window.innerWidth - 320, height: window.innerHeight, }); }; window.addEventListener("resize", handleResize); return () => window.removeEventListener("resize", handleResize); }, []); const centerX = dimensions.width / 2; const centerY = dimensions.height / 2; const [state, setState] = useShapeState(centerX, centerY); const sidebarContent = (
Shape setState({ ...state, preset })} />
Roundness setState({ ...state, roundness: v })} className={state.preset === "circle" ? "opacity-50 pointer-events-none" : ""} />
Wobble setState({ ...state, wobble: v })} />
Wobble Speed setState({ ...state, wobbleSpeed: v })} />
); return ( ); } export default Index;