diff --git a/changes/changelog.d/2133.bugfix b/changes/changelog.d/2133.bugfix new file mode 100644 index 000000000..9768ff5a3 --- /dev/null +++ b/changes/changelog.d/2133.bugfix @@ -0,0 +1 @@ +Fixed stale data in indexedDB after logout (#2133) diff --git a/front/src/store/auth.ts b/front/src/store/auth.ts index 1326dc883..a8b581890 100644 --- a/front/src/store/auth.ts +++ b/front/src/store/auth.ts @@ -7,6 +7,9 @@ import axios from 'axios' import useLogger from '~/composables/useLogger' import useFormData from '~/composables/useFormData' +import { clear as clearIDB } from 'idb-keyval' +import { useQueue } from '~/composables/audio/queue' + export type Permission = 'settings' | 'library' | 'moderation' export interface State { authenticated: boolean @@ -167,6 +170,7 @@ const store: Module = { } catch (error) { console.log('Error while logging out, probably logged in via oauth') } + const modules = [ 'auth', 'favorites', @@ -175,9 +179,20 @@ const store: Module = { 'queue', 'radios' ] - modules.forEach(m => { - commit(`${m}/reset`, null, { root: true }) - }) + + for (const module of modules) { + commit(`${module}/reset`, null, { root: true }) + } + + // Clear session storage + sessionStorage.clear() + + // Clear track queue + await useQueue().clear() + + // Clear all indexedDB data + await clearIDB() + logger.info('Log out, goodbye!') },