import { CompanyLogoElement } from '../../types/elements'; import { NumericPropertyInput } from '../ui/NumericPropertyInput'; // Déclaration des types WordPress pour TypeScript declare global { interface Window { wp?: { media?: (options?: Record) => Record; }; } } interface CompanyLogoPropertiesProps { element: CompanyLogoElement; onChange: (elementId: string, property: string, value: unknown) => void; activeTab: { [key: string]: 'fonctionnalites' | 'personnalisation' | 'positionnement' }; setActiveTab: (tabs: { [key: string]: 'fonctionnalites' | 'personnalisation' | 'positionnement' }) => void; } export function CompanyLogoProperties({ element, onChange, activeTab, setActiveTab }: CompanyLogoPropertiesProps) { const logoCurrentTab = activeTab[element.id] || 'fonctionnalites'; const setLogoCurrentTab = (tab: 'fonctionnalites' | 'personnalisation' | 'positionnement') => { setActiveTab({ ...activeTab, [element.id]: tab }); }; return ( <> {/* Système d'onglets pour Company Logo */}
{/* Onglet Fonctionnalités */} {logoCurrentTab === 'fonctionnalites' && ( <>
onChange(element.id, 'src', e.target.value)} placeholder="https://exemple.com/logo.png" style={{ flex: 1, padding: '6px', border: '1px solid #ccc', borderRadius: '4px', fontSize: '12px' }} />
onChange(element.id, 'altText', e.target.value)} placeholder="Logo de l'entreprise" style={{ width: '100%', padding: '6px', border: '1px solid #ccc', borderRadius: '4px', fontSize: '12px' }} />
onChange(element.id, 'maintainAspectRatio', e.target.checked)} style={{ marginRight: '8px' }} /> Préserve le ratio largeur/hauteur
)} {/* Onglet Personnalisation */} {logoCurrentTab === 'personnalisation' && ( <>
onChange(element.id, 'opacity', parseFloat(e.target.value))} style={{ width: '100%', marginTop: '4px' }} />
{element.opacity || 1}
onChange(element.id, 'borderRadius', value)} />
onChange(element.id, 'rotation', value)} />
)} {/* Onglet Positionnement */} {logoCurrentTab === 'positionnement' && ( <>
onChange(element.id, 'x', value)} />
onChange(element.id, 'y', value)} />
onChange(element.id, 'width', value)} />
onChange(element.id, 'height', value)} />
)} ); }