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 };