// SPDX-FileCopyrightText: WTF Kooperative eG // // SPDX-License-Identifier: AGPL-3.0-or-later import { createStore } from 'vuex' import search from './search' const localStorageKeys = { currentUserId: 'ki_current_user_id', token: 'ki_token', } export default createStore({ modules: { search, }, state() { return { currentUserId: JSON.parse(localStorage.getItem(localStorageKeys.currentUserId)), token: JSON.parse(localStorage.getItem(localStorageKeys.token)), currentProfile: null } }, mutations: { clearCurrentUserId(state) { state.currentUserId = null localStorage.removeItem(localStorageKeys.currentUserId) }, setCurrentUserId(state, currentUserId) { state.currentUserId = currentUserId localStorage.setItem( localStorageKeys.currentUserId, JSON.stringify(currentUserId) ) }, clearToken(state) { state.token = null localStorage.removeItem(localStorageKeys.token) }, setToken(state, token) { state.token = token localStorage.setItem(localStorageKeys.token, JSON.stringify(token)) }, setCurrentProfile(state, profile) { state.currentProfile = profile } }, actions: { clear(context) { context.commit('clearCurrentUserId') context.commit('clearToken') } } })