Skip to content

Commit a43ed3d

Browse files
committed
fix(simkl): correctly assign simkl account to user
1 parent 191946c commit a43ed3d

File tree

2 files changed

+11
-11
lines changed

2 files changed

+11
-11
lines changed

src/components/views/settings/SettingsConnect.vue

+3-3
Original file line numberDiff line numberDiff line change
@@ -55,10 +55,10 @@ const loginLogout = () => {
5555
const { fetchUserSettings } = useSimklStore();
5656
useWatchActivated(
5757
watch(
58-
user,
59-
async _user => {
58+
[user, isSimklAuthenticated],
59+
async ([_user, _authenticated]) => {
6060
if (!_user || _user === defaultUser) return;
61-
if (!isSimklAuthenticated.value) return;
61+
if (!_authenticated) return;
6262
await fetchUserSettings(_user);
6363
},
6464
{

src/stores/data/simkl.store.ts

+8-8
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { defineStore, storeToRefs } from 'pinia';
22

3-
import { computed, reactive, ref } from 'vue';
3+
import { computed, reactive } from 'vue';
44

55
import type { SimklAnime, SimklMovie, SimklShow, SimklUserSettings } from '@dvcol/simkl-http-client/models';
66

@@ -15,7 +15,7 @@ const SimklStoreConstants = {
1515
} as const;
1616

1717
type SimklStoreState = {
18-
simklEnabled: boolean;
18+
simklEnabled: Record<string, boolean>;
1919
};
2020

2121
type UserSettings = Record<string, SimklUserSettings>;
@@ -29,7 +29,7 @@ type LoadingDictionary = Record<string, boolean>;
2929

3030
export const useSimklStore = defineStore(SimklStoreConstants.Store, () => {
3131
const { user, isSimklAuthenticated } = useAuthSettingsStoreRefs();
32-
const simklEnabled = ref(false);
32+
const simklEnabled = reactive<SimklStoreState['simklEnabled']>({});
3333
const userSettings = reactive<UserSettings>({});
3434
const shows = reactive<ShowDictionary>({});
3535
const movies = reactive<MovieDictionary>({});
@@ -46,21 +46,21 @@ export const useSimklStore = defineStore(SimklStoreConstants.Store, () => {
4646

4747
const saveState = debounce(() =>
4848
storage.local.set<SimklStoreState>(SimklStoreConstants.Store, {
49-
simklEnabled: simklEnabled.value,
49+
simklEnabled,
5050
}),
5151
);
5252

5353
const restoreState = async () => {
5454
const state = await storage.local.get<SimklStoreState>(SimklStoreConstants.Store);
55-
if (state?.simklEnabled !== undefined) simklEnabled.value = state.simklEnabled;
55+
if (state?.simklEnabled !== undefined) Object.assign(simklEnabled, state.simklEnabled);
5656
};
5757

5858
/**
5959
* Change the current user settings for a specific account
6060
* @param _settings
6161
* @param account
6262
*/
63-
const setUserSetting = async (_settings?: SimklUserSettings, account = _settings?.user?.name) => {
63+
const setUserSetting = async (_settings?: SimklUserSettings, account = user.value) => {
6464
if (!account) throw new Error('Account is not set');
6565
if (!_settings) {
6666
delete userSettings[account];
@@ -180,9 +180,9 @@ export const useSimklStore = defineStore(SimklStoreConstants.Store, () => {
180180
setUserSetting,
181181
simklAllowed,
182182
simklEnabled: computed({
183-
get: () => simklAllowed.value && simklEnabled.value,
183+
get: () => simklAllowed.value && simklEnabled[user.value],
184184
set: (value: boolean) => {
185-
simklEnabled.value = value;
185+
simklEnabled[user.value] = value;
186186
saveState().catch(err => Logger.error('Failed to save simkl state', { value, err }));
187187
},
188188
}),

0 commit comments

Comments
 (0)