github.com/treeverse/lakefs@v1.24.1-0.20240520134607-95648127bfb0/webui/src/lib/components/layout.tsx (about)

     1  import React, {FC, useState} from "react";
     2  import { Outlet, useOutletContext } from "react-router-dom";
     3  import { StorageConfigProvider } from "../hooks/storageConfig";
     4  
     5  import TopNav from './navbar';
     6  
     7  type LayoutOutletContext = [(isLoggedIn: boolean) => void];
     8  
     9  const Layout: FC<{logged: boolean}> = ({ logged }) => {
    10      const [isLogged, setIsLogged] = useState(logged ?? true);
    11      return (
    12          <>
    13              <TopNav logged={isLogged}/>
    14              <div className="main-app">
    15                  <StorageConfigProvider>
    16                      <Outlet context={[setIsLogged] satisfies LayoutOutletContext} />
    17                  </StorageConfigProvider>
    18              </div>
    19          </>
    20      );
    21  };
    22  
    23  export function useLayoutOutletContext() {
    24      return useOutletContext<LayoutOutletContext>();
    25  }
    26  
    27  export default Layout;