aboutsummaryrefslogtreecommitdiff
path: root/src/lib/sections/Collections.svelte
diff options
context:
space:
mode:
authormat <github@matdoes.dev>2022-02-21 20:43:55 -0600
committermat <github@matdoes.dev>2022-02-21 20:43:55 -0600
commitc680e2463046f4123f6ef3710e5cf9655cf3da57 (patch)
tree1e311f04c6f93054e3ac06584f3f2d057e3ce39a /src/lib/sections/Collections.svelte
parent34fcffb95db91bc1db80a00af4cf9d1007a9f575 (diff)
downloadskyblock-stats-c680e2463046f4123f6ef3710e5cf9655cf3da57.tar.gz
skyblock-stats-c680e2463046f4123f6ef3710e5cf9655cf3da57.tar.bz2
skyblock-stats-c680e2463046f4123f6ef3710e5cf9655cf3da57.zip
add collections and zones
Diffstat (limited to 'src/lib/sections/Collections.svelte')
-rw-r--r--src/lib/sections/Collections.svelte56
1 files changed, 56 insertions, 0 deletions
diff --git a/src/lib/sections/Collections.svelte b/src/lib/sections/Collections.svelte
new file mode 100644
index 0000000..2e03d3f
--- /dev/null
+++ b/src/lib/sections/Collections.svelte
@@ -0,0 +1,56 @@
+<script lang="ts">
+ import type { CleanMemberProfile, Collection } from '$lib/APITypes'
+ import { skyblockItemToUrl } from '$lib/minecraft/inventory'
+ import ListItemWithIcon from '$lib/ListItemWithIcon.svelte'
+ import { cleanId } from '$lib/utils'
+ import Tooltip from '$lib/Tooltip.svelte'
+
+ export let data: CleanMemberProfile
+
+ const categories: Record<string, Collection[]> = {}
+ if (data.member.collections)
+ for (const collection of data.member.collections) {
+ if (!categories[collection.category]) categories[collection.category] = []
+ categories[collection.category].push(collection)
+ }
+</script>
+
+{#if data.member.collections}
+ {#each Object.keys(categories).sort() as categoryName}
+ {@const collections = categories[categoryName]}
+ <h3>{cleanId(categoryName)}</h3>
+ <ul>
+ {#each collections as collection}
+ <ListItemWithIcon url={skyblockItemToUrl(collection.name)}>
+ <Tooltip>
+ <span slot="tooltip">
+ Amount: {collection.xp.toLocaleString()}
+ </span>
+ {cleanId(collection.name)}
+ <span class="coll-level">{collection.level}</span>
+ </Tooltip>
+ </ListItemWithIcon>
+ {/each}
+ </ul>
+ {/each}
+{/if}
+
+<style>
+ ul {
+ margin: 0;
+ display: grid;
+ grid-template-columns: repeat(2, 1fr);
+ grid-column-gap: 0;
+ width: fit-content;
+ }
+
+ ul > :global(li) {
+ width: 12em;
+ height: 1.5em;
+ text-overflow: ellipsis;
+ }
+
+ h3 {
+ margin: 0.5em 0 0.5em 0.5em;
+ }
+</style>