chore: refactor delete dialog

This commit is contained in:
Catalin Pit
2023-12-19 15:51:43 +02:00
parent da03fc1fd0
commit 17486b961d

View File

@ -44,6 +44,7 @@ export default function DeleteTokenDialog({
const router = useRouter(); const router = useRouter();
const { toast } = useToast(); const { toast } = useToast();
const [isOpen, setIsOpen] = useState(false); const [isOpen, setIsOpen] = useState(false);
const [isDeleteEnabled, setIsDeleteEnabled] = useState(false);
const deleteMessage = `delete ${tokenName}`; const deleteMessage = `delete ${tokenName}`;
@ -68,6 +69,10 @@ export default function DeleteTokenDialog({
}, },
}); });
const onInputChange = (event: React.ChangeEvent<HTMLInputElement>) => {
setIsDeleteEnabled(event.target.value === deleteMessage);
};
const onSubmit = async () => { const onSubmit = async () => {
try { try {
await deleteTokenMutation({ await deleteTokenMutation({
@ -94,10 +99,11 @@ export default function DeleteTokenDialog({
}; };
useEffect(() => { useEffect(() => {
if (!open) { if (!isOpen) {
setIsDeleteEnabled(false);
form.reset(); form.reset();
} }
}, [open, form]); }, [isOpen, form]);
return ( return (
<Dialog <Dialog
@ -139,7 +145,15 @@ export default function DeleteTokenDialog({
</span> </span>
</FormLabel> </FormLabel>
<FormControl> <FormControl>
<Input className="bg-background" {...field} /> <Input
className="bg-background"
type="text"
{...field}
onChange={(value) => {
onInputChange(value);
field.onChange(value);
}}
/>
</FormControl> </FormControl>
<FormMessage /> <FormMessage />
</FormItem> </FormItem>
@ -159,7 +173,7 @@ export default function DeleteTokenDialog({
<Button <Button
type="submit" type="submit"
variant="destructive" variant="destructive"
disabled={!form.formState.isDirty} disabled={!isDeleteEnabled}
loading={form.formState.isSubmitting} loading={form.formState.isSubmitting}
> >
I'm sure! Delete it I'm sure! Delete it