Data/Official: Add warning toast to official data fetch button
This commit is contained in:
@ -1,16 +1,32 @@
|
|||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
|
import { invalidate } from "$app/navigation";
|
||||||
import { Button } from "$lib/components";
|
import { Button } from "$lib/components";
|
||||||
import { pbUser } from "$lib/pocketbase";
|
import { pbUser } from "$lib/pocketbase";
|
||||||
|
import { get_error_toast, get_warning_toast } from "$lib/toast";
|
||||||
|
import { getToastStore, type ToastStore } from "@skeletonlabs/skeleton";
|
||||||
import type { Snippet } from "svelte";
|
import type { Snippet } from "svelte";
|
||||||
|
|
||||||
let { children }: { children: Snippet } = $props();
|
let { children }: { children: Snippet } = $props();
|
||||||
|
|
||||||
const scrape_official_data = async () => {
|
const toastStore: ToastStore = getToastStore();
|
||||||
// TODO: Unauthorized toast
|
|
||||||
if (!$pbUser || !$pbUser.admin) return;
|
|
||||||
|
|
||||||
// TODO: Success/error toast
|
const scrape_message: string =
|
||||||
|
"This will clear and redownload all data from f1.com. Please don't refresh the page during the process.";
|
||||||
|
|
||||||
|
// This callback will be executed once the admin presses the "Proceed"-button in the warning toast
|
||||||
|
const scrape_callback = async () => {
|
||||||
const response: Response = await fetch("/api/scrape", { method: "POST" });
|
const response: Response = await fetch("/api/scrape", { method: "POST" });
|
||||||
|
invalidate("data:official");
|
||||||
|
};
|
||||||
|
|
||||||
|
const scrape_official_data = async () => {
|
||||||
|
if (!$pbUser || !$pbUser.admin) {
|
||||||
|
toastStore.trigger(get_error_toast("Only admins may perform this action!"));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// No timeout + action toast
|
||||||
|
toastStore.trigger(get_warning_toast(scrape_message, null, "Proceed", scrape_callback));
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user