aboutsummaryrefslogtreecommitdiff
path: root/src/routes
diff options
context:
space:
mode:
Diffstat (limited to 'src/routes')
-rw-r--r--src/routes/__error.svelte53
-rw-r--r--src/routes/index.svelte4
-rw-r--r--src/routes/player/[player]/[profile].svelte14
-rw-r--r--src/routes/player/[player]/index.svelte25
4 files changed, 85 insertions, 11 deletions
diff --git a/src/routes/__error.svelte b/src/routes/__error.svelte
new file mode 100644
index 0000000..b49d2a1
--- /dev/null
+++ b/src/routes/__error.svelte
@@ -0,0 +1,53 @@
+<script lang="ts" context="module">
+ import type { ErrorLoad } from '@sveltejs/kit'
+
+ export const load: ErrorLoad = async ({ error, status }) => {
+ return {
+ props: {
+ error,
+ status,
+ },
+ }
+ }
+</script>
+
+<script lang="ts">
+ import Header from '$lib/Header.svelte'
+ import Head from '$lib/Head.svelte'
+
+ export let status: number
+ export let error: Error
+</script>
+
+<Head title={error.message} />
+<Header />
+
+<main>
+ <div>
+ <h1>{status}</h1>
+ <p>{error.message}</p>
+ <a href="/" sveltekit:prefetch>Home</a>
+ </div>
+</main>
+
+<style>
+ main {
+ height: calc(100% - 4rem);
+ /* vertical align */
+ display: grid;
+ align-items: center;
+ justify-content: center;
+ }
+
+ h1 {
+ font-size: 3em;
+ margin: 0;
+ }
+ p {
+ margin: 0;
+ }
+ a {
+ display: block;
+ margin-top: 0.5rem;
+ }
+</style>
diff --git a/src/routes/index.svelte b/src/routes/index.svelte
index 524df13..9bfbd29 100644
--- a/src/routes/index.svelte
+++ b/src/routes/index.svelte
@@ -1,4 +1,6 @@
<script context="module" lang="ts">
+ import Header from '$lib/Header.svelte'
+
export const prerender = true
</script>
@@ -6,6 +8,8 @@
<title>Home</title>
</svelte:head>
+<Header />
+
<section>
<h1>SkyBlock Stats</h1>
</section>
diff --git a/src/routes/player/[player]/[profile].svelte b/src/routes/player/[player]/[profile].svelte
index 1a86b44..e31108b 100644
--- a/src/routes/player/[player]/[profile].svelte
+++ b/src/routes/player/[player]/[profile].svelte
@@ -37,6 +37,8 @@
import { cleanId } from '$lib/utils'
import Collapsible from '$lib/Collapsible.svelte'
import Minions from '$lib/sections/Minions.svelte'
+ import Zones from '$lib/sections/Zones.svelte'
+ import Collections from '$lib/sections/Collections.svelte'
export let data: CleanMemberProfile
export let pack: string
@@ -127,6 +129,18 @@
<Minions {data} />
</Collapsible>
</section>
+ <section id="zones">
+ <Collapsible>
+ <h2 slot="title">Zones</h2>
+ <Zones {data} />
+ </Collapsible>
+ </section>
+ <section id="collections">
+ <Collapsible>
+ <h2 slot="title">Collections</h2>
+ <Collections {data} />
+ </Collapsible>
+ </section>
</div>
</div>
</main>
diff --git a/src/routes/player/[player]/index.svelte b/src/routes/player/[player]/index.svelte
index 2ba7ba1..460cd28 100644
--- a/src/routes/player/[player]/index.svelte
+++ b/src/routes/player/[player]/index.svelte
@@ -36,19 +36,22 @@
let activeProfile: CleanProfile | null = null
let activeProfileLastSave: number = 0
-
- if (data.profiles)
- for (const profile of data.profiles) {
- if (profile.members)
- for (const member of profile.members) {
- if (member.uuid === data.player?.uuid && member.last_save > activeProfileLastSave) {
- activeProfile = profile
- activeProfileLastSave = member.last_save
+ let isActiveProfileOnline: boolean
+
+ $: {
+ if (data.profiles)
+ for (const profile of data.profiles) {
+ if (profile.members)
+ for (const member of profile.members) {
+ if (member.uuid === data.player?.uuid && member.last_save > activeProfileLastSave) {
+ activeProfile = profile
+ activeProfileLastSave = member.last_save
+ }
}
- }
- }
+ }
- const isActiveProfileOnline = Date.now() / 1000 - 60 < activeProfileLastSave
+ isActiveProfileOnline = Date.now() / 1000 - 60 < activeProfileLastSave
+ }
// cursed svelte :D
$: bodyStyle = data.customization?.backgroundUrl