@@ -16,6 +16,7 @@ import {
16
16
} from ' ~/components/views/panel/use-panel-buttons' ;
17
17
import { NotificationService } from ' ~/services/notification.service' ;
18
18
import { ResolveExternalLinks } from ' ~/settings/external.links' ;
19
+ import { useAppStateStoreRefs } from ' ~/stores/app-state.store' ;
19
20
import {
20
21
DefaultListId ,
21
22
DefaultLists ,
@@ -249,11 +250,14 @@ const titleUrl = computed(() => {
249
250
250
251
const releaseDate = computed (() => activeItem .value ?.first_aired );
251
252
253
+ const { panelDirty } = useAppStateStoreRefs ();
254
+
252
255
const onListUpdate = async (value : ListEntity [' id' ], remove : boolean ) => {
253
256
if (! panelType .value || ! activeItem .value ?.ids ) return ;
254
257
const _list = myLists .value .find (list => list .id === value );
255
258
if (! _list ) return ;
256
259
260
+ panelDirty .value = true ;
257
261
await addToOrRemoveFromList ({
258
262
list: _list ,
259
263
itemType: panelType .value ,
@@ -271,15 +275,19 @@ const onCollectionUpdate = async (
271
275
date = releaseDate .value ;
272
276
}
273
277
274
- await addToOrRemoveFromList ({
275
- list: DefaultLists .ShowCollection ,
276
- itemType: panelType .value ,
277
- itemIds: activeItem .value .ids ,
278
- date ,
279
- remove: value === PanelButtonsOption .Remove ,
280
- });
281
- if (! showId .value ) return ;
282
- await fetchShowCollectionProgress (showId .value , { force: true });
278
+ try {
279
+ await addToOrRemoveFromList ({
280
+ list: DefaultLists .ShowCollection ,
281
+ itemType: panelType .value ,
282
+ itemIds: activeItem .value .ids ,
283
+ date ,
284
+ remove: value === PanelButtonsOption .Remove ,
285
+ });
286
+ if (! showId .value ) return ;
287
+ await fetchShowCollectionProgress (showId .value , { force: true });
288
+ } finally {
289
+ panelDirty .value = true ;
290
+ }
283
291
};
284
292
285
293
const onWatchedUpdate = async (
@@ -291,6 +299,7 @@ const onWatchedUpdate = async (
291
299
date = releaseDate .value ;
292
300
}
293
301
302
+ panelDirty .value = true ;
294
303
await addToOrRemoveFromList ({
295
304
list: {
296
305
id: DefaultListId .History ,
@@ -328,7 +337,10 @@ const onCheckin = async (cancel: boolean) => {
328
337
i18n (' checkin_failed' , ' watching' ),
329
338
new Error (' No episode id' ),
330
339
);
331
- } else await checkin ({ episode: { ids: episode .value .ids } });
340
+ } else {
341
+ panelDirty .value = true ;
342
+ await checkin ({ episode: { ids: episode .value .ids } });
343
+ }
332
344
333
345
if (! showId .value ) return ;
334
346
await fetchShowProgress (showId .value , { force: true });
0 commit comments