'use client'; import { useState, useEffect } from 'react'; import { PROJECT_CONFIG } from '@/lib/project.config'; import { settingsService } from '@/lib/services'; import { parseFooterMessage } from '@/lib/utils'; interface FooterProps { className?: string; variant?: 'home' | 'public'; } export default function Footer({ className = '', variant = 'public' }: FooterProps) { const [footerMessage, setFooterMessage] = useState(''); const [loading, setLoading] = useState(true); useEffect(() => { const loadFooterMessage = async () => { try { // Vérifier si Supabase est configuré avant d'essayer d'accéder aux paramètres const supabaseUrl = process.env.NEXT_PUBLIC_SUPABASE_URL; const supabaseAnonKey = process.env.NEXT_PUBLIC_SUPABASE_ANON_KEY; if (!supabaseUrl || !supabaseAnonKey || supabaseUrl === 'https://placeholder.supabase.co') { // Supabase n'est pas configuré, utiliser le message par défaut setFooterMessage('Développé avec ❤️ pour faciliter la démocratie participative - [Logiciel libre et open source](GITURL) et transparent pour tous'); setLoading(false); return; } const message = await settingsService.getStringValue( 'footer_message', 'Développé avec ❤️ pour faciliter la démocratie participative - [Logiciel libre et open source](GITURL) et transparent pour tous' ); setFooterMessage(message); } catch (error) { // Ignorer silencieusement les erreurs et utiliser le message par défaut setFooterMessage('Développé avec ❤️ pour faciliter la démocratie participative - [Logiciel libre et open source](GITURL) et transparent pour tous'); } finally { setLoading(false); } }; loadFooterMessage(); }, []); if (loading) { return null; // Ne pas afficher le bas de page pendant le chargement } const { text: processedText, links } = parseFooterMessage(footerMessage, PROJECT_CONFIG.repository.url); // Pour la page d'accueil, utiliser un style plus simple if (variant === 'home') { return (
{processedText}
{renderFooterText()}