All files / projects-dev/apps/spacetraders/src/routes/status +page.svelte

0% Statements 0/49
0% Branches 0/1
0% Functions 0/1
0% Lines 0/49

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50                                                                                                   
<svelte:options customElement="st-routes-status" />

<script lang="ts">
    import { onMount } from "svelte";

    import Loader from "$ui/loader/src/loader.svelte";
    import type { Status } from "$models/status";

    let status: Status;
    let isLoading = true;

    onMount(() => {
        const options = {
            headers: {
                "Content-Type": "application/json",
                Authorization: `Bearer ${import.meta.env.VITE_API_TOKEN}`,
            },
        };

        // retrieve server status
        fetch(`${import.meta.env.VITE_API_URL}`, options)
            .then((response) => response.json())
            .then((response) => {
                status = {
                    status: response.status,
                    version: response.version,
                    resetDate: new Date(response.resetDate),
                    announcements: response.announcements,
                };
                isLoading = false;
            })
            .catch((error) => {
                // eslint-disable-next-line no-console
                console.error(error);
            });
    });
</script>

{#if isLoading}
    <Loader />
{:else}
    Status: {status.status} <br />
    Version: {status.version} <br />
    Reset Date: {status.resetDate.toLocaleString()} <br />
    Announcements: <br />
    {#each status.announcements as announcement}
        <strong>{announcement.title}</strong> - {announcement.body} <br />
    {/each}
{/if}