1
1
import { defineStore , storeToRefs } from 'pinia' ;
2
2
3
- import { computed , reactive , ref } from 'vue' ;
3
+ import { computed , reactive } from 'vue' ;
4
4
5
5
import type { SimklAnime , SimklMovie , SimklShow , SimklUserSettings } from '@dvcol/simkl-http-client/models' ;
6
6
@@ -15,7 +15,7 @@ const SimklStoreConstants = {
15
15
} as const ;
16
16
17
17
type SimklStoreState = {
18
- simklEnabled : boolean ;
18
+ simklEnabled : Record < string , boolean > ;
19
19
} ;
20
20
21
21
type UserSettings = Record < string , SimklUserSettings > ;
@@ -29,7 +29,7 @@ type LoadingDictionary = Record<string, boolean>;
29
29
30
30
export const useSimklStore = defineStore ( SimklStoreConstants . Store , ( ) => {
31
31
const { user, isSimklAuthenticated } = useAuthSettingsStoreRefs ( ) ;
32
- const simklEnabled = ref ( false ) ;
32
+ const simklEnabled = reactive < SimklStoreState [ 'simklEnabled' ] > ( { } ) ;
33
33
const userSettings = reactive < UserSettings > ( { } ) ;
34
34
const shows = reactive < ShowDictionary > ( { } ) ;
35
35
const movies = reactive < MovieDictionary > ( { } ) ;
@@ -46,21 +46,21 @@ export const useSimklStore = defineStore(SimklStoreConstants.Store, () => {
46
46
47
47
const saveState = debounce ( ( ) =>
48
48
storage . local . set < SimklStoreState > ( SimklStoreConstants . Store , {
49
- simklEnabled : simklEnabled . value ,
49
+ simklEnabled,
50
50
} ) ,
51
51
) ;
52
52
53
53
const restoreState = async ( ) => {
54
54
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 ) ;
56
56
} ;
57
57
58
58
/**
59
59
* Change the current user settings for a specific account
60
60
* @param _settings
61
61
* @param account
62
62
*/
63
- const setUserSetting = async ( _settings ?: SimklUserSettings , account = _settings ?. user ?. name ) => {
63
+ const setUserSetting = async ( _settings ?: SimklUserSettings , account = user . value ) => {
64
64
if ( ! account ) throw new Error ( 'Account is not set' ) ;
65
65
if ( ! _settings ) {
66
66
delete userSettings [ account ] ;
@@ -180,9 +180,9 @@ export const useSimklStore = defineStore(SimklStoreConstants.Store, () => {
180
180
setUserSetting,
181
181
simklAllowed,
182
182
simklEnabled : computed ( {
183
- get : ( ) => simklAllowed . value && simklEnabled . value ,
183
+ get : ( ) => simklAllowed . value && simklEnabled [ user . value ] ,
184
184
set : ( value : boolean ) => {
185
- simklEnabled . value = value ;
185
+ simklEnabled [ user . value ] = value ;
186
186
saveState ( ) . catch ( err => Logger . error ( 'Failed to save simkl state' , { value, err } ) ) ;
187
187
} ,
188
188
} ) ,
0 commit comments