From f2fe8b5fb2310b0fabccfc4eaea224c53f9381ad Mon Sep 17 00:00:00 2001 From: "Daniel S. Hansen" Date: Fri, 8 Aug 2025 13:00:33 -0700 Subject: [PATCH] Add button when no widgets populate the canvas --- .../CanvasComponents/FirstWidgetButton.jsx | 28 ++++++++++++++ .../Canvas/views/HomeTabs/MyDashboard.jsx | 37 +++++++++++++++---- client/src/components/Sidebar/Sidebar.jsx | 15 ++++---- 3 files changed, 65 insertions(+), 15 deletions(-) create mode 100644 client/src/components/Canvas/CanvasComponents/FirstWidgetButton.jsx diff --git a/client/src/components/Canvas/CanvasComponents/FirstWidgetButton.jsx b/client/src/components/Canvas/CanvasComponents/FirstWidgetButton.jsx new file mode 100644 index 0000000..f823400 --- /dev/null +++ b/client/src/components/Canvas/CanvasComponents/FirstWidgetButton.jsx @@ -0,0 +1,28 @@ +import { Box, Heading } from '@chakra-ui/react' + +export default function FirstWidgetButton() { + + return ( + + + Add First Widget + + + ); +} \ No newline at end of file diff --git a/client/src/components/Canvas/views/HomeTabs/MyDashboard.jsx b/client/src/components/Canvas/views/HomeTabs/MyDashboard.jsx index fcd364f..c1b0075 100644 --- a/client/src/components/Canvas/views/HomeTabs/MyDashboard.jsx +++ b/client/src/components/Canvas/views/HomeTabs/MyDashboard.jsx @@ -1,6 +1,7 @@ import GridLayout, { WidthProvider } from 'react-grid-layout'; import { useSlotRecipe, chakra, Flex } from '@chakra-ui/react'; import CustomResizeHandle from '../../CanvasComponents/CustomResizeHandle'; +import FirstWidgetButton from '../../CanvasComponents/FirstWidgetButton'; export default function MyDashboard({layout, onLayoutChange, isEditable, isDelete, DeleteWidget, widgetArray}) { console.log("rendering MyDashboard"); @@ -24,6 +25,22 @@ export default function MyDashboard({layout, onLayoutChange, isEditable, isDelet }); }; + if ( !widgetArray.length ) { + return ( + + + + ); + } + return ( } > - {merged.map((item) => { - const Widget = item.widget; - return ( - - - - ) - })} + + { merged.map((item) => { + const Widget = item.widget; + return ( + + + + ); + }) + } + + ); diff --git a/client/src/components/Sidebar/Sidebar.jsx b/client/src/components/Sidebar/Sidebar.jsx index f79fcd1..51f6380 100644 --- a/client/src/components/Sidebar/Sidebar.jsx +++ b/client/src/components/Sidebar/Sidebar.jsx @@ -94,13 +94,14 @@ export default function Sidebar({ view, onChangeView, darkMode, setDarkMode }) { ) })} { - setDarkMode(!darkMode); - toggleColorMode(); - }} - position="absolute" - bottom="2"/> + onClick={ + () => { + setDarkMode(!darkMode); + toggleColorMode(); + }} + position="absolute" + bottom="2" + /> ); } \ No newline at end of file