import React from "react"; import { Link } from "react-router-dom"; import { FormattedMessage } from "react-intl"; import * as GQL from "src/core/generated-graphql"; import { NavUtils, TextUtils } from "src/utils"; import { BasicCard, CountryFlag, HoverPopover, Icon, TagLink, TruncatedText, } from "src/components/Shared"; import { Button, ButtonGroup } from "react-bootstrap"; import { PopoverCountButton } from "../Shared/PopoverCountButton"; interface IPerformerCardProps { performer: GQL.PerformerDataFragment; ageFromDate?: string; selecting?: boolean; selected?: boolean; onSelectedChanged?: (selected: boolean, shiftKey: boolean) => void; } export const PerformerCard: React.FC = ({ performer, ageFromDate, selecting, selected, onSelectedChanged, }) => { const age = TextUtils.age(performer.birthdate, ageFromDate); const ageString = `${age} years old${ageFromDate ? " in this scene." : "."}`; function maybeRenderFavoriteBanner() { if (performer.favorite === false) { return; } return (
); } function maybeRenderScenesPopoverButton() { if (!performer.scene_count) return; return ( ); } function maybeRenderImagesPopoverButton() { if (!performer.image_count) return; return ( ); } function maybeRenderGalleriesPopoverButton() { if (!performer.gallery_count) return; return ( ); } function maybeRenderTagPopoverButton() { if (performer.tags.length <= 0) return; const popoverContent = performer.tags.map((tag) => ( )); return ( ); } function maybeRenderPopoverButtonGroup() { if ( performer.scene_count || performer.image_count || performer.gallery_count || performer.tags.length > 0 ) { return ( <>
{maybeRenderScenesPopoverButton()} {maybeRenderImagesPopoverButton()} {maybeRenderGalleriesPopoverButton()} {maybeRenderTagPopoverButton()} ); } } return ( {performer.name {maybeRenderFavoriteBanner()} } details={ <>
{age !== 0 ?
{ageString}
: ""} {maybeRenderPopoverButtonGroup()} } selected={selected} selecting={selecting} onSelectedChanged={onSelectedChanged} /> ); };