From cf5bbf91d5124769b1651fe6e77286ef0d4494a3 Mon Sep 17 00:00:00 2001 From: Mathieu Date: Mon, 8 Jun 2026 20:00:20 +0200 Subject: [PATCH] =?UTF-8?q?feat:=20module=20Images=20complet=20=E2=80=94?= =?UTF-8?q?=20drop,=20traitement=20IA,=20Shopify,=20upload?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/app/(dashboard)/images/page.tsx | 56 +++++++++++++++++++++++++++-- 1 file changed, 54 insertions(+), 2 deletions(-) diff --git a/src/app/(dashboard)/images/page.tsx b/src/app/(dashboard)/images/page.tsx index 760c962..3dae661 100644 --- a/src/app/(dashboard)/images/page.tsx +++ b/src/app/(dashboard)/images/page.tsx @@ -1,9 +1,61 @@ +'use client' +import { useState } from 'react' import { Header } from '@/components/layout/Header' +import { DropZone } from '@/components/images/DropZone' +import { ImageCard } from '@/components/images/ImageCard' +import { Lightbox } from '@/components/images/Lightbox' +import { GlobalActions } from '@/components/images/GlobalActions' +import { useImages } from '@/hooks/useImages' +import type { ImageItem } from '@/types/images' + export default function ImagesPage() { + const { items, addFiles, setFeather, rotate, uploadOne, uploadAll, removeItem } = useImages() + const [lightboxItem, setLightboxItem] = useState(null) + return ( <> -
-

Module Images — à implémenter (Plan 2)

+
+ {items.length > 0 ? `${items.length} image${items.length > 1 ? 's' : ''}` : ''} + + } + /> + +
+ + + {items.length > 0 && ( + + )} + + {items.length > 0 && ( +
+ {items.map((item) => ( + + ))} +
+ )} + + {items.length === 0 && ( +
+

📂

+

Déposez des images pour commencer

+

Le nom du fichier (sans extension) doit correspondre à une référence produit Shopify

+
+ )} +
+ + setLightboxItem(null)} /> ) }