Post toast when overwriting photo EXIF data

This commit is contained in:
Sam Becker 2023-11-10 22:22:46 -06:00
parent 75c73174e9
commit 915b71297c
3 changed files with 29 additions and 14 deletions

View File

@ -125,6 +125,9 @@ export default async function AdminTagsPage({
<input type="hidden" name="id" value={photo.id} />
<SubmitButtonWithStatus
icon={<IconGrSync className="translate-y-[-0.5px]" />}
onFormSubmitToastMessage={`
"${titleForPhoto(photo)}" EXIF data synced
`}
/>
</FormWithConfirm>
<FormWithConfirm

View File

@ -1,29 +1,43 @@
'use client';
import { HTMLProps } from 'react';
import { HTMLProps, useEffect, useRef } from 'react';
import { useFormStatus } from 'react-dom';
import Spinner, { SpinnerColor } from './Spinner';
import { cc } from '@/utility/css';
import { toastSuccess } from '@/toast';
interface Props extends HTMLProps<HTMLButtonElement> {
icon?: JSX.Element
styleAsLink?: boolean
spinnerColor?: SpinnerColor
onFormSubmitToastMessage?: string
}
export default function SubmitButtonWithStatus(props: Props) {
const {
icon,
styleAsLink,
spinnerColor,
children,
disabled,
className,
type: _type,
...buttonProps
} = props;
export default function SubmitButtonWithStatus({
icon,
styleAsLink,
spinnerColor,
onFormSubmitToastMessage,
children,
disabled,
className,
type: _type,
...buttonProps
}: Props) {
const { pending } = useFormStatus();
const pendingPrevious = useRef(pending);
useEffect(() => {
if (
pendingPrevious.current &&
!pending &&
onFormSubmitToastMessage
) {
toastSuccess(onFormSubmitToastMessage);
}
pendingPrevious.current = pending;
}, [pending, onFormSubmitToastMessage]);
return (
<button

View File

@ -28,8 +28,6 @@ export default function PhotoEditPageClient({
seedExifData,
);
console.log({ hasExifDataBeenFound });
return (
<AdminChildPage
backPath={PATH_ADMIN_PHOTOS}