import { HStack, Flex, Tabs } from "@chakra-ui/react"; import MyDashboard from "./HomeTabs/MyDashboard"; import { SearchBar } from "../CanvasComponents/SearchBar"; import { SettingsButton } from "../CanvasComponents/SettingsButton"; import { DailyActivity } from "./HomeTabs/DailyActivity"; import { Gas } from "./HomeTabs/Gas"; import { Seismic } from "./HomeTabs/Seismic"; import { RemoteSensing } from "./HomeTabs/RemoteSensing"; import { CancelButton } from "../CanvasComponents/CancelButton"; import { SaveButton } from "../CanvasComponents/SaveButton"; import DeleteAllButton from "../CanvasComponents/DeleteAllButton"; export default function Home({...props}) { // deconstructing props const { view, layout, setLayout, setOriginalLayout, onLayoutChange, onChangeView, onCancel, isDelete, setIsDelete, isEditable, setIsEditable, widgetArray, setWidgetArray } = props; const onAddWidget = (ID) => { setLayout(prev => [ ...prev, { i: ID, x: (prev.length * 3) % 12, y: Infinity, w: 2, h: 5, minW: 2, minH: 5, static: false, resizeHandles: ['se'] } ]); onEditWidgets(); }; const onEditWidgets = () => { console.log("widgets are now editable"); setOriginalLayout(layout); // Backup layout before editing // Set all widgets to editable, static: false setLayout(prevLayout => prevLayout.map(item => ({ ...item, static: false })) ); setIsEditable(true); // Enable edit mode } const onSave = () => { console.log("saving widgets..."); // Set all widgets back to static: true setLayout(prevLayout => prevLayout.map(item => ({ ...item, static: true })) ); setIsEditable(false); setIsDelete(false); setOriginalLayout([]); // Clear backup layout } const onDeleteWidgets = () => { console.log("Start deleting widgets..."); setOriginalLayout(layout); setIsEditable(true); setIsDelete(true); } const DeleteWidget = (ID) => { console.log("Deleting widget with id: ", ID); setLayout(layout => layout.filter(w => w.i !== ID)); setWidgetArray(widgetArray => widgetArray.filter(w => w.i !== ID)); } const DeleteAll = () => { const confirm = window.confirm( "Are you sure you want to delete all widgets?" ); if (confirm) { setLayout([]); setWidgetArray([]); onSave(); } else return; } // Prop Forwarding const MyDashboardProps = { layout, onLayoutChange, isEditable, isDelete, DeleteWidget, widgetArray }; const settingsButtonProps = { onAddWidget, onEditWidgets, onDeleteWidgets, setWidgetArray, widgetArray }; return ( /* HEADER */ { const nextView = e.value; onChangeView(nextView); }} > My Dashboard Gas Seismic Remote Sensing Daily Activity {isEditable ? ( <> {isDelete ? ( ):(null) } ):( <> )} {/* CANVAS */} ); }