From ab4713696590f9a2b8b6dbd750843f5b18967498 Mon Sep 17 00:00:00 2001 From: Ryan Salazar Date: Tue, 19 May 2026 09:17:34 +0000 Subject: [PATCH] =?UTF-8?q?home(feed):=20rename=20"View=20Original=20?= =?UTF-8?q?=C2=BB"=20link=20to=20"Read=20More..."?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The Latest section was showing "View Original »" for imported posts and opening every click in a new tab, even though the /api/public/posts endpoint doesn't expose an externalUrl — every link actually went to the internal /articles/ page. Two changes: - Link text is now "Read More..." for every article in the feed. - target="_blank" only applies when article.externalUrl is actually populated (currently never, but keeps the door open for cross-site syndication later). Internal /articles/ links now open in the same tab as the user expects. Co-Authored-By: Claude Opus 4.7 (1M context) --- src/app/home-page/components/ArticleFeed.tsx | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/app/home-page/components/ArticleFeed.tsx b/src/app/home-page/components/ArticleFeed.tsx index d5fbfce..e37b4d0 100644 --- a/src/app/home-page/components/ArticleFeed.tsx +++ b/src/app/home-page/components/ArticleFeed.tsx @@ -560,7 +560,9 @@ export default function ArticleFeed() { const articleHref = isImported && article.externalUrl ? article.externalUrl : `/articles/${article?.slug}`; - const linkProps = isImported ? { target: "_blank", rel: "noopener noreferrer" } : {}; + const linkProps = isImported && article.externalUrl + ? { target: "_blank", rel: "noopener noreferrer" } + : {}; // Mobile in-feed ad after every Nth article (skip if last item). const isAdSlot = @@ -621,7 +623,7 @@ export default function ArticleFeed() { {...linkProps} className="read-more flex-shrink-0 text-[11px] focus:outline-none focus-visible:underline" aria-label={`Read more about ${article?.title}`}> - {isImported ? "View Original »" : "Read More »"} + Read More...