From: PhiTux Date: Thu, 25 Sep 2025 17:37:53 +0000 (+0200) Subject: fix for loading tags in reading-mode X-Git-Url: http://git.99rst.org/?a=commitdiff_plain;h=dd73a299b938129f75bd9dafb6d9a5bf08d36f2c;p=DailyTxT.git fix for loading tags in reading-mode --- diff --git a/frontend/src/lib/tagStore.js b/frontend/src/lib/tagStore.js index 1e6cc57..7af1f9d 100644 --- a/frontend/src/lib/tagStore.js +++ b/frontend/src/lib/tagStore.js @@ -1,3 +1,4 @@ import {writable} from 'svelte/store'; -export let tags = writable([]); \ No newline at end of file +export let tags = writable([]); +export let tagsLoaded = writable(false); \ No newline at end of file diff --git a/frontend/src/routes/(authed)/+layout.svelte b/frontend/src/routes/(authed)/+layout.svelte index 540b6e8..48b08b6 100644 --- a/frontend/src/routes/(authed)/+layout.svelte +++ b/frontend/src/routes/(authed)/+layout.svelte @@ -11,7 +11,7 @@ darkMode } from '$lib/settingsStore.js'; import { API_URL } from '$lib/APIurl.js'; - import { tags } from '$lib/tagStore.js'; + import { tags, tagsLoaded } from '$lib/tagStore.js'; import TagModal from '$lib/TagModal.svelte'; import { alwaysShowSidenav, @@ -205,6 +205,7 @@ getUserSettings(); getTemplates(); getVersionInfo(); + loadTags(); if (page.url.pathname === '/read') { $readingMode = true; @@ -217,6 +218,21 @@ }); }); + function loadTags() { + axios + .get(API_URL + '/logs/getTags') + .then((response) => { + $tags = response.data; + $tagsLoaded = true; + }) + .catch((error) => { + console.error(error); + // toast + const toast = new bootstrap.Toast(document.getElementById('toastErrorLoadingTags')); + toast.show(); + }); + } + function logout(errorCode) { axios .get(API_URL + '/users/logout') diff --git a/frontend/src/routes/(authed)/read/+page.svelte b/frontend/src/routes/(authed)/read/+page.svelte index 7773867..4ffa668 100644 --- a/frontend/src/routes/(authed)/read/+page.svelte +++ b/frontend/src/routes/(authed)/read/+page.svelte @@ -7,13 +7,13 @@ import { onMount } from 'svelte'; import { marked } from 'marked'; import Tag from '$lib/Tag.svelte'; - import { tags } from '$lib/tagStore.js'; + import { tags, tagsLoaded } from '$lib/tagStore.js'; import FileList from '$lib/FileList.svelte'; import { autoLoadImagesThisDevice, settings } from '$lib/settingsStore'; import { faCloudArrowDown } from '@fortawesome/free-solid-svg-icons'; import { Fa } from 'svelte-fa'; import ImageViewer from '$lib/ImageViewer.svelte'; - import { alwaysShowSidenav, needsReauthentication, isAuthenticated } from '$lib/helpers.js'; + import { alwaysShowSidenav } from '$lib/helpers.js'; import { getTranslate } from '@tolgee/svelte'; const { t } = getTranslate(); @@ -65,13 +65,18 @@ } onMount(() => { - loadMonthForReading(); scrollAreaEl = document.getElementById('scrollArea'); if (scrollAreaEl) { scrollAreaEl.addEventListener('scroll', onScrollHandler, { passive: true }); } }); + $effect(() => { + if ($tagsLoaded) { + loadMonthForReading(); + } + }); + let currentMonth = $cal.currentMonth; let currentYear = $cal.currentYear; $effect(() => { @@ -400,62 +405,76 @@
- {#each logs as log (log.day)} - - {#if ('text' in log && log.text !== '') || log.tags?.length > 0 || log.files?.length > 0} -
-
-

{log.day}

-

- - {new Date($cal.currentYear, $cal.currentMonth, log.day).toLocaleDateString( - 'locale', - { - weekday: 'long' - } - )} - -

-
-
- {#if log.text && log.text !== ''} -
- {@html marked.parse(log.text)} -
- {/if} - {#if log.tags?.length > 0} -
- {#each log.tags as t} - tag.id === t)} /> - {/each} -
- {/if} - {#if log.images?.length > 0} - {#if !autoLoadImages && log.images.find((image) => !image.src && !image.loading)} -
- + {#if logs.length > 0} + {#each logs as log (log.day)} + + {#if ('text' in log && log.text !== '') || log.tags?.length > 0 || log.files?.length > 0} +
+
+

{log.day}

+

+ + {new Date($cal.currentYear, $cal.currentMonth, log.day).toLocaleDateString( + 'locale', + { + weekday: 'long' + } + )} + +

+
+
+ {#if log.text && log.text !== ''} +
+ {@html marked.parse(log.text)}
- {:else} - {/if} + {#if log.tags?.length > 0} +
+ {#each log.tags as t} + tag.id === t)} /> + {/each} +
+ {/if} + {#if log.images?.length > 0} + {#if !autoLoadImages && log.images.find((image) => !image.src && !image.loading)} +
+ +
+ {:else} + + {/if} + {/if} +
+ + {#if log.files && log.files.length > 0} +
+ +
{/if}
- - {#if log.files && log.files.length > 0} -
- -
- {/if} + {/if} + {/each} + {:else} +
+
+ {$t('read.no_entries')}
- {/if} - {/each} +
+ {/if}