Add linkTypes to performer popover (#5195)

This commit is contained in:
dogwithakeyboard 2024-09-05 03:55:19 +01:00 committed by GitHub
parent 283f76240f
commit 879c20efc7
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
5 changed files with 27 additions and 5 deletions

View file

@ -142,7 +142,12 @@ export const GalleryCard: React.FC<IProps> = (props) => {
function maybeRenderPerformerPopoverButton() {
if (props.gallery.performers.length <= 0) return;
return <PerformerPopoverButton performers={props.gallery.performers} />;
return (
<PerformerPopoverButton
performers={props.gallery.performers}
linkType="gallery"
/>
);
}
function maybeRenderImagesPopoverButton() {

View file

@ -100,7 +100,12 @@ export const ImageCard: React.FC<IImageCardProps> = (
function maybeRenderPerformerPopoverButton() {
if (props.image.performers.length <= 0) return;
return <PerformerPopoverButton performers={props.image.performers} />;
return (
<PerformerPopoverButton
performers={props.image.performers}
linkType="image"
/>
);
}
function maybeRenderOCounter() {

View file

@ -165,7 +165,12 @@ const SceneCardPopovers = PatchComponent(
function maybeRenderPerformerPopoverButton() {
if (props.scene.performers.length <= 0) return;
return <PerformerPopoverButton performers={props.scene.performers} />;
return (
<PerformerPopoverButton
performers={props.scene.performers}
linkType="scene"
/>
);
}
function maybeRenderGroupPopoverButton() {

View file

@ -6,16 +6,20 @@ import * as GQL from "src/core/generated-graphql";
import { sortPerformers } from "src/core/performers";
import { HoverPopover } from "./HoverPopover";
import { Icon } from "./Icon";
import { PerformerLink } from "./TagLink";
import { PerformerLink, PerformerLinkType } from "./TagLink";
interface IProps {
performers: Pick<
GQL.Performer,
"id" | "name" | "image_path" | "disambiguation" | "gender"
>[];
linkType?: PerformerLinkType;
}
export const PerformerPopoverButton: React.FC<IProps> = ({ performers }) => {
export const PerformerPopoverButton: React.FC<IProps> = ({
performers,
linkType,
}) => {
const sorted = sortPerformers(performers);
const popoverContent = sorted.map((performer) => (
<div className="performer-tag-container row" key={performer.id}>
@ -33,6 +37,7 @@ export const PerformerPopoverButton: React.FC<IProps> = ({ performers }) => {
key={performer.id}
performer={performer}
className="d-block"
linkType={linkType}
/>
</div>
));

View file

@ -42,6 +42,8 @@ interface IPerformerLinkProps {
className?: string;
}
export type PerformerLinkType = IPerformerLinkProps["linkType"];
export const PerformerLink: React.FC<IPerformerLinkProps> = ({
performer,
linkType = "scene",