'use client'; import { deleteUploadsAction } from '@/photo/actions'; import DeleteButton from './DeleteButton'; import { useRouter } from 'next/navigation'; import { PATH_ADMIN_PHOTOS } from '@/app/path'; import { ComponentProps, useState } from 'react'; import LoaderButton from '@/components/primitives/LoaderButton'; export default function DeleteUploadButton({ urls, shouldRedirectToAdminPhotos, onDeleteStart, onDelete, children, isLoading, ...props }: { urls: string[] shouldRedirectToAdminPhotos?: boolean onDeleteStart?: () => void onDelete?: (didFail?: boolean) => void } & ComponentProps) { const router = useRouter(); const [isDeleting, setIsDeleting] = useState(false); return ( { onDeleteStart?.(); setIsDeleting(true); deleteUploadsAction(urls) .then(() => { onDelete?.(); if (shouldRedirectToAdminPhotos) { router.push(PATH_ADMIN_PHOTOS); } else { setIsDeleting(false); } }) .catch(() => { setIsDeleting(false); onDelete?.(true); }); }} isLoading={isLoading ?? isDeleting} > {children} ); }