feat(dashboard): add tos/privacy/about pages, add delete all data page + endpoint

This commit is contained in:
sam 2024-10-24 15:53:27 +02:00
parent ac54b78a13
commit 31b6ac2cac
Signed by: sam
GPG key ID: 5F3C3C1B3166639D
21 changed files with 527 additions and 28 deletions

View file

@ -69,6 +69,12 @@
>
Key roles
</NavLink>
<NavLink
href="/dash/{data.guild.id}/delete"
active={$page.url.pathname === `/dash/${data.guild.id}/delete`}
>
Delete all data
</NavLink>
</Nav>
{#if $page.url.pathname === `/dash/${data.guild.id}` || $page.url.pathname === `/dash/${data.guild.id}/ignored-channels`}

View file

@ -0,0 +1,64 @@
<script lang="ts">
import { Alert, Button, Input, InputGroup } from "@sveltestrap/sveltestrap";
import type { PageData } from "./$types";
import { fastFetch, type ApiError } from "$lib/api";
import { addToast } from "$lib/toast";
import { goto } from "$app/navigation";
export let data: PageData;
let guildName: string = "";
const deleteData = async () => {
try {
await fastFetch("POST", `/api/guilds/${data.guild.id}/leave`, {
name: guildName,
});
addToast({
header: "Left server",
body: `Successfully left ${data.guild.name} and deleted all data related to it.`,
});
await goto("/dash");
} catch (e) {
addToast({
header: "Error leaving server",
body: (e as ApiError).message || "Unknown error",
});
}
};
</script>
<h3>Delete this server's data</h3>
<p>
To make Catalogger leave your server and delete all data from your server,
fill its name in below and press "Delete".
<br />
<strong>
This is irreversible. If you change your mind later, your data cannot be
restored.
</strong>
<br />
If you just want to make Catalogger leave your server but not delete data, simply
kick it via Discord.
</p>
<Alert color="danger">
<h4 class="alert-heading">This is irreversible!</h4>
We <strong>cannot</strong> help you recover data deleted in this way.
</Alert>
<p>
<InputGroup>
<Input type="text" placeholder="Server name" bind:value={guildName} />
<Button
color="danger"
disabled={guildName !== data.guild.name}
on:click={deleteData}
>
Delete
</Button>
</InputGroup>
</p>