diff options
author | mat <github@matdoes.dev> | 2022-04-09 19:59:32 -0500 |
---|---|---|
committer | mat <github@matdoes.dev> | 2022-04-09 19:59:32 -0500 |
commit | 96f14531c02e9b45f113495218bc6be1016a9ad7 (patch) | |
tree | 7076b05de5d26dee64bc5f5e3808271b8a9636a6 /src | |
parent | 1ef948bd4038a0b6f03871648571474296453d8f (diff) | |
download | skyblock-stats-96f14531c02e9b45f113495218bc6be1016a9ad7.tar.gz skyblock-stats-96f14531c02e9b45f113495218bc6be1016a9ad7.tar.bz2 skyblock-stats-96f14531c02e9b45f113495218bc6be1016a9ad7.zip |
Include mode in profile list
Diffstat (limited to 'src')
-rw-r--r-- | src/lib/APITypes.d.ts | 5 | ||||
-rw-r--r-- | src/lib/profile.ts | 11 | ||||
-rw-r--r-- | src/routes/player/[player]/index.svelte | 16 |
3 files changed, 28 insertions, 4 deletions
diff --git a/src/lib/APITypes.d.ts b/src/lib/APITypes.d.ts index bb0cd25..65e70f3 100644 --- a/src/lib/APITypes.d.ts +++ b/src/lib/APITypes.d.ts @@ -111,7 +111,8 @@ export interface CleanUser { } export interface CleanProfile extends CleanBasicProfile { - members?: CleanBasicMember[] + members: CleanBasicMember[] + mode: GameMode } /** A basic profile that only includes the profile uuid and name */ @@ -346,3 +347,5 @@ export interface CoopInvitation { accepted: boolean acceptedTimestamp: number | null } + +export type GameMode = 'normal' | 'stranded' | 'bingo' | 'ironman' diff --git a/src/lib/profile.ts b/src/lib/profile.ts index ceeac77..106e261 100644 --- a/src/lib/profile.ts +++ b/src/lib/profile.ts @@ -11,12 +11,23 @@ export function prettyTimestamp(ms: number) { return timeAsString } +export const MODE_EMOJIS = { + ironman: '♻️', + stranded: '🏝️' +} +export const DEFAULT_MODE_EMOJI = '❓' + export function generateInfobox(data: CleanMemberProfile): string[] { const result: string[] = [] if (data.member.left) result.push(`🚪 Removed from profile`) + if (data.profile.mode !== 'normal') { + const modeEmoji = MODE_EMOJIS[data.profile.mode] ?? DEFAULT_MODE_EMOJI + result.push(`${modeEmoji} Mode: ${cleanId(data.profile.mode)}`) + } + if (data.member.lastSave) result.push(`💾 Last save: ${prettyTimestamp(data.member.lastSave)}`) diff --git a/src/routes/player/[player]/index.svelte b/src/routes/player/[player]/index.svelte index 7964af1..c33d43f 100644 --- a/src/routes/player/[player]/index.svelte +++ b/src/routes/player/[player]/index.svelte @@ -36,6 +36,10 @@ import Header from '$lib/Header.svelte' import Head from '$lib/Head.svelte' import { chooseDefaultBackground } from '$lib/backgrounds' + import Emoji from '$lib/Emoji.svelte' + import { MODE_EMOJIS, DEFAULT_MODE_EMOJI } from '$lib/profile' + import Tooltip from '$lib/Tooltip.svelte' + import { cleanId } from '$lib/utils' export let data: CleanUser & { player: CleanPlayer } @@ -93,6 +97,14 @@ > {profile.name} </a> + {#if profile.mode !== 'normal'} + <Tooltip> + <span slot="tooltip"> + {cleanId(profile.mode)} mode + </span> + <Emoji value={MODE_EMOJIS[profile.mode] ?? DEFAULT_MODE_EMOJI} /> + </Tooltip> + {/if} <span class="profile-members"> {#if (profile.members?.length ?? 0) > 1} {#each profile.members?.filter(m => !m.left) ?? [] as player} @@ -119,10 +131,8 @@ </main> <style> - .profile-name { - margin-right: 0.5em; - } .profile-members { + margin-left: 0.5em; color: var(--theme-main-text); } .profile-members > .member { |