import Dialog, { useDialogState } from '~/components/IVDialog' import { trpc } from '~/utils/trpc' import IVButton from '~/components/IVButton' import { notify } from '../NotificationCenter' function ArchiveForm({ actionId, onSubmit, onClose, }: { actionId: string onSubmit: () => void onClose: () => void }) { const archive = trpc.useMutation('action.archive') return (

Are you sure you want to archive this action?

{ archive.mutate({ actionId }, { onSuccess: onSubmit }) }} />
) } function UnarchiveForm({ actionId, onSubmit, onClose, }: { actionId: string onSubmit: () => void onClose: () => void }) { const unarchive = trpc.useMutation('action.unarchive') return (

Unarchive this action to add it to the actions list and run it.

{ unarchive.mutate({ actionId }, { onSuccess: onSubmit }) }} />
) } export default function ArchiveDialog({ actionId, dialog, onSuccess, mode, }: { actionId: string mode: 'archive' | 'unarchive' onSuccess: () => void dialog: ReturnType }) { return ( {mode === 'archive' && ( { dialog.hide() notify.success(() => (

Action archived.

Please remove it from your deployment.

)) onSuccess() }} onClose={dialog.hide} /> )} {mode === 'unarchive' && ( { dialog.hide() notify.success('Action unarchived.') onSuccess() }} onClose={dialog.hide} /> )}
) }