mirror of
https://github.com/stashapp/stash.git
synced 2025-12-18 04:44:37 +03:00
Studio Performers page (#1405)
* Refactor performer filter * Add performer studio criterion * Add Studio Performers page
This commit is contained in:
@@ -9,9 +9,17 @@ import { TagsCriterion } from "src/models/list-filter/criteria/tags";
|
||||
import { ListFilterModel } from "src/models/list-filter/filter";
|
||||
import { FilterMode } from "src/models/list-filter/types";
|
||||
import { MoviesCriterion } from "src/models/list-filter/criteria/movies";
|
||||
import { Criterion } from "src/models/list-filter/criteria/criterion";
|
||||
|
||||
function addExtraCriteria(dest: Criterion[], src?: Criterion[]) {
|
||||
if (src && src.length > 0) {
|
||||
dest.push(...src);
|
||||
}
|
||||
}
|
||||
|
||||
const makePerformerScenesUrl = (
|
||||
performer: Partial<GQL.PerformerDataFragment>
|
||||
performer: Partial<GQL.PerformerDataFragment>,
|
||||
extraCriteria?: Criterion[]
|
||||
) => {
|
||||
if (!performer.id) return "#";
|
||||
const filter = new ListFilterModel(FilterMode.Scenes);
|
||||
@@ -20,11 +28,13 @@ const makePerformerScenesUrl = (
|
||||
{ id: performer.id, label: performer.name || `Performer ${performer.id}` },
|
||||
];
|
||||
filter.criteria.push(criterion);
|
||||
addExtraCriteria(filter.criteria, extraCriteria);
|
||||
return `/scenes?${filter.makeQueryParameters()}`;
|
||||
};
|
||||
|
||||
const makePerformerImagesUrl = (
|
||||
performer: Partial<GQL.PerformerDataFragment>
|
||||
performer: Partial<GQL.PerformerDataFragment>,
|
||||
extraCriteria?: Criterion[]
|
||||
) => {
|
||||
if (!performer.id) return "#";
|
||||
const filter = new ListFilterModel(FilterMode.Images);
|
||||
@@ -33,11 +43,13 @@ const makePerformerImagesUrl = (
|
||||
{ id: performer.id, label: performer.name || `Performer ${performer.id}` },
|
||||
];
|
||||
filter.criteria.push(criterion);
|
||||
addExtraCriteria(filter.criteria, extraCriteria);
|
||||
return `/images?${filter.makeQueryParameters()}`;
|
||||
};
|
||||
|
||||
const makePerformerGalleriesUrl = (
|
||||
performer: Partial<GQL.PerformerDataFragment>
|
||||
performer: Partial<GQL.PerformerDataFragment>,
|
||||
extraCriteria?: Criterion[]
|
||||
) => {
|
||||
if (!performer.id) return "#";
|
||||
const filter = new ListFilterModel(FilterMode.Galleries);
|
||||
@@ -46,6 +58,7 @@ const makePerformerGalleriesUrl = (
|
||||
{ id: performer.id, label: performer.name || `Performer ${performer.id}` },
|
||||
];
|
||||
filter.criteria.push(criterion);
|
||||
addExtraCriteria(filter.criteria, extraCriteria);
|
||||
return `/galleries?${filter.makeQueryParameters()}`;
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user