diff --git a/app/src/components/nav/AppShell.tsx b/app/src/components/nav/AppShell.tsx index c577d55..5bb8d22 100644 --- a/app/src/components/nav/AppShell.tsx +++ b/app/src/components/nav/AppShell.tsx @@ -106,7 +106,15 @@ const NavSidebar = () => { ); }; -export default function AppShell(props: { children: React.ReactNode; title?: string }) { +export default function AppShell({ + children, + title, + requireAuth, +}: { + children: React.ReactNode; + title?: string; + requireAuth?: boolean; +}) { const [vh, setVh] = useState("100vh"); // Default height to prevent flicker on initial render useEffect(() => { @@ -126,14 +134,23 @@ export default function AppShell(props: { children: React.ReactNode; title?: str }; }, []); + const user = useSession().data; + const authLoading = useSession().status === "loading"; + + useEffect(() => { + if (requireAuth && user === null && !authLoading) { + signIn("github").catch(console.error); + } + }, [requireAuth, user, authLoading]); + return ( - {props.title ? `${props.title} | OpenPipe` : "OpenPipe"} + {title ? `${title} | OpenPipe` : "OpenPipe"} - {props.children} + {children} ); diff --git a/app/src/pages/data/index.tsx b/app/src/pages/data/index.tsx index bbc99ea..c37de8f 100644 --- a/app/src/pages/data/index.tsx +++ b/app/src/pages/data/index.tsx @@ -4,12 +4,8 @@ import { Breadcrumb, BreadcrumbItem, Flex, - Center, - Text, - Link, } from "@chakra-ui/react"; import AppShell from "~/components/nav/AppShell"; -import { signIn, useSession } from "next-auth/react"; import { RiDatabase2Line } from "react-icons/ri"; import { DatasetCard, @@ -23,33 +19,8 @@ import { useDatasets } from "~/utils/hooks"; export default function DatasetsPage() { const datasets = useDatasets(); - const user = useSession().data; - const authLoading = useSession().status === "loading"; - - if (user === null || authLoading) { - return ( - -
- {!authLoading && ( - - { - signIn("github").catch(console.error); - }} - textDecor="underline" - > - Sign in - {" "} - to view or create new datasets! - - )} -
-
- ); - } - return ( - + diff --git a/app/src/pages/experiments/index.tsx b/app/src/pages/experiments/index.tsx index 666d8e5..6704f17 100644 --- a/app/src/pages/experiments/index.tsx +++ b/app/src/pages/experiments/index.tsx @@ -1,13 +1,4 @@ -import { - SimpleGrid, - Icon, - Breadcrumb, - BreadcrumbItem, - Flex, - Center, - Text, - Link, -} from "@chakra-ui/react"; +import { SimpleGrid, Icon, Breadcrumb, BreadcrumbItem, Flex } from "@chakra-ui/react"; import { RiFlaskLine } from "react-icons/ri"; import AppShell from "~/components/nav/AppShell"; import { @@ -15,7 +6,6 @@ import { ExperimentCardSkeleton, NewExperimentCard, } from "~/components/experiments/ExperimentCard"; -import { signIn, useSession } from "next-auth/react"; import PageHeaderContainer from "~/components/nav/PageHeaderContainer"; import ProjectBreadcrumbContents from "~/components/nav/ProjectBreadcrumbContents"; import { useExperiments } from "~/utils/hooks"; @@ -23,33 +13,8 @@ import { useExperiments } from "~/utils/hooks"; export default function ExperimentsPage() { const experiments = useExperiments(); - const user = useSession().data; - const authLoading = useSession().status === "loading"; - - if (user === null || authLoading) { - return ( - -
- {!authLoading && ( - - { - signIn("github").catch(console.error); - }} - textDecor="underline" - > - Sign in - {" "} - to view or create new experiments! - - )} -
-
- ); - } - return ( - + diff --git a/app/src/pages/home/index.tsx b/app/src/pages/home/index.tsx index 35e2606..60a1a8a 100644 --- a/app/src/pages/home/index.tsx +++ b/app/src/pages/home/index.tsx @@ -58,7 +58,7 @@ export default function HomePage() { }, [stats.data]); return ( - +