1
1
import { defineStore , storeToRefs } from 'pinia' ;
2
2
3
- import { computed , reactive } from 'vue' ;
3
+ import { computed , reactive , watch } from 'vue' ;
4
4
5
5
import type { TraktEpisodeExtended , TraktEpisodeShort } from '~/models/trakt/trakt-episode.model' ;
6
6
import type { TraktCollectionProgress , TraktWatchedProgress } from '~/models/trakt/trakt-progress.model' ;
@@ -13,6 +13,8 @@ import { type ShowProgress, ShowProgressType } from '~/models/list-scroll.model'
13
13
import { NotificationService } from '~/services/notification.service' ;
14
14
import { TraktService } from '~/services/trakt.service' ;
15
15
import { logger } from '~/stores/settings/log.store' ;
16
+ import { useUserSettingsStoreRefs } from '~/stores/settings/user.store' ;
17
+ import { clearProxy } from '~/utils/vue.utils' ;
16
18
17
19
export type ShowSeasons = Record < number , TraktSeasonExtended > ;
18
20
@@ -76,20 +78,25 @@ export const useShowStore = defineStore('data.show', () => {
76
78
const showWatchedProgressLoading = reactive < LoadingDictionary > ( { } ) ;
77
79
const showCollectionProgressLoading = reactive < LoadingDictionary > ( { } ) ;
78
80
81
+ const clearProgressState = ( ) => {
82
+ clearProxy ( showsWatchedProgress ) ;
83
+ clearProxy ( showsCollectionProgress ) ;
84
+
85
+ clearProxy ( showWatchedProgressLoading ) ;
86
+ clearProxy ( showCollectionProgressLoading ) ;
87
+ } ;
88
+
79
89
const clearState = ( ) => {
80
- Object . assign ( shows , { } ) ;
81
- Object . assign ( showsSeasons , { } ) ;
82
- Object . assign ( showsSeasonEpisodes , { } ) ;
83
- Object . assign ( showsEpisodes , { } ) ;
84
- Object . assign ( showsWatchedProgress , { } ) ;
85
- Object . assign ( showsCollectionProgress , { } ) ;
86
-
87
- Object . assign ( showsLoading , { } ) ;
88
- Object . assign ( showsSeasonsLoading , { } ) ;
89
- Object . assign ( showsSeasonEpisodesLoading , { } ) ;
90
- Object . assign ( showsEpisodesLoading , { } ) ;
91
- Object . assign ( showWatchedProgressLoading , { } ) ;
92
- Object . assign ( showCollectionProgressLoading , { } ) ;
90
+ clearProxy ( shows ) ;
91
+ clearProxy ( showsSeasons ) ;
92
+ clearProxy ( showsSeasonEpisodes ) ;
93
+ clearProxy ( showsEpisodes ) ;
94
+
95
+ clearProxy ( showsLoading ) ;
96
+ clearProxy ( showsSeasonsLoading ) ;
97
+ clearProxy ( showsSeasonEpisodesLoading ) ;
98
+ clearProxy ( showsEpisodesLoading ) ;
99
+ clearProgressState ( ) ;
93
100
} ;
94
101
95
102
const fetchShow = async ( id : string ) => {
@@ -273,8 +280,18 @@ export const useShowStore = defineStore('data.show', () => {
273
280
} ) ;
274
281
} ;
275
282
283
+ const { user } = useUserSettingsStoreRefs ( ) ;
284
+ const initShowStore = ( ) => {
285
+ watch ( user , ( ) => {
286
+ clearProgressState ( ) ;
287
+ console . info ( 'user change, clearing state' , user . value , showsWatchedProgress ) ;
288
+ } ) ;
289
+ } ;
290
+
276
291
return {
292
+ initShowStore,
277
293
clearState,
294
+ clearProgressState,
278
295
getShow,
279
296
fetchShow,
280
297
fetchShowProgress,
0 commit comments