github.com/turbot/steampipe@v1.7.0-rc.0.0.20240517123944-7cef272d4458/ui/dashboard/src/App.tsx (about) 1 import "./utils/registerComponents"; 2 import Dashboard from "./components/dashboards/layout/Dashboard"; 3 import DashboardHeader from "./components/DashboardHeader"; 4 import DashboardList from "./components/DashboardList"; 5 import SnapshotHeader from "./components/SnapshotHeader"; 6 import useAnalytics from "./hooks/useAnalytics"; 7 import WorkspaceErrorModal from "./components/dashboards/WorkspaceErrorModal"; 8 import { DashboardProvider } from "./hooks/useDashboard"; 9 import { FullHeightThemeWrapper, useTheme } from "./hooks/useTheme"; 10 import { Route, Routes } from "react-router-dom"; 11 import { useBreakpoint } from "./hooks/useBreakpoint"; 12 13 const Dashboards = ({ analyticsContext, breakpointContext, themeContext }) => ( 14 <DashboardProvider 15 analyticsContext={analyticsContext} 16 breakpointContext={breakpointContext} 17 themeContext={themeContext} 18 versionMismatchCheck={true} 19 > 20 <DashboardHeader /> 21 <SnapshotHeader /> 22 <WorkspaceErrorModal /> 23 <DashboardList wrapperClassName="p-4 h-full overflow-y-auto" /> 24 <Dashboard /> 25 </DashboardProvider> 26 ); 27 28 const DashboardApp = ({ 29 analyticsContext, 30 breakpointContext, 31 themeContext, 32 }) => { 33 const dashboards = ( 34 <Dashboards 35 analyticsContext={analyticsContext} 36 breakpointContext={breakpointContext} 37 themeContext={themeContext} 38 /> 39 ); 40 41 return ( 42 <Routes> 43 <Route path="/" element={dashboards} /> 44 <Route path="/snapshot/:dashboard_name" element={dashboards} /> 45 <Route path="/:dashboard_name" element={dashboards} /> 46 </Routes> 47 ); 48 }; 49 50 const App = () => { 51 const analyticsContext = useAnalytics(); 52 const breakpointContext = useBreakpoint(); 53 const themeContext = useTheme(); 54 55 return ( 56 <FullHeightThemeWrapper> 57 <DashboardApp 58 analyticsContext={analyticsContext} 59 breakpointContext={breakpointContext} 60 themeContext={themeContext} 61 /> 62 </FullHeightThemeWrapper> 63 ); 64 }; 65 66 export default App; 67 68 export { DashboardApp };