2024-02-24 16:10:25 +00:00
|
|
|
import { useState } from "preact/hooks";
|
|
|
|
import { Modal } from "../../Modal";
|
|
|
|
import { useMutation, useQueryClient } from "react-query";
|
|
|
|
import { useReminder } from "../ReminderContext";
|
2024-03-09 16:17:55 +00:00
|
|
|
import { deleteReminder } from "../../../api";
|
2024-02-24 16:10:25 +00:00
|
|
|
import { useParams } from "wouter";
|
|
|
|
import { useFlash } from "../../App/FlashContext";
|
2024-03-09 16:17:55 +00:00
|
|
|
import { useGuild } from "../../App/useGuild";
|
2024-02-24 16:10:25 +00:00
|
|
|
|
|
|
|
export const DeleteButton = () => {
|
|
|
|
const [modalOpen, setModalOpen] = useState(false);
|
|
|
|
|
|
|
|
return (
|
|
|
|
<>
|
|
|
|
<button
|
|
|
|
class="button is-danger delete-reminder"
|
|
|
|
onClick={() => {
|
|
|
|
setModalOpen(true);
|
|
|
|
}}
|
|
|
|
>
|
|
|
|
Delete
|
|
|
|
</button>
|
|
|
|
{modalOpen && <DeleteModal setModalOpen={setModalOpen}></DeleteModal>}
|
|
|
|
</>
|
|
|
|
);
|
|
|
|
};
|
|
|
|
|
|
|
|
const DeleteModal = ({ setModalOpen }) => {
|
|
|
|
const [reminder] = useReminder();
|
2024-03-09 16:17:55 +00:00
|
|
|
const guild = useGuild();
|
2024-02-24 16:10:25 +00:00
|
|
|
|
|
|
|
const flash = useFlash();
|
|
|
|
const queryClient = useQueryClient();
|
|
|
|
const mutation = useMutation({
|
2024-03-09 16:17:55 +00:00
|
|
|
...deleteReminder(),
|
2024-02-24 16:10:25 +00:00
|
|
|
onSuccess: () => {
|
|
|
|
flash({
|
|
|
|
message: "Reminder deleted",
|
|
|
|
type: "success",
|
|
|
|
});
|
2024-03-09 16:17:55 +00:00
|
|
|
if (guild) {
|
|
|
|
queryClient.invalidateQueries({
|
|
|
|
queryKey: ["GUILD_REMINDERS", guild],
|
|
|
|
});
|
|
|
|
} else {
|
|
|
|
queryClient.invalidateQueries({
|
|
|
|
queryKey: ["USER_REMINDERS"],
|
|
|
|
});
|
|
|
|
}
|
2024-02-24 16:10:25 +00:00
|
|
|
setModalOpen(false);
|
|
|
|
},
|
|
|
|
});
|
|
|
|
|
|
|
|
return (
|
|
|
|
<Modal setModalOpen={setModalOpen} title={"Delete Reminder"}>
|
|
|
|
<>
|
|
|
|
<p>This reminder will be permanently deleted. Are you sure?</p>
|
|
|
|
<br></br>
|
|
|
|
<div class="has-text-centered">
|
|
|
|
<button
|
|
|
|
class="button is-danger"
|
|
|
|
onClick={() => {
|
|
|
|
mutation.mutate(reminder);
|
|
|
|
}}
|
|
|
|
disabled={mutation.isLoading}
|
|
|
|
>
|
|
|
|
Delete
|
|
|
|
</button>
|
|
|
|
<button
|
|
|
|
class="button is-light close-modal"
|
|
|
|
onClick={() => {
|
|
|
|
setModalOpen(false);
|
|
|
|
}}
|
|
|
|
>
|
|
|
|
Cancel
|
|
|
|
</button>
|
|
|
|
</div>
|
|
|
|
</>
|
|
|
|
</Modal>
|
|
|
|
);
|
|
|
|
};
|