import { DEFAULT_EVENT_BRANDING, useOptionalEventBranding } from '@/guest/context/EventBrandingContext'; import type { EventBranding } from '@/guest/types/event-branding'; import { useAppearance, type Appearance } from '@/hooks/use-appearance'; import { resolveGuestThemeName } from './brandingTheme'; export function resolveGuestThemeVariant(branding: EventBranding, appearance: Appearance): 'light' | 'dark' { const themeName = resolveGuestThemeName(branding, appearance); return themeName === 'guestNight' ? 'dark' : 'light'; } export function useGuestThemeVariant(brandingOverride?: EventBranding | null): { isDark: boolean; variant: 'light' | 'dark'; themeName: 'guestLight' | 'guestNight'; branding: EventBranding; } { const { appearance, resolved } = useAppearance() as { appearance?: Appearance; resolved?: 'light' | 'dark'; }; const brandingContext = useOptionalEventBranding(); const branding = brandingOverride ?? brandingContext?.branding ?? DEFAULT_EVENT_BRANDING; const appearanceMode = appearance ?? (resolved === 'dark' ? 'dark' : 'light'); const themeName = resolveGuestThemeName(branding, appearanceMode); const variant = themeName === 'guestNight' ? 'dark' : 'light'; return { isDark: variant === 'dark', variant, themeName, branding }; }