+ {/* Left Column - Controls */}
+
+ {/* Image Selection */}
+
+
+
+
+ Sélectionner une image
+
+
+
+ {mediaList && (mediaList as any[]).filter((m: any) => m.type === 'image').length > 0 ? (
+
+ {(mediaList as any[])
+ .filter((m: any) => m.type === 'image')
+ .map((media: any) => (
+
setSelectedMedia(media)}
+ data-testid={`select-image-${media.id}`}
+ >
+

+
+ ))}
+
+ ) : (
+
+ Aucune image disponible. Uploadez des images dans la médiathèque.
+
+ )}
+
+
+
+ {/* Ribbon Controls */}
+
+
+ Ruban promotionnel
+
+
+
+ setRibbon({ ...ribbon, enabled: checked as boolean })}
+ data-testid="checkbox-ribbon"
+ />
+
+
+
+ {ribbon.enabled && (
+ <>
+
+
+
setRibbon({ ...ribbon, text: value as any })}
+ >
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
setRibbon({ ...ribbon, color: value as any })}
+ >
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ >
+ )}
+
+
+
+ {/* Price Badge */}
+
+
+ Badge prix
+
+
+
+ setPriceBadge({ ...priceBadge, enabled: checked as boolean })}
+ data-testid="checkbox-price"
+ />
+
+
+
+ {priceBadge.enabled && (
+ <>
+
+
+ setPriceBadge({ ...priceBadge, price: e.target.value })}
+ data-testid="input-price"
+ />
+
+
+
+
+
setPriceBadge({ ...priceBadge, color: value as any })}
+ >
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ >
+ )}
+
+
+
+ {/* Filters */}
+
+
+ Filtres
+
+
+
+
+
+ {filters.brightness}
+
+
setFilters({ ...filters, brightness: value })}
+ min={-50}
+ max={50}
+ step={5}
+ data-testid="slider-brightness"
+ />
+
+
+
+
+
+ {filters.contrast}
+
+
setFilters({ ...filters, contrast: value })}
+ min={-50}
+ max={50}
+ step={5}
+ data-testid="slider-contrast"
+ />
+
+
+
+
+
+ {filters.saturation}
+
+
setFilters({ ...filters, saturation: value })}
+ min={-100}
+ max={100}
+ step={10}
+ data-testid="slider-saturation"
+ />
+
+
+
+
+
+
+
+
+
+
+ {/* Right Column - Preview */}
+
+
+
+ Aperçu
+
+
+ {selectedMedia ? (
+
+
+

+
+
+
+
+
+
+
+
+ ) : (
+
+
Sélectionnez une image
+
+ )}
+
+
+
+