'use client'; import { Photo, deleteConfirmationTextForPhoto, titleForPhoto } from '@/photo'; import AdminTable from './AdminTable'; import { Fragment } from 'react'; import PhotoTiny from '@/photo/PhotoTiny'; import { clsx } from 'clsx/lite'; import { pathForAdminPhotoEdit, pathForPhoto } from '@/site/paths'; import Link from 'next/link'; import { AiOutlineEyeInvisible } from 'react-icons/ai'; import PhotoDate from '@/photo/PhotoDate'; import FormWithConfirm from '@/components/FormWithConfirm'; import EditButton from './EditButton'; import SubmitButtonWithStatus from '@/components/SubmitButtonWithStatus'; import IconGrSync from '@/site/IconGrSync'; import DeleteButton from './DeleteButton'; import { deletePhotoFormAction, syncPhotoExifDataAction, } from '@/photo/actions'; import { useAppState } from '@/state/AppState'; import { RevalidatePhoto } from '@/photo/InfinitePhotoScroll'; export default function AdminPhotosTable({ photos, onLastPhotoVisible, revalidatePhoto, }: { photos: Photo[], onLastPhotoVisible?: () => void revalidatePhoto?: RevalidatePhoto }) { const { invalidateSwr } = useAppState(); return ( {photos.map((photo, index) =>
{titleForPhoto(photo)} {photo.hidden && {' '} } {photo.priorityOrder !== null && {photo.priorityOrder} }
} onFormSubmitToastMessage={` "${titleForPhoto(photo)}" EXIF data synced `} onFormSubmit={invalidateSwr} /> revalidatePhoto?.(photo.id, true)} >
)}
); }