Fix filter hooks (#3482)

This commit is contained in:
DingDongSoLong4
2023-02-28 01:12:14 +02:00
committed by GitHub
parent 1d13f46e23
commit f992b9a0de
3 changed files with 34 additions and 35 deletions

View File

@@ -15,25 +15,29 @@ export const usePerformerFilterHook = (
return c.criterionOption.type === "performers"; return c.criterionOption.type === "performers";
}) as PerformersCriterion; }) as PerformersCriterion;
if ( if (performerCriterion) {
performerCriterion &&
(performerCriterion.modifier === GQL.CriterionModifier.IncludesAll ||
performerCriterion.modifier === GQL.CriterionModifier.Includes)
) {
// add the performer if not present
if ( if (
!performerCriterion.value.find((p) => { performerCriterion.modifier === GQL.CriterionModifier.IncludesAll ||
return p.id === performer.id; 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; performerCriterion.modifier = GQL.CriterionModifier.IncludesAll;
} else { } else {
// overwrite
performerCriterion = new PerformersCriterion(); performerCriterion = new PerformersCriterion();
performerCriterion.value = [performerValue]; performerCriterion.value = [performerValue];
performerCriterion.modifier = GQL.CriterionModifier.IncludesAll;
filter.criteria.push(performerCriterion); filter.criteria.push(performerCriterion);
} }

View File

@@ -14,21 +14,11 @@ export const useStudioFilterHook = (studio: GQL.StudioDataFragment) => {
return c.criterionOption.type === "studios"; return c.criterionOption.type === "studios";
}) as StudiosCriterion; }) as StudiosCriterion;
if ( if (studioCriterion) {
studioCriterion &&
(studioCriterion.modifier === GQL.CriterionModifier.IncludesAll ||
studioCriterion.modifier === GQL.CriterionModifier.Includes)
) {
// we should be showing studio only. Remove other values // we should be showing studio only. Remove other values
studioCriterion.value.items = studioCriterion.value.items.filter( studioCriterion.value.items = [studioValue];
(v) => v.id === studio.id studioCriterion.modifier = GQL.CriterionModifier.Includes;
);
if (studioCriterion.value.items.length === 0) {
studioCriterion.value.items.push(studioValue);
}
} else { } else {
// overwrite
studioCriterion = new StudiosCriterion(); studioCriterion = new StudiosCriterion();
studioCriterion.value = { studioCriterion.value = {
items: [studioValue], items: [studioValue],
@@ -36,6 +26,7 @@ export const useStudioFilterHook = (studio: GQL.StudioDataFragment) => {
? -1 ? -1
: 0, : 0,
}; };
studioCriterion.modifier = GQL.CriterionModifier.Includes;
filter.criteria.push(studioCriterion); filter.criteria.push(studioCriterion);
} }

View File

@@ -19,23 +19,26 @@ export const useTagFilterHook = (tag: GQL.TagDataFragment) => {
return c.criterionOption.type === "tags"; return c.criterionOption.type === "tags";
}) as TagsCriterion; }) as TagsCriterion;
if ( if (tagCriterion) {
tagCriterion &&
(tagCriterion.modifier === GQL.CriterionModifier.IncludesAll ||
tagCriterion.modifier === GQL.CriterionModifier.Includes)
) {
// add the tag if not present
if ( if (
!tagCriterion.value.items.find((p) => { tagCriterion.modifier === GQL.CriterionModifier.IncludesAll ||
return p.id === tag.id; 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; tagCriterion.modifier = GQL.CriterionModifier.IncludesAll;
} else { } else {
// overwrite
tagCriterion = new TagsCriterion(TagsCriterionOption); tagCriterion = new TagsCriterion(TagsCriterionOption);
tagCriterion.value = { tagCriterion.value = {
items: [tagValue], items: [tagValue],
@@ -43,6 +46,7 @@ export const useTagFilterHook = (tag: GQL.TagDataFragment) => {
? -1 ? -1
: 0, : 0,
}; };
tagCriterion.modifier = GQL.CriterionModifier.IncludesAll;
filter.criteria.push(tagCriterion); filter.criteria.push(tagCriterion);
} }