{t.summary.length > 150
diff --git a/frontend/src/pages/SearchResults.tsx b/frontend/src/pages/SearchResults.tsx
index 85ff179..27777d1 100644
--- a/frontend/src/pages/SearchResults.tsx
+++ b/frontend/src/pages/SearchResults.tsx
@@ -11,6 +11,7 @@ import { Link, useSearchParams, useNavigate } from "react-router-dom";
import { searchApi, type SearchResultItem } from "../api/public-client";
import { catSlug } from "../utils/catSlug";
import SearchAutocomplete from "../components/SearchAutocomplete";
+import TagList from "../components/TagList";
export default function SearchResults() {
const [searchParams] = useSearchParams();
@@ -142,11 +143,7 @@ function SearchResultCard({ item, staggerIndex }: { item: SearchResultItem; stag
)}
{item.topic_tags.length > 0 && (
- {item.topic_tags.map((tag) => (
-
- {tag}
-
- ))}
+
)}
diff --git a/frontend/src/pages/SubTopicPage.tsx b/frontend/src/pages/SubTopicPage.tsx
index c4667b9..81f4cae 100644
--- a/frontend/src/pages/SubTopicPage.tsx
+++ b/frontend/src/pages/SubTopicPage.tsx
@@ -12,6 +12,7 @@ import {
type TechniqueListItem,
} from "../api/public-client";
import { catSlug } from "../utils/catSlug";
+import TagList from "../components/TagList";
/** Convert a URL slug to a display name: replace hyphens with spaces, title-case. */
function slugToDisplayName(slug: string): string {
@@ -146,9 +147,7 @@ export default function SubTopicPage() {
{t.title}
{t.topic_tags && t.topic_tags.length > 0 && (
- {t.topic_tags.map((tag) => (
- {tag}
- ))}
+
)}
{t.summary && (
diff --git a/frontend/src/pages/TopicsBrowse.tsx b/frontend/src/pages/TopicsBrowse.tsx
index 97a5ca1..8543df8 100644
--- a/frontend/src/pages/TopicsBrowse.tsx
+++ b/frontend/src/pages/TopicsBrowse.tsx
@@ -155,6 +155,19 @@ export default function TopicsBrowse() {
{cat.sub_topics.map((st) => {
const stSlug = st.name.toLowerCase().replace(/\s+/g, "-");
+ if (st.technique_count === 0) {
+ return (
+
+ {st.name}
+
+ Coming soon
+
+
+ );
+ }
return (