feat(branding): add global dynamic theme system and fix 2fa mail

This commit is contained in:
DanielS
2026-08-14 15:57:29 +02:00
parent 009b167cbd
commit 9ecdc645e8
22 changed files with 1764 additions and 313 deletions

View File

@@ -10,6 +10,7 @@ import { Button } from "@/components/ui/button";
import { signOut } from "@/lib/actions/auth";
import { resolveSupabaseUrl } from "@/lib/utils";
import { DemoWrapper } from "./DemoWrapper";
import { useTheme } from "@/components/ThemeProvider";
interface NavbarClientProps {
user: User | null;
@@ -18,6 +19,7 @@ interface NavbarClientProps {
export function NavbarClient({ user, role = "partner" }: NavbarClientProps) {
const router = useRouter();
const { branding } = useTheme();
const [currentUser, setCurrentUser] = useState<User | null>(user);
const [userRole, setUserRole] = useState<string>(role);
const [isMobileMenuOpen, setIsMobileMenuOpen] = useState(false);
@@ -98,7 +100,15 @@ export function NavbarClient({ user, role = "partner" }: NavbarClientProps) {
<>
<header className="px-4 lg:px-6 h-16 flex items-center justify-between border-b border-white/5 backdrop-blur-md sticky top-0 z-50 bg-[#020617]/85">
<Link className="flex items-center justify-center gap-2 group" href="/">
<img src="/assets/CASPOS-logo.webp" alt="CASPOS Logo" className="h-8" />
{branding?.logoUrl ? (
<img src={branding.logoUrl} alt={branding.companyName || "Logo"} className="h-8 max-w-[180px] object-contain" />
) : branding?.companyName ? (
<span className="font-extrabold text-base tracking-tight text-white group-hover:text-primary transition">
{branding.companyName}
</span>
) : (
<img src="/assets/CASPOS-logo.webp" alt="CASPOS Logo" className="h-8" />
)}
<DemoWrapper>
<span className="text-[10px] bg-amber-500/20 text-amber-400 px-2 py-0.5 rounded-full font-semibold uppercase tracking-wider border border-amber-500/30">
Demo