From eba18cede3c55ebebb0781ccf3c1d9dd91927108 Mon Sep 17 00:00:00 2001 From: wvffle Date: Fri, 28 Oct 2022 22:09:51 +0000 Subject: [PATCH] Cleanup indexedDB when queue clears and when instance changes --- front/src/composables/audio/queue.ts | 6 +++++- front/src/store/instance.ts | 4 ++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/front/src/composables/audio/queue.ts b/front/src/composables/audio/queue.ts index 81b4d4109..00471f745 100644 --- a/front/src/composables/audio/queue.ts +++ b/front/src/composables/audio/queue.ts @@ -3,7 +3,7 @@ import type { Track, Upload } from '~/types' import { createGlobalState, useNow, useStorage, useTimeAgo, whenever } from '@vueuse/core' import { shuffle as shuffleArray, sum } from 'lodash-es' import { computed, ref, shallowReactive, watchEffect } from 'vue' -import { getMany, setMany } from 'idb-keyval' +import { delMany, getMany, setMany } from 'idb-keyval' import { useClamp } from '@vueuse/math' import { looping, LoopingMode, isPlaying } from '~/composables/audio/player' @@ -277,8 +277,12 @@ export const useQueue = createGlobalState(() => { currentSound.value?.pause() currentSound.value?.seekTo(0) currentSound.value?.dispose() + clearRadio.value = true + + const lastTracks = [...tracks.value] tracks.value.length = 0 + await delMany(lastTracks) } // Radio queue populating diff --git a/front/src/store/instance.ts b/front/src/store/instance.ts index 2e527649b..72341bf5e 100644 --- a/front/src/store/instance.ts +++ b/front/src/store/instance.ts @@ -4,6 +4,7 @@ import type { RootState } from '~/store/index' import axios from 'axios' import { merge } from 'lodash-es' import useLogger from '~/composables/useLogger' +import { useQueue } from '~/composables/audio/queue' export interface State { frontSettings: FrontendSettings @@ -162,6 +163,9 @@ const store: Module = { modules.forEach(m => { commit(`${m}/reset`, null, { root: true }) }) + + const { clear } = useQueue() + return clear() }, async fetchSettings ({ commit }) { const response = await axios.get('instance/settings/')