"use client"; import Sidebar from "@/components/Sidebar/Sidebar"; import React, { useState } from "react"; import { ChevronDoubleRightIcon } from "@heroicons/react/24/outline"; import { createClient } from "@/utils/supabase/client"; import { useRouter } from "next/navigation"; import { useEffect } from "react"; import User, { Role } from "@/utils/models/User"; import Loading from "@/components/auth/Loading"; export default function RootLayout({ children, }: { children: React.ReactNode; }) { const [isSidebarOpen, setIsSidebarOpen] = useState(false); const router = useRouter(); const [user, setUser] = useState(); useEffect(() => { async function getUser() { const supabase = createClient(); const { data, error } = await supabase.auth.getUser(); console.log(data, error); if (error) { console.log("Accessed resource page but not logged in"); router.push("/auth/login"); return; } const userData = await fetch( `${process.env.NEXT_PUBLIC_HOST}/api/user?uuid=${data.user.id}` ); const user: User = await userData.json(); setUser(user); } getUser(); }, [router]); return (
{user ? (
{/* button to open sidebar */} {/* sidebar */}
{/* page ui */}
{children}
) : ( )}
); }