From 97b35ce73fab8a84d4d3e6807618a252efcf4cd9 Mon Sep 17 00:00:00 2001 From: Nathan Reiner Date: Mon, 24 Nov 2025 18:26:20 +0100 Subject: image-viewer: lazy-loader --- static/widgets/image/index.css | 6 +++++- static/widgets/image/index.js | 7 ++++++- 2 files changed, 11 insertions(+), 2 deletions(-) (limited to 'static/widgets/image') diff --git a/static/widgets/image/index.css b/static/widgets/image/index.css index 730a324..a53bddc 100644 --- a/static/widgets/image/index.css +++ b/static/widgets/image/index.css @@ -5,18 +5,22 @@ border-radius: var(--border-radius); overflow: none; box-shadow: #223223aa 1px 1px 4px; + background: var(--card-background); } #container img { border-radius: var(--border-radius); max-width: 700px; - width: 100%; + width: calc(100vw - 20px); visibility: hidden; margin-bottom: -5px; + height: calc((100vw - 20px) * 0.8); } #container.loaded img { visibility: visible; + width: 100%; + height: unset; } @keyframes loader { diff --git a/static/widgets/image/index.js b/static/widgets/image/index.js index 202494b..4c25988 100644 --- a/static/widgets/image/index.js +++ b/static/widgets/image/index.js @@ -46,6 +46,11 @@ export default class Image extends sfw.element.Container { set id(id) { this.#id = id; this.#container.classList.remove('loaded'); - this.#image.src = `/api/image/load/${id}`; + } + + load() { + if (!this.#image.src) { + this.#image.src = `/api/image/load/${this.#id}`; + } } } -- cgit v1.2.3-70-g09d2