mirror of
https://github.com/morpheus65535/bazarr.git
synced 2025-04-23 14:17:46 -04:00
no log: Handle "reset-*-wanted" events
This commit is contained in:
parent
0e9cd7d05f
commit
2ed054f41b
8 changed files with 55 additions and 3 deletions
|
@ -3,15 +3,19 @@ import {
|
|||
episodesMarkBlacklistDirty,
|
||||
episodesMarkDirtyById,
|
||||
episodesRemoveById,
|
||||
episodesResetHistory,
|
||||
movieMarkBlacklistDirty,
|
||||
movieMarkDirtyById,
|
||||
movieMarkWantedDirtyById,
|
||||
movieRemoveById,
|
||||
movieRemoveWantedById,
|
||||
movieResetHistory,
|
||||
movieResetWanted,
|
||||
seriesMarkDirtyById,
|
||||
seriesMarkWantedDirtyById,
|
||||
seriesRemoveById,
|
||||
seriesRemoveWantedById,
|
||||
seriesResetWanted,
|
||||
siteAddNotifications,
|
||||
siteAddProgress,
|
||||
siteBootstrap,
|
||||
|
@ -124,7 +128,7 @@ export function createDefaultReducer(): SocketIO.Reducer[] {
|
|||
},
|
||||
{
|
||||
key: "movie-history",
|
||||
// any: bindReduxAction(movieMarkHistoryDirty),
|
||||
any: bindReduxAction(movieResetHistory),
|
||||
},
|
||||
{
|
||||
key: "movie-blacklist",
|
||||
|
@ -132,12 +136,20 @@ export function createDefaultReducer(): SocketIO.Reducer[] {
|
|||
},
|
||||
{
|
||||
key: "episode-history",
|
||||
// any: bindReduxAction(episodesMarkHistoryDirty),
|
||||
any: bindReduxAction(episodesResetHistory),
|
||||
},
|
||||
{
|
||||
key: "episode-blacklist",
|
||||
any: bindReduxAction(episodesMarkBlacklistDirty),
|
||||
},
|
||||
{
|
||||
key: "reset-episode-wanted",
|
||||
any: bindReduxAction(seriesResetWanted),
|
||||
},
|
||||
{
|
||||
key: "reset-movie-wanted",
|
||||
any: bindReduxAction(movieResetWanted),
|
||||
},
|
||||
{
|
||||
key: "task",
|
||||
any: bindReduxAction(systemMarkTasksDirty),
|
||||
|
|
2
frontend/src/@modules/socketio/socket.d.ts
vendored
2
frontend/src/@modules/socketio/socket.d.ts
vendored
|
@ -16,6 +16,8 @@ declare namespace SocketIO {
|
|||
| "episode-history"
|
||||
| "movie-blacklist"
|
||||
| "movie-history"
|
||||
| "reset-episode-wanted"
|
||||
| "reset-movie-wanted"
|
||||
| "badges"
|
||||
| "task"
|
||||
| "settings"
|
||||
|
|
|
@ -124,6 +124,7 @@ const rangeRejected = createAsyncThunk(
|
|||
);
|
||||
const removeIds = createAction<number[]>("remove/id");
|
||||
const dirty = createAction<number[]>("dirty/id");
|
||||
const reset = createAction("reset");
|
||||
|
||||
const reducer = createReducer(defaultState, (builder) => {
|
||||
createAsyncEntityReducer(builder, (s) => s.entities, {
|
||||
|
@ -132,6 +133,7 @@ const reducer = createReducer(defaultState, (builder) => {
|
|||
ids: idsResolved,
|
||||
dirty,
|
||||
removeIds,
|
||||
reset,
|
||||
});
|
||||
createAsyncEntityReducer(builder, (s) => s.entities, {
|
||||
all: allRejected,
|
||||
|
@ -197,6 +199,14 @@ it("entity update all rejected", async () => {
|
|||
});
|
||||
});
|
||||
|
||||
it("entity reset", async () => {
|
||||
await store.dispatch(allResolved());
|
||||
store.dispatch(reset());
|
||||
use((entities) => {
|
||||
expect(entities).toEqual(defaultState.entities);
|
||||
});
|
||||
});
|
||||
|
||||
it("entity mark dirty", async () => {
|
||||
await store.dispatch(allResolved());
|
||||
|
||||
|
|
|
@ -43,6 +43,8 @@ export const movieRemoveWantedById = createAction<number[]>(
|
|||
"movies/wanted/remove/id"
|
||||
);
|
||||
|
||||
export const movieResetWanted = createAction("movies/wanted/reset");
|
||||
|
||||
export const movieMarkWantedDirtyById = createAction<number[]>(
|
||||
"movies/wanted/mark_dirty/id"
|
||||
);
|
||||
|
@ -67,6 +69,8 @@ export const movieMarkHistoryDirty = createAction<number[]>(
|
|||
"movies/history/mark_dirty"
|
||||
);
|
||||
|
||||
export const movieResetHistory = createAction("movie/history/reset");
|
||||
|
||||
export const movieUpdateBlacklist = createAsyncThunk(
|
||||
"movies/blacklist/update",
|
||||
async () => {
|
||||
|
|
|
@ -21,6 +21,8 @@ export const seriesRemoveWantedById = createAction<number[]>(
|
|||
"series/wanted/remove/id"
|
||||
);
|
||||
|
||||
export const seriesResetWanted = createAction("series/wanted/reset");
|
||||
|
||||
export const seriesMarkWantedDirtyById = createAction<number[]>(
|
||||
"series/wanted/mark_dirty/episode_id"
|
||||
);
|
||||
|
@ -89,6 +91,8 @@ export const episodesMarkHistoryDirty = createAction<number[]>(
|
|||
"episodes/history/update"
|
||||
);
|
||||
|
||||
export const episodesResetHistory = createAction("episodes/history/reset");
|
||||
|
||||
export const episodesUpdateBlacklist = createAsyncThunk(
|
||||
"episodes/blacklist/update",
|
||||
async () => {
|
||||
|
|
|
@ -6,6 +6,8 @@ import {
|
|||
movieMarkWantedDirtyById,
|
||||
movieRemoveById,
|
||||
movieRemoveWantedById,
|
||||
movieResetHistory,
|
||||
movieResetWanted,
|
||||
movieUpdateAll,
|
||||
movieUpdateBlacklist,
|
||||
movieUpdateById,
|
||||
|
@ -48,11 +50,13 @@ const reducer = createReducer(defaultMovie, (builder) => {
|
|||
ids: movieUpdateWantedById,
|
||||
removeIds: movieRemoveWantedById,
|
||||
dirty: movieMarkWantedDirtyById,
|
||||
reset: movieResetWanted,
|
||||
});
|
||||
|
||||
createAsyncEntityReducer(builder, (s) => s.historyList, {
|
||||
range: movieUpdateHistoryByRange,
|
||||
dirty: movieMarkHistoryDirty,
|
||||
reset: movieResetHistory,
|
||||
});
|
||||
|
||||
createAsyncItemReducer(builder, (s) => s.blacklist, {
|
||||
|
|
|
@ -4,6 +4,7 @@ import {
|
|||
episodesMarkDirtyById,
|
||||
episodesMarkHistoryDirty,
|
||||
episodesRemoveById,
|
||||
episodesResetHistory,
|
||||
episodesUpdateBlacklist,
|
||||
episodesUpdateHistoryByRange,
|
||||
episodeUpdateById,
|
||||
|
@ -12,6 +13,7 @@ import {
|
|||
seriesMarkWantedDirtyById,
|
||||
seriesRemoveById,
|
||||
seriesRemoveWantedById,
|
||||
seriesResetWanted,
|
||||
seriesUpdateAll,
|
||||
seriesUpdateById,
|
||||
seriesUpdateByRange,
|
||||
|
@ -70,11 +72,13 @@ const reducer = createReducer(defaultSeries, (builder) => {
|
|||
ids: seriesUpdateWantedById,
|
||||
removeIds: seriesRemoveWantedById,
|
||||
dirty: seriesMarkWantedDirtyById,
|
||||
reset: seriesResetWanted,
|
||||
});
|
||||
|
||||
createAsyncEntityReducer(builder, (s) => s.historyList, {
|
||||
range: episodesUpdateHistoryByRange,
|
||||
dirty: episodesMarkHistoryDirty,
|
||||
reset: episodesResetHistory,
|
||||
});
|
||||
|
||||
createAsyncItemReducer(builder, (s) => s.blacklist, {
|
||||
|
|
|
@ -22,6 +22,7 @@ interface ActionParam<T, ID = null> {
|
|||
all?: AsyncThunk<T, void, {}>;
|
||||
ids?: AsyncThunk<T, ID[], {}>;
|
||||
removeIds?: ActionCreatorWithPayload<ID[]>;
|
||||
reset?: ActionCreatorWithoutPayload;
|
||||
dirty?: ID extends null
|
||||
? ActionCreatorWithoutPayload
|
||||
: ActionCreatorWithPayload<ID[]>;
|
||||
|
@ -154,7 +155,7 @@ export function createAsyncEntityReducer<S, T, ID extends Async.IdType>(
|
|||
getEntity: (state: Draft<S>) => Draft<Async.Entity<T>>,
|
||||
actions: ActionParam<AsyncDataWrapper<T>, ID>
|
||||
) {
|
||||
const { all, removeIds, ids, range, dirty } = actions;
|
||||
const { all, removeIds, ids, range, dirty, reset } = actions;
|
||||
|
||||
const checkSizeUpdate = (entity: Draft<Async.Entity<T>>, newSize: number) => {
|
||||
if (entity.content.ids.length !== newSize) {
|
||||
|
@ -324,4 +325,15 @@ export function createAsyncEntityReducer<S, T, ID extends Async.IdType>(
|
|||
const entity = getEntity(state);
|
||||
ReducerUtility.markDirty(entity, action.payload.map(String));
|
||||
});
|
||||
|
||||
reset &&
|
||||
builder.addCase(reset, (state) => {
|
||||
const entity = getEntity(state);
|
||||
entity.content.entities = {};
|
||||
entity.content.ids = [];
|
||||
entity.didLoaded = [];
|
||||
entity.dirtyEntities = [];
|
||||
entity.error = null;
|
||||
entity.state = "uninitialized";
|
||||
});
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue