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 (
-
+