diff --git a/ui/v2.5/src/components/Galleries/GalleryCard.tsx b/ui/v2.5/src/components/Galleries/GalleryCard.tsx index ce43c8eb3..7bfb14398 100644 --- a/ui/v2.5/src/components/Galleries/GalleryCard.tsx +++ b/ui/v2.5/src/components/Galleries/GalleryCard.tsx @@ -47,7 +47,7 @@ export const GalleryCard: React.FC = (props) => { if (props.gallery.tags.length <= 0) return; const popoverContent = props.gallery.tags.map((tag) => ( - + )); return ( diff --git a/ui/v2.5/src/components/Galleries/GalleryDetails/GalleryDetailPanel.tsx b/ui/v2.5/src/components/Galleries/GalleryDetails/GalleryDetailPanel.tsx index 43203395b..3b9bf1b47 100644 --- a/ui/v2.5/src/components/Galleries/GalleryDetails/GalleryDetailPanel.tsx +++ b/ui/v2.5/src/components/Galleries/GalleryDetails/GalleryDetailPanel.tsx @@ -25,7 +25,7 @@ export const GalleryDetailPanel: React.FC = (props) => { function renderTags() { if (!props.gallery.tags || props.gallery.tags.length === 0) return; const tags = props.gallery.tags.map((tag) => ( - + )); return ( <> diff --git a/ui/v2.5/src/components/Images/ImageCard.tsx b/ui/v2.5/src/components/Images/ImageCard.tsx index 4c992f598..53e153a76 100644 --- a/ui/v2.5/src/components/Images/ImageCard.tsx +++ b/ui/v2.5/src/components/Images/ImageCard.tsx @@ -42,7 +42,7 @@ export const ImageCard: React.FC = ( if (props.image.tags.length <= 0) return; const popoverContent = props.image.tags.map((tag) => ( - + )); return ( diff --git a/ui/v2.5/src/components/Images/ImageDetails/ImageDetailPanel.tsx b/ui/v2.5/src/components/Images/ImageDetails/ImageDetailPanel.tsx index a093e33c6..ff741f39f 100644 --- a/ui/v2.5/src/components/Images/ImageDetails/ImageDetailPanel.tsx +++ b/ui/v2.5/src/components/Images/ImageDetails/ImageDetailPanel.tsx @@ -14,7 +14,7 @@ export const ImageDetailPanel: React.FC = (props) => { function renderTags() { if (props.image.tags.length === 0) return; const tags = props.image.tags.map((tag) => ( - + )); return ( <> diff --git a/ui/v2.5/src/components/Shared/TagLink.tsx b/ui/v2.5/src/components/Shared/TagLink.tsx index 32fdbf323..1e9a58f2f 100644 --- a/ui/v2.5/src/components/Shared/TagLink.tsx +++ b/ui/v2.5/src/components/Shared/TagLink.tsx @@ -14,7 +14,7 @@ import { NavUtils, TextUtils } from "src/utils"; interface IProps { tag?: Partial; - tagType?: "performer" | "scene"; + tagType?: "performer" | "scene" | "gallery" | "image"; performer?: Partial; marker?: Partial; movie?: Partial; @@ -27,10 +27,20 @@ export const TagLink: React.FC = (props: IProps) => { let link: string = "#"; let title: string = ""; if (props.tag) { - if (!props.tagType || props.tagType === "scene") { - link = NavUtils.makeTagScenesUrl(props.tag); - } else { - link = NavUtils.makeTagPerformersUrl(props.tag); + switch (props.tagType) { + case "scene": + case undefined: + link = NavUtils.makeTagScenesUrl(props.tag); + break; + case "performer": + link = NavUtils.makeTagPerformersUrl(props.tag); + break; + case "gallery": + link = NavUtils.makeTagGalleriesUrl(props.tag); + break; + case "image": + link = NavUtils.makeTagImagesUrl(props.tag); + break; } title = props.tag.name || ""; } else if (props.performer) { diff --git a/ui/v2.5/src/utils/navigation.ts b/ui/v2.5/src/utils/navigation.ts index fb6805771..a85e54be7 100644 --- a/ui/v2.5/src/utils/navigation.ts +++ b/ui/v2.5/src/utils/navigation.ts @@ -94,6 +94,24 @@ const makeTagSceneMarkersUrl = (tag: Partial) => { return `/scenes/markers?${filter.makeQueryParameters()}`; }; +const makeTagGalleriesUrl = (tag: Partial) => { + if (!tag.id) return "#"; + const filter = new ListFilterModel(FilterMode.Galleries); + const criterion = new TagsCriterion("tags"); + criterion.value = [{ id: tag.id, label: tag.name || `Tag ${tag.id}` }]; + filter.criteria.push(criterion); + return `/galleries?${filter.makeQueryParameters()}`; +}; + +const makeTagImagesUrl = (tag: Partial) => { + if (!tag.id) return "#"; + const filter = new ListFilterModel(FilterMode.Images); + const criterion = new TagsCriterion("tags"); + criterion.value = [{ id: tag.id, label: tag.name || `Tag ${tag.id}` }]; + filter.criteria.push(criterion); + return `/images?${filter.makeQueryParameters()}`; +}; + const makeSceneMarkerUrl = ( sceneMarker: Partial ) => { @@ -108,6 +126,8 @@ export default { makeTagSceneMarkersUrl, makeTagScenesUrl, makeTagPerformersUrl, + makeTagGalleriesUrl, + makeTagImagesUrl, makeSceneMarkerUrl, makeMovieScenesUrl, makeChildStudiosUrl,