webcompile/src/routes/instances/+page.svelte

75 lines
1.7 KiB
Svelte

<script lang="ts">
import { CardInner, CardOuter, LinksOuter } from "$lib/Card";
import InstanceLink from "./InstanceLink.svelte";
import dayjs from "dayjs";
import type { PageData } from "./$types";
export let data: PageData;
</script>
<svelte:head>
<title>Our instances | Project Segfault</title>
<meta
name="description"
content="Our collection of instances."
/>
</svelte:head>
<h1>Our instances</h1>
{#if data.state.enabled}
<div class="flex flex-col gap-4">
<CardOuter>
<div class="flex flex-col">
{#each data.instances.status as group}
<h2>{group.name}</h2>
<div class="flex flex-row flex-wrap gap-8">
{#each group.data as item}
<CardInner
title={item.name}
description={item.description}
icon={item.icon}
>
<LinksOuter>
<InstanceLink
url={item.link}
item={item.status}
type="main"
/>
{#if item.us}
<InstanceLink
url={item.us}
item={item.statusUs}
type="us"
/>
{/if}
{#if item.bp}
<InstanceLink
url={item.bp}
item={item.statusBp}
type="backup"
/>
{/if}
</LinksOuter>
</CardInner>
{/each}
</div>
{/each}
</div>
</CardOuter>
<span class="bg-accent w-fit p-2 rounded-2 text-primary"
>Instances status last updated: {dayjs
.unix(data.instances.updated)
.format("DD/MM/YYYY HH:mm:ss")}
</span>
</div>
{:else}
<div class="flex items-center gap-2 mt-16">
<div class="i-fa6-solid:circle-info" />
<span>Instances are currently disabled.</span>
</div>
{/if}