import DashboardNavbarServer from "@/components/ui/navigations/DashboardNavbarServer";
import Sidebar from "@/components/user/components/Sidebar";
import { getProfile } from "@/libs/axios/modules/user";
import { cookies } from "next/headers";
import { redirect } from "next/navigation";
import { ReactNode } from "react";

export default async function authLayout({ children }: { children: ReactNode }) {
    const cookieStore = await cookies();
    const token = cookieStore.get("token");
    const onboarding = cookieStore.get("onboarding");

    if (!onboarding) redirect("/onboarding");
    if (!token) redirect("/auth/login");

    const rawToken = token.value.slice(1, -1);

    try {
        await getProfile(rawToken);
    } catch {
        redirect("/auth/logout?callbackUrl=/auth/login");
    }

    return (
        <main className="flex flex-col min-h-screen bg-white">
            <DashboardNavbarServer />
            <div className="flex min-h-screen bg-gray-100 w-full">
                <Sidebar />
                <section className="lg:pl-78 pt-30 p-6 w-full">
                    <div className="max-w-screen-2xl">
                        {children}
                    </div>
                </section>
            </div>
        </main>
    );
}