import { useMemo, useState } from "react"; import clsx from "clsx"; import { Button } from "../../button/Button"; import { Modal, ModalContent, ModalDescription, ModalFooter, ModalHeader } from "../../modal"; import type { Media } from "./types"; interface Props { onPick: (media: Media | null) => void; allowedTypes?: "image" | "audio" | "all-safe"; imageRatio?: number; className?: string; id?: string; } const mockMedias: { label: string; media: Media | null }[] = [ { label: "Image paysage", media: { id: "mock-landscape", origin: "external", category: "image", mimeType: "image/jpg", width: 400, height: 300, size: null, src: "/medias/400x300.jpg", }, }, { label: "Image portrait", media: { id: "mock-portrait", origin: "external", category: "image", mimeType: "image/jpeg", width: 600, height: 900, size: null, src: "https://picsum.photos/600/900", }, }, { label: "Audio", media: { id: "mock-audio", origin: "external", category: "audio", mimeType: "audio/mpeg", size: null, src: "/audio/mock-track.mp3", }, }, { label: "PDF", media: { id: "mock-pdf", origin: "external", category: "document", mimeType: "application/pdf", size: null, src: "/documents/mock-file.pdf", }, }, { label: "Null", media: null, }, ]; export function UploaderMock({ onPick, imageRatio, className, id }: Props) { const [isOpen, setIsOpen] = useState(false); const cssProperties = useMemo(() => ({ "--media-ratio": imageRatio ?? 16 / 9 }), [imageRatio]); return (
Choisir un média (mock)
{mockMedias.map(({ label, media }, idx) => ( ))}
); }