@@ -337,6 +337,7 @@ export function PhotoCard({
337
337
} ) {
338
338
const [ open , setOpen ] = useState ( false ) ;
339
339
const [ api , setApi ] = useState < CarouselApi > ( ) ;
340
+ const [ currentIndex , setCurrentIndex ] = useState ( 0 ) ;
340
341
341
342
return (
342
343
< >
@@ -361,28 +362,42 @@ export function PhotoCard({
361
362
</ Button >
362
363
) ) }
363
364
</ div >
364
- < Dialog open = { open } onOpenChange = { setOpen } >
365
- < DialogContent className = "max-w-[90vw] max-h-[90vh] w-auto p-0 rounded-lg border-2 overflow-hidden" >
366
- < DialogTitle className = "p-6 hidden" > { title } </ DialogTitle >
367
- < Carousel setApi = { setApi } className = "w-full" >
368
- < CarouselContent >
369
- { photos . map ( ( photo ) => (
365
+ < Dialog open = { open } onOpenChange = { setOpen } modal = { false } >
366
+ < DialogContent
367
+ className = "p-0 bg-background/80 w-screen h-screen overflow-hidden max-w-none max-h-none border-0 rounded-none focus:outline-none"
368
+ onClick = { ( ) => setOpen ( false ) }
369
+ >
370
+ < DialogTitle className = "hidden" > { title } </ DialogTitle >
371
+ < Carousel className = "relative" setApi = { ( api ) => setApi ( api ) } >
372
+ < CarouselContent className = "h-full absolute inset-0 ml-0" >
373
+ { photos . map ( ( photo , index ) => (
370
374
< CarouselItem
371
375
key = { photo . unique_id }
372
- className = "flex items-center justify-center"
376
+ className = "flex items-center justify-center pl-0 "
373
377
>
374
378
< img
375
379
src = { photo . urls ? Object . values ( photo . urls ) . at ( - 1 ) : '' }
376
380
alt = { photo . caption ?? '' }
377
- className = "object-contain max-w-full max-h-[80vh] w-auto h-auto"
381
+ className = "max-w-[calc(100vw-4rem)] max-h-[calc(100vh-4rem)] object-contain rounded-lg border-2 border-background"
382
+ onClick = { ( e ) => e . stopPropagation ( ) }
378
383
/>
379
384
</ CarouselItem >
380
385
) ) }
381
386
</ CarouselContent >
382
- < div className = "absolute bottom-4 left-0 right-0 flex justify-center gap-2" >
383
- < CarouselPrevious />
384
- < CarouselNext />
385
- </ div >
387
+ < CarouselPrevious
388
+ className = "absolute left-4"
389
+ onClick = { ( e ) => {
390
+ e . stopPropagation ( ) ;
391
+ api ?. scrollPrev ( ) ;
392
+ } }
393
+ />
394
+ < CarouselNext
395
+ className = "absolute right-4"
396
+ onClick = { ( e ) => {
397
+ e . stopPropagation ( ) ;
398
+ api ?. scrollNext ( ) ;
399
+ } }
400
+ />
386
401
</ Carousel >
387
402
</ DialogContent >
388
403
</ Dialog >
0 commit comments