aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authormat <github@matdoes.dev>2022-02-21 21:27:59 -0600
committermat <github@matdoes.dev>2022-02-21 21:27:59 -0600
commit2071203061bfbb18f2c1991b45556b8ec47536a8 (patch)
treeff654467ee6c1e2170e092b3af31711c1af8657d /src
parentc680e2463046f4123f6ef3710e5cf9655cf3da57 (diff)
downloadskyblock-stats-2071203061bfbb18f2c1991b45556b8ec47536a8.tar.gz
skyblock-stats-2071203061bfbb18f2c1991b45556b8ec47536a8.tar.bz2
skyblock-stats-2071203061bfbb18f2c1991b45556b8ec47536a8.zip
lazy-load collapsible when js is enabled
makes page load a tiny bit faster
Diffstat (limited to 'src')
-rw-r--r--src/lib/Collapsible.svelte17
-rw-r--r--src/lib/ListItemWithIcon.svelte9
-rw-r--r--src/lib/layout/Loader.svelte2
-rw-r--r--src/lib/minecraft/inventory.ts1
-rw-r--r--src/lib/sections/Collections.svelte2
5 files changed, 24 insertions, 7 deletions
diff --git a/src/lib/Collapsible.svelte b/src/lib/Collapsible.svelte
index f3a28d2..867117d 100644
--- a/src/lib/Collapsible.svelte
+++ b/src/lib/Collapsible.svelte
@@ -3,15 +3,28 @@
Non-JS collapsible content.
-->
+<script lang="ts">
+ let open: boolean
+</script>
-<details>
+<details bind:open>
<summary>
<slot name="title">
<h2>Details</h2>
</slot>
</summary>
<div>
- <slot />
+ <!--
+ We do this so images inside the content are not loaded until it's
+ open. The browser (only tested on FF) doesn't handle this, although
+ it probably should.
+ -->
+ <noscript>
+ <slot />
+ </noscript>
+ {#if open}
+ <slot />
+ {/if}
</div>
</details>
diff --git a/src/lib/ListItemWithIcon.svelte b/src/lib/ListItemWithIcon.svelte
index 2c7aade..7666c18 100644
--- a/src/lib/ListItemWithIcon.svelte
+++ b/src/lib/ListItemWithIcon.svelte
@@ -1,8 +1,10 @@
<script lang="ts">
export let url: string
+ export let alt: string | undefined = undefined
</script>
-<li class="list-item-with-icon" style="background: url({url}) 0 0/1em no-repeat">
+<li class="list-item-with-icon">
+ <img class="list-item-icon" src={url} {alt} loading="lazy" />
<slot />
</li>
@@ -12,7 +14,12 @@
padding-left: 1.2em;
position: relative;
right: 1.2em;
+ }
+ .list-item-icon {
image-rendering: crisp-edges;
image-rendering: pixelated;
+ height: 1em;
+ position: absolute;
+ margin-left: -1.2em;
}
</style>
diff --git a/src/lib/layout/Loader.svelte b/src/lib/layout/Loader.svelte
index 524d975..901a780 100644
--- a/src/lib/layout/Loader.svelte
+++ b/src/lib/layout/Loader.svelte
@@ -5,7 +5,6 @@
let opacity = 1
function navigationStart() {
- console.log('navigation start')
widthTransitionDuration = 0
opacity = 1
progress = 0
@@ -15,7 +14,6 @@
})
}
function navigationEnd() {
- console.log('navigation end', widthTransitionDuration)
opacity = 0
setTimeout(() => {
widthTransitionDuration = 0
diff --git a/src/lib/minecraft/inventory.ts b/src/lib/minecraft/inventory.ts
index 7b35f0e..161c70a 100644
--- a/src/lib/minecraft/inventory.ts
+++ b/src/lib/minecraft/inventory.ts
@@ -60,7 +60,6 @@ export function itemToUrl(item: Item, packName?: string): string {
export function skyblockItemToUrl(skyblockItemName: string) {
const item = skyblockItemNameToItem(skyblockItemName)
- console.log(skyblockItemName, item)
const itemTextureUrl = itemToUrl(item, 'packshq')
return itemTextureUrl
}
diff --git a/src/lib/sections/Collections.svelte b/src/lib/sections/Collections.svelte
index 2e03d3f..9624ec2 100644
--- a/src/lib/sections/Collections.svelte
+++ b/src/lib/sections/Collections.svelte
@@ -21,7 +21,7 @@
<h3>{cleanId(categoryName)}</h3>
<ul>
{#each collections as collection}
- <ListItemWithIcon url={skyblockItemToUrl(collection.name)}>
+ <ListItemWithIcon url={skyblockItemToUrl(collection.name)} alt={cleanId(collection.name)}>
<Tooltip>
<span slot="tooltip">
Amount: {collection.xp.toLocaleString()}