Studio Performers page (#1405)

* Refactor performer filter
* Add performer studio criterion
* Add Studio Performers page
This commit is contained in:
WithoutPants
2021-05-22 17:07:03 +10:00
committed by GitHub
parent 586d146fdb
commit 33999d3e93
11 changed files with 548 additions and 142 deletions

View File

@@ -11,14 +11,22 @@ import {
TruncatedText,
} from "src/components/Shared";
import { Button, ButtonGroup } from "react-bootstrap";
import { Criterion } from "src/models/list-filter/criteria/criterion";
import { PopoverCountButton } from "../Shared/PopoverCountButton";
export interface IPerformerCardExtraCriteria {
scenes: Criterion[];
images: Criterion[];
galleries: Criterion[];
}
interface IPerformerCardProps {
performer: GQL.PerformerDataFragment;
ageFromDate?: string;
selecting?: boolean;
selected?: boolean;
onSelectedChanged?: (selected: boolean, shiftKey: boolean) => void;
extraCriteria?: IPerformerCardExtraCriteria;
}
export const PerformerCard: React.FC<IPerformerCardProps> = ({
@@ -27,6 +35,7 @@ export const PerformerCard: React.FC<IPerformerCardProps> = ({
selecting,
selected,
onSelectedChanged,
extraCriteria,
}) => {
const age = TextUtils.age(
performer.birthdate,
@@ -52,7 +61,7 @@ export const PerformerCard: React.FC<IPerformerCardProps> = ({
<PopoverCountButton
type="scene"
count={performer.scene_count}
url={NavUtils.makePerformerScenesUrl(performer)}
url={NavUtils.makePerformerScenesUrl(performer, extraCriteria?.scenes)}
/>
);
}
@@ -64,7 +73,7 @@ export const PerformerCard: React.FC<IPerformerCardProps> = ({
<PopoverCountButton
type="image"
count={performer.image_count}
url={NavUtils.makePerformerImagesUrl(performer)}
url={NavUtils.makePerformerImagesUrl(performer, extraCriteria?.images)}
/>
);
}
@@ -76,7 +85,10 @@ export const PerformerCard: React.FC<IPerformerCardProps> = ({
<PopoverCountButton
type="gallery"
count={performer.gallery_count}
url={NavUtils.makePerformerGalleriesUrl(performer)}
url={NavUtils.makePerformerGalleriesUrl(
performer,
extraCriteria?.galleries
)}
/>
);
}