main-site/src/routes/servers/+page.svelte

48 lines
1 KiB
Svelte
Raw Normal View History

2024-01-04 01:35:56 +01:00
<svelte:options runes={true} />
<script lang="ts">
import type { Server } from '$lib/types/data-types';
2024-01-04 01:36:35 +01:00
import ServerCard from '$lib/components/ServerCard.svelte';
2024-01-04 01:35:56 +01:00
2025-04-04 23:55:56 +02:00
let servers: readonly Server[] = $state.raw([]);
2024-01-04 01:35:56 +01:00
2025-04-04 23:55:56 +02:00
let icons: readonly string[] = $state.raw([]);
2024-01-04 01:35:56 +01:00
async function get(url: string): Promise<any> {
let res = await fetch(url);
if (res.ok) {
let data = await res.json();
return data;
} else {
return Promise.reject();
}
}
$effect(() => {
get('/data/servers').then((data: Server[]) => {
servers = data;
});
});
$effect(() => {
get('/assets/icons').then((data: string[]) => {
icons = data;
});
});
</script>
<svelte:head>
2024-01-02 02:39:22 +01:00
<title>Servers</title>
<meta name="description" content="Overview of Game Servers running on neshweb.net" />
</svelte:head>
2024-01-04 01:35:56 +01:00
<div class="flex max-h-full flex-row flex-wrap justify-center gap-10 overflow-auto p-8">
{#each servers as server}
{#if typeof server.id === 'undefined'}
<ServerCard {server} {icons} />
{:else}
<ServerCard {server} {icons} />
2024-01-04 01:35:56 +01:00
{/if}
{/each}
</div>