Files
portabase/app/(auth)/layout.tsx
T

54 lines
1.9 KiB
TypeScript
Raw Normal View History

"use client"
import React, {useEffect, useState} from "react";
2024-11-03 21:12:40 +01:00
import {LayoutAdmin} from "@/components/layout";
import Image from "next/image";
import {env} from "@/env.mjs";
import {useTheme} from "next-themes";
2025-07-27 10:23:56 +02:00
import {useSession} from "@/lib/auth/auth-client";
import {useRouter} from "next/navigation";
2025-02-13 19:20:55 +01:00
2024-11-03 21:12:40 +01:00
export default function Layout({children}: { children: React.ReactNode }) {
const { resolvedTheme } = useTheme();
const [mounted, setMounted] = useState(false);
2025-07-27 10:23:56 +02:00
const router = useRouter();
const { data: session } = useSession();
if (session && session.user && !session.user.banned && session.user.role !== "pending") {
router.replace("/dashboard/home");
}
useEffect(() => {
setMounted(true);
}, []);
if (!mounted) return null;
const imageTheme = resolvedTheme === "dark" ? "/images/logo-white.png" : "/images/logo-black.png";
return (
<div className="flex min-h-full flex-1 flex-col justify-center py-12 sm:px-6 lg:px-8 ">
<div className="mx-auto w-full max-w-md">
<div className="sm:mx-auto sm:w-full sm:max-w-md flex items-center justify-center space-x-2">
2025-07-27 21:26:31 +02:00
<img
className="p-12 text-black dark:text-white"
src={imageTheme}
2025-07-27 21:26:31 +02:00
// loading="eager"
alt="Logo"
2025-07-27 21:26:31 +02:00
// width={1024}
// height={1024}
/>
<span
className="text-sm text-muted-foreground -ml-12 -mb-12">
v{env.NEXT_PUBLIC_PROJECT_VERSION}
</span>
2024-11-03 21:12:40 +01:00
</div>
<div>{children}</div>
2024-11-03 21:12:40 +01:00
</div>
<footer className="py-4 text-center text-xs justify-items-end text-muted-foreground">
Powered by <span className="font-medium">Soluce Technologies</span>
</footer>
</div>
2024-11-03 21:12:40 +01:00
)
}