From d2a1d836337e9886fb0eb7bf7e9c5e4454ee63b1 Mon Sep 17 00:00:00 2001 From: Dirk van Zon Date: Mon, 4 May 2026 14:50:45 +0200 Subject: [PATCH] Added debounce to calculate layout function --- src/App.vue | 4 ++-- src/components.d.ts | 2 +- src/components/AlbumList.vue | 2 +- src/components/CassetteActionsBar.vue | 6 +++--- src/components/PlaylistList.vue | 2 +- src/components/UnavailableCassetteItem.vue | 2 +- src/components/UnavailableTracksList.vue | 2 +- src/components/cassette/Cassette.vue | 8 ++++---- src/components/cassette/CassetteItem.vue | 2 +- src/components/cassette/CassetteSide.vue | 2 +- src/pages/index.vue | 2 +- src/stores/cassette.alert.rules.ts | 6 +++--- src/stores/layout.ts | 7 ++++++- 13 files changed, 26 insertions(+), 21 deletions(-) diff --git a/src/App.vue b/src/App.vue index 6d26210..e77311d 100644 --- a/src/App.vue +++ b/src/App.vue @@ -47,7 +47,7 @@ function anchor() { position: trackLayout.position }) } - layoutStore.calculateLayout() + layoutStore.calculateLayoutDebounced() if (trackStore.lastSelectedTrackId) { trackStore.selectedTracks = [trackStore.lastSelectedTrackId] } @@ -57,7 +57,7 @@ function unanchor() { for (const id of trackStore.selectedTracks) { anchorStore.removeAnchor(id) } - layoutStore.calculateLayout() + layoutStore.calculateLayoutDebounced() if (trackStore.lastSelectedTrackId) { trackStore.selectedTracks = [trackStore.lastSelectedTrackId] } diff --git a/src/components.d.ts b/src/components.d.ts index ff0cf3b..0386c36 100644 --- a/src/components.d.ts +++ b/src/components.d.ts @@ -1,4 +1,4 @@ - +/* eslint-disable */ // @ts-nocheck // biome-ignore lint: disable // oxlint-disable diff --git a/src/components/AlbumList.vue b/src/components/AlbumList.vue index 4bde27c..5c2de65 100644 --- a/src/components/AlbumList.vue +++ b/src/components/AlbumList.vue @@ -17,7 +17,7 @@ const infiniteScrollRef = useTemplateRef>(' async function SelectItem(id: string) { await albumsStore.FetchAlbumTracks(id) - layoutStore.calculateLayout() + layoutStore.calculateLayoutDebounced() } function reset() { diff --git a/src/components/CassetteActionsBar.vue b/src/components/CassetteActionsBar.vue index bcc660e..2f2736a 100644 --- a/src/components/CassetteActionsBar.vue +++ b/src/components/CassetteActionsBar.vue @@ -18,7 +18,7 @@ const selectedSortType = computed({ function addCassette() { cassetteStore.addCassette() - layoutStore.calculateLayout() + layoutStore.calculateLayoutDebounced() } function removeSource(sourceId: string) { @@ -27,7 +27,7 @@ function removeSource(sourceId: string) { removedTracks.forEach(trackId => { anchorStore.removeAnchor(trackId) }) - layoutStore.calculateLayout() + layoutStore.calculateLayoutDebounced() } const sources = computed(() => { @@ -63,7 +63,7 @@ const menuBadgeContent = computed(() => trackStore.unavailableTrackIds.length > + @update:modelValue="layoutStore.calculateLayoutDebounced" :disabled="!projectStore.hasSources">