All files / src/components/ViewPhotosDialog index.tsx

0% Statements 0/5
100% Branches 0/0
0% Functions 0/2
0% Lines 0/5

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37                                                                         
import React, { type JSX, useEffect, useState } from 'react';
 
import DialogBox from '../DialogBox/DialogBox';
import PhotosCarousel, { PhotoItem } from '../PhotosCarousel';
 
export interface ViewPhotosDialogProps {
  open: boolean;
  onClose: () => void;
  photos: PhotoItem[];
  initialSelectedSlide: number;
  title: string;
  numbered?: boolean;
  dots?: boolean;
}
 
export default function ViewPhotosDialog(props: ViewPhotosDialogProps): JSX.Element {
  const { onClose, open, photos, initialSelectedSlide, title, numbered, dots } = props;
  const [selectedSlide, setSelectedSlide] = useState(initialSelectedSlide);
 
  useEffect(() => {
    setSelectedSlide(initialSelectedSlide);
  }, [initialSelectedSlide, open]);
 
  return (
    <DialogBox onClose={onClose} open={open} title={title} size='large' scrolled={true}>
      <PhotosCarousel
        photos={photos}
        selectedSlide={selectedSlide}
        onSlideChange={setSelectedSlide}
        numbered={numbered}
        dots={dots}
        showArrows
      />
    </DialogBox>
  );
}