import { HStack, Flex, Tabs, Box } from "@chakra-ui/react"; import WidgetCanvas from "./DashboardCanvasNav/WidgetCanvas"; import { SearchBar } from "../components/SearchBar"; import { SettingsButton } from "../components/SettingsButton"; import { DailyActivity } from "./DashboardCanvasNav/DailyActivity"; import { Gas } from "./DashboardCanvasNav/Gas"; import { Seismic } from "./DashboardCanvasNav/Seismic"; import { RemoteSensing } from "./DashboardCanvasNav/RemoteSensing"; import { useState, useEffect } from "react"; export function DashboardCanvas() { const [isEditable, setIsEditable] = useState(false); // editable=true means static=false (vice versa) const [newCounter, setNewCounter] = useState(3); const [layout, setLayout] = useState([ { i: '0', x: 0, y: 0, w: 3, h: 3, minH: 3, minW: 1, static: !isEditable }, { i: '1', x: 3, y: 0, w: 3, h: 3, minH: 3, minW: 1, static: !isEditable }, { i: '2', x: 6, y: 0, w: 3, h: 3, minH: 3, minW: 1, static: !isEditable } ]); useEffect(() => { setLayout(prevLayout => prevLayout.map(item => ({ ...item, static: !isEditable // static false means resizable/editable })) ); }, [isEditable]); const onAddWidget = () => { const newId = newCounter.toString(); setLayout(prev => [ ...prev, { i: newId, x: (prev.length * 3) % 12, y: Infinity, w: 3, h: 3 } ]); setNewCounter(prev => prev + 1); }; const onEditWidgets = () => { console.log("widgets are now editable") setIsEditable(true); } const onDeleteWidgets = (id) => { setLayout(prev => prev.filter(w => w.i !== id)); } const onLayoutChange = (newLayout) => { setLayout(newLayout); console.log('Updated layout:', newLayout) }; return ( /* HEADER */ My Dashboard Gas Seismic Remote Sensing Daily Activity {/* CANVAS */} ); }