import { Modal } from "../Modal";
import { useRef, useState } from "preact/hooks";
import { useParams } from "wouter";
import axios from "axios";
import { useFlash } from "../App/FlashContext";
import { useGuild } from "../App/useGuild";
import { useQueryClient } from "react-query";
export const Import = () => {
const [modalOpen, setModalOpen] = useState(false);
return (
<>
{
setModalOpen(true);
}}
>
{" "}
Import/Export
{modalOpen && }
>
);
};
const ImportModal = ({ setModalOpen }) => {
const guild = useGuild();
const aRef = useRef();
const inputRef = useRef();
const flash = useFlash();
const [isImporting, setIsImporting] = useState(false);
const queryClient = useQueryClient();
return (
Import/Export Manager{" "}
>
}
>
<>
{
new Promise((resolve) => {
let fileReader = new FileReader();
fileReader.onload = (e) => resolve(fileReader.result);
fileReader.readAsDataURL(inputRef.current.files[0]);
}).then((dataUrl: string) => {
setIsImporting(true);
axios
.put(`/dashboard/api/guild/${guild}/export/reminders`, {
body: dataUrl.split(",")[1],
})
.then(({ data }) => {
setIsImporting(false);
if (data.error) {
flash({ message: data.error, type: "error" });
} else {
flash({ message: data.message, type: "success" });
queryClient.invalidateQueries({
queryKey: ["GUILD_REMINDERS", guild],
});
}
})
.then(() => {
delete inputRef.current.files[0];
});
});
}}
/>
>
);
};