From f992b9a0def51ad34286ed7ca797afbd88f5fd32 Mon Sep 17 00:00:00 2001 From: DingDongSoLong4 <99329275+DingDongSoLong4@users.noreply.github.com> Date: Tue, 28 Feb 2023 01:12:14 +0200 Subject: [PATCH] Fix filter hooks (#3482) --- ui/v2.5/src/core/performers.ts | 26 +++++++++++++++----------- ui/v2.5/src/core/studios.ts | 17 ++++------------- ui/v2.5/src/core/tags.ts | 26 +++++++++++++++----------- 3 files changed, 34 insertions(+), 35 deletions(-) diff --git a/ui/v2.5/src/core/performers.ts b/ui/v2.5/src/core/performers.ts index 44787b121..e13ac8885 100644 --- a/ui/v2.5/src/core/performers.ts +++ b/ui/v2.5/src/core/performers.ts @@ -15,25 +15,29 @@ export const usePerformerFilterHook = ( return c.criterionOption.type === "performers"; }) as PerformersCriterion; - if ( - performerCriterion && - (performerCriterion.modifier === GQL.CriterionModifier.IncludesAll || - performerCriterion.modifier === GQL.CriterionModifier.Includes) - ) { - // add the performer if not present + if (performerCriterion) { if ( - !performerCriterion.value.find((p) => { - return p.id === performer.id; - }) + performerCriterion.modifier === GQL.CriterionModifier.IncludesAll || + performerCriterion.modifier === GQL.CriterionModifier.Includes ) { - performerCriterion.value.push(performerValue); + // add the performer if not present + if ( + !performerCriterion.value.find((p) => { + return p.id === performer.id; + }) + ) { + performerCriterion.value.push(performerValue); + } + } else { + // overwrite + performerCriterion.value = [performerValue]; } performerCriterion.modifier = GQL.CriterionModifier.IncludesAll; } else { - // overwrite performerCriterion = new PerformersCriterion(); performerCriterion.value = [performerValue]; + performerCriterion.modifier = GQL.CriterionModifier.IncludesAll; filter.criteria.push(performerCriterion); } diff --git a/ui/v2.5/src/core/studios.ts b/ui/v2.5/src/core/studios.ts index cee81bcc4..ef93f191c 100644 --- a/ui/v2.5/src/core/studios.ts +++ b/ui/v2.5/src/core/studios.ts @@ -14,21 +14,11 @@ export const useStudioFilterHook = (studio: GQL.StudioDataFragment) => { return c.criterionOption.type === "studios"; }) as StudiosCriterion; - if ( - studioCriterion && - (studioCriterion.modifier === GQL.CriterionModifier.IncludesAll || - studioCriterion.modifier === GQL.CriterionModifier.Includes) - ) { + if (studioCriterion) { // we should be showing studio only. Remove other values - studioCriterion.value.items = studioCriterion.value.items.filter( - (v) => v.id === studio.id - ); - - if (studioCriterion.value.items.length === 0) { - studioCriterion.value.items.push(studioValue); - } + studioCriterion.value.items = [studioValue]; + studioCriterion.modifier = GQL.CriterionModifier.Includes; } else { - // overwrite studioCriterion = new StudiosCriterion(); studioCriterion.value = { items: [studioValue], @@ -36,6 +26,7 @@ export const useStudioFilterHook = (studio: GQL.StudioDataFragment) => { ? -1 : 0, }; + studioCriterion.modifier = GQL.CriterionModifier.Includes; filter.criteria.push(studioCriterion); } diff --git a/ui/v2.5/src/core/tags.ts b/ui/v2.5/src/core/tags.ts index e24f23fcb..3ec042c84 100644 --- a/ui/v2.5/src/core/tags.ts +++ b/ui/v2.5/src/core/tags.ts @@ -19,23 +19,26 @@ export const useTagFilterHook = (tag: GQL.TagDataFragment) => { return c.criterionOption.type === "tags"; }) as TagsCriterion; - if ( - tagCriterion && - (tagCriterion.modifier === GQL.CriterionModifier.IncludesAll || - tagCriterion.modifier === GQL.CriterionModifier.Includes) - ) { - // add the tag if not present + if (tagCriterion) { if ( - !tagCriterion.value.items.find((p) => { - return p.id === tag.id; - }) + tagCriterion.modifier === GQL.CriterionModifier.IncludesAll || + tagCriterion.modifier === GQL.CriterionModifier.Includes ) { - tagCriterion.value.items.push(tagValue); + // add the tag if not present + if ( + !tagCriterion.value.items.find((p) => { + return p.id === tag.id; + }) + ) { + tagCriterion.value.items.push(tagValue); + } + } else { + // overwrite + tagCriterion.value.items = [tagValue]; } tagCriterion.modifier = GQL.CriterionModifier.IncludesAll; } else { - // overwrite tagCriterion = new TagsCriterion(TagsCriterionOption); tagCriterion.value = { items: [tagValue], @@ -43,6 +46,7 @@ export const useTagFilterHook = (tag: GQL.TagDataFragment) => { ? -1 : 0, }; + tagCriterion.modifier = GQL.CriterionModifier.IncludesAll; filter.criteria.push(tagCriterion); }