diff --git a/client/src/components/AppHeader.vue b/client/src/components/AppHeader.vue index e269f9fd1..3879e110a 100644 --- a/client/src/components/AppHeader.vue +++ b/client/src/components/AppHeader.vue @@ -1,7 +1,7 @@ + + diff --git a/client/src/features/library/composables/useLibraries.ts b/client/src/features/library/composables/useLibraries.ts index f3e67b61b..2a4786a76 100644 --- a/client/src/features/library/composables/useLibraries.ts +++ b/client/src/features/library/composables/useLibraries.ts @@ -3,6 +3,7 @@ import { api } from '@/lib/api' import type { Library } from '@projectx/types' const libraries = ref([]) +const loading = ref(false) let loaded = false let fetchPromise: Promise | null = null @@ -14,6 +15,7 @@ export function useLibraries() { async function refreshLibraries(): Promise { if (fetchPromise) return fetchPromise + loading.value = true fetchPromise = api('/api/v1/libraries') .then(async (res) => { if (!res.ok) return @@ -22,6 +24,7 @@ export function useLibraries() { }) .finally(() => { fetchPromise = null + loading.value = false }) return fetchPromise } @@ -35,5 +38,5 @@ export function useLibraries() { if (!res.ok) throw new Error('Failed to reorder libraries') } - return { libraries, fetchLibraries, refreshLibraries, reorderLibraries } + return { libraries, loading, fetchLibraries, refreshLibraries, reorderLibraries } } diff --git a/client/src/features/settings/LibrariesSettings.vue b/client/src/features/settings/LibrariesSettings.vue index b483604a5..78892a818 100644 --- a/client/src/features/settings/LibrariesSettings.vue +++ b/client/src/features/settings/LibrariesSettings.vue @@ -308,7 +308,7 @@ function coverRefreshLabel(libraryId: number): string { diff --git a/client/src/views/DashboardView.vue b/client/src/views/DashboardView.vue index db1f6ab89..c827b7f35 100644 --- a/client/src/views/DashboardView.vue +++ b/client/src/views/DashboardView.vue @@ -1,26 +1,37 @@