feat: ZIP import, rotation, feather slider, lightbox + config déploiement
- Import ZIP produits (HEIC/JPG/PNG, structure dossiers conservée) - Rotation des images ±90° avec aperçu CSS et export canvas - Slider récupération des bords (feather 0–5 px) - Lightbox plein écran (clic miniature, Échap, fond noir) - Fix timeout HEIC 30s → 120s - Fix MIME type blobs JSZip pour heic2any - Dockerfile nginx:alpine + docker-compose.yml pour déploiement Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
+5
-3
@@ -1,12 +1,14 @@
|
||||
/**
|
||||
* Compresse les fichiers en ZIP et déclenche le téléchargement.
|
||||
* @param {{ name: string, blob: Blob }[]} processedFiles
|
||||
* Si un fichier possède un `folder`, il est placé dans le sous-dossier correspondant.
|
||||
* @param {{ name: string, blob: Blob, folder?: string }[]} processedFiles
|
||||
* @returns {Promise<void>}
|
||||
*/
|
||||
export async function downloadAllAsZip(processedFiles) {
|
||||
const zip = new JSZip();
|
||||
for (const { name, blob } of processedFiles) {
|
||||
zip.file(name, blob);
|
||||
for (const { name, blob, folder } of processedFiles) {
|
||||
const path = folder ? `${folder}/${name}` : name;
|
||||
zip.file(path, blob);
|
||||
}
|
||||
const zipBlob = await zip.generateAsync({ type: 'blob' });
|
||||
const url = URL.createObjectURL(zipBlob);
|
||||
|
||||
Reference in New Issue
Block a user