mirror of
https://github.com/stashapp/stash.git
synced 2025-12-17 20:34:37 +03:00
Correct tag link for gallery and images tags (#1221)
This commit is contained in:
@@ -47,7 +47,7 @@ export const GalleryCard: React.FC<IProps> = (props) => {
|
||||
if (props.gallery.tags.length <= 0) return;
|
||||
|
||||
const popoverContent = props.gallery.tags.map((tag) => (
|
||||
<TagLink key={tag.id} tag={tag} />
|
||||
<TagLink key={tag.id} tag={tag} tagType="gallery" />
|
||||
));
|
||||
|
||||
return (
|
||||
|
||||
@@ -25,7 +25,7 @@ export const GalleryDetailPanel: React.FC<IGalleryDetailProps> = (props) => {
|
||||
function renderTags() {
|
||||
if (!props.gallery.tags || props.gallery.tags.length === 0) return;
|
||||
const tags = props.gallery.tags.map((tag) => (
|
||||
<TagLink key={tag.id} tag={tag} />
|
||||
<TagLink key={tag.id} tag={tag} tagType="gallery" />
|
||||
));
|
||||
return (
|
||||
<>
|
||||
|
||||
@@ -42,7 +42,7 @@ export const ImageCard: React.FC<IImageCardProps> = (
|
||||
if (props.image.tags.length <= 0) return;
|
||||
|
||||
const popoverContent = props.image.tags.map((tag) => (
|
||||
<TagLink key={tag.id} tag={tag} />
|
||||
<TagLink key={tag.id} tag={tag} tagType="image" />
|
||||
));
|
||||
|
||||
return (
|
||||
|
||||
@@ -14,7 +14,7 @@ export const ImageDetailPanel: React.FC<IImageDetailProps> = (props) => {
|
||||
function renderTags() {
|
||||
if (props.image.tags.length === 0) return;
|
||||
const tags = props.image.tags.map((tag) => (
|
||||
<TagLink key={tag.id} tag={tag} />
|
||||
<TagLink key={tag.id} tag={tag} tagType="image" />
|
||||
));
|
||||
return (
|
||||
<>
|
||||
|
||||
@@ -14,7 +14,7 @@ import { NavUtils, TextUtils } from "src/utils";
|
||||
|
||||
interface IProps {
|
||||
tag?: Partial<TagDataFragment>;
|
||||
tagType?: "performer" | "scene";
|
||||
tagType?: "performer" | "scene" | "gallery" | "image";
|
||||
performer?: Partial<PerformerDataFragment>;
|
||||
marker?: Partial<SceneMarkerDataFragment>;
|
||||
movie?: Partial<MovieDataFragment>;
|
||||
@@ -27,10 +27,20 @@ export const TagLink: React.FC<IProps> = (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) {
|
||||
|
||||
@@ -94,6 +94,24 @@ const makeTagSceneMarkersUrl = (tag: Partial<GQL.TagDataFragment>) => {
|
||||
return `/scenes/markers?${filter.makeQueryParameters()}`;
|
||||
};
|
||||
|
||||
const makeTagGalleriesUrl = (tag: Partial<GQL.TagDataFragment>) => {
|
||||
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<GQL.TagDataFragment>) => {
|
||||
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<GQL.SceneMarkerDataFragment>
|
||||
) => {
|
||||
@@ -108,6 +126,8 @@ export default {
|
||||
makeTagSceneMarkersUrl,
|
||||
makeTagScenesUrl,
|
||||
makeTagPerformersUrl,
|
||||
makeTagGalleriesUrl,
|
||||
makeTagImagesUrl,
|
||||
makeSceneMarkerUrl,
|
||||
makeMovieScenesUrl,
|
||||
makeChildStudiosUrl,
|
||||
|
||||
Reference in New Issue
Block a user