UX: improve 'offline' indicator, make translatable

This commit is contained in:
Pieter Vander Vennet 2025-08-26 23:40:48 +02:00
parent 07a181aa1e
commit 94469f7123
3 changed files with 14 additions and 3 deletions

View file

@ -640,6 +640,7 @@
}, },
"noBlur": "Images will not be blurred. Do not photograph people", "noBlur": "Images will not be blurred. Do not photograph people",
"offline": "You are currently offline. Uploading images be attempted when your internet is back", "offline": "You are currently offline. Uploading images be attempted when your internet is back",
"offlinePending": "{count} images are currently in the queue",
"one": { "one": {
"done": "Your image was successfully uploaded. Thank you!", "done": "Your image was successfully uploaded. Thank you!",
"failed": "Sorry, we could not upload your image", "failed": "Sorry, we could not upload your image",

View file

@ -94,8 +94,10 @@
</div> </div>
{/if} {/if}
{#if !$online && $pending > 0} {#if !$online && $pending > 0}
<div class="alert"> <div class="alert flex flex-col">
<Tr t={t.upload.offline} /> <Tr cls="block" t={t.upload.offline} />
<Tr cls="block" t={t.upload.offlinePending.Subs({count: $pending})} />
</div> </div>
{:else if $failed > dismissed} {:else if $failed > dismissed}
<UploadFailedMessage failed={$failed} on:click={() => (dismissed = $failed)} {state} /> <UploadFailedMessage failed={$failed} on:click={() => (dismissed = $failed)} {state} />

View file

@ -56,6 +56,8 @@
import { AndroidPolyfill } from "../Logic/Web/AndroidPolyfill" import { AndroidPolyfill } from "../Logic/Web/AndroidPolyfill"
import { IsOnline } from "../Logic/Web/IsOnline" import { IsOnline } from "../Logic/Web/IsOnline"
import CompassWidget from "./BigComponents/CompassWidget.svelte" import CompassWidget from "./BigComponents/CompassWidget.svelte"
import { WifiIcon } from "@babeard/svelte-heroicons/solid"
import Cross_bottom_right from "../assets/svg/Cross_bottom_right.svelte"
export let state: WithSearchState export let state: WithSearchState
new TitleHandler(state.selectedElement, state) new TitleHandler(state.selectedElement, state)
@ -438,7 +440,13 @@
<div class="alert w-fit">Faking a user (Testmode)</div> <div class="alert w-fit">Faking a user (Testmode)</div>
</If> </If>
{#if !$isOnline} {#if !$isOnline}
<div class="alert">Offline mode</div> <div class="alert w-fit flex gap-x-2">
<div class="relative">
<WifiIcon class="w-6 h-6" />
<Cross_bottom_right color="red" class="absolute top-0 left-0" />
</div>
<Tr t={Translations.t.general.offline} />
</div>
{:else if $apiState === "unknown"} {:else if $apiState === "unknown"}
<Loading /> <Loading />
{:else if $apiState !== "online"} {:else if $apiState !== "online"}