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
5 changed files with 27 additions and 5 deletions

View File

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

View File

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

View File

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

View File

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

View File

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