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;