import React, { useEffect } from 'react'; import { AlertTriangle } from 'lucide-react'; import { useQuery } from '@tanstack/react-query'; import { useTranslation } from 'react-i18next'; import { api } from '../config/api'; import { buildResourceUrl } from '../utils/url'; interface BrandingSettings { branding_company_name?: string; branding_company_tagline?: string; branding_support_email?: string; branding_footer_text?: string; branding_favicon_url?: string; branding_logo_url?: string; default_language?: string; } export const MaintenanceMode: React.FC = () => { const { t, i18n } = useTranslation(); // Fetch branding settings const { data: settings } = useQuery({ queryKey: ['public-settings-maintenance'], queryFn: async () => { try { const response = await api.get('/public/settings'); return response.data; } catch (error) { // Return empty object if settings can't be fetched return {}; } }, staleTime: 5 * 60 * 1000, // Cache for 5 minutes retry: false, // Don't retry on failure }); // Set language based on system settings useEffect(() => { if (settings?.default_language && settings.default_language !== i18n.language) { i18n.changeLanguage(settings.default_language); } }, [settings?.default_language, i18n]); return (
{/* Header with branding - Always show, with PicPeak logo as fallback */}
{settings?.branding_company_name {settings?.branding_company_name && settings.branding_company_name !== 'PicPeak' && (

{settings.branding_company_name}

{settings.branding_company_tagline && (

{settings.branding_company_tagline}

)}
)}
{/* Main content */}

{t('maintenance.title')}

{t('maintenance.message')}

{settings?.branding_support_email && (

{t('maintenance.urgentMatters')}{' '} {settings.branding_support_email}

)}
{/* Footer */} {settings?.branding_footer_text && ( )}
); };