import { createContext, useState } from "react"; import { ImageViewer } from "./ImageViewer"; interface ImageViewerProviderProps { children: React.ReactNode; } export interface ImageToView { src: string; caption?: string; timestamp?: number; } export interface ImageViewerContextType { open: (images: ImageToView[], startIndex: number) => void; close: () => void; } export const ImageViewerContext = createContext(null); export function ImageViwerProvider(props : ImageViewerProviderProps) { const [imagesToView, setImagesToView] = useState([]); const [currentSlide, setCurrentSlide] = useState(0); const open = (images: ImageToView[], startIndex: number) => { setImagesToView(images); setCurrentSlide(startIndex); }; const close = () => { setImagesToView([]); setCurrentSlide(0); }; return ( {props.children} {imagesToView.length > 0 && } ); }