import { useState } from "preact/hooks"; import { Modal } from "../../Modal"; import { useMutation, useQueryClient } from "react-query"; import { useReminder } from "../ReminderContext"; import { deleteReminder } from "../../../api"; import { useParams } from "wouter"; import { useFlash } from "../../App/FlashContext"; import { useGuild } from "../../App/useGuild"; export const DeleteButton = () => { const [modalOpen, setModalOpen] = useState(false); return ( <> { setModalOpen(true); }} > Delete {modalOpen && } > ); }; const DeleteModal = ({ setModalOpen }) => { const [reminder] = useReminder(); const guild = useGuild(); const flash = useFlash(); const queryClient = useQueryClient(); const mutation = useMutation({ ...deleteReminder(), onSuccess: () => { flash({ message: "Reminder deleted", type: "success", }); if (guild) { queryClient.invalidateQueries({ queryKey: ["GUILD_REMINDERS", guild], }); } else { queryClient.invalidateQueries({ queryKey: ["USER_REMINDERS"], }); } setModalOpen(false); }, }); return ( <> This reminder will be permanently deleted. Are you sure? { mutation.mutate(reminder); }} disabled={mutation.isLoading} > Delete { setModalOpen(false); }} > Cancel > ); };
This reminder will be permanently deleted. Are you sure?