From f99194aac831c488b24b35b0ecdd0162029e82f7 Mon Sep 17 00:00:00 2001 From: Cho Young-Hwi Date: Wed, 18 Mar 2026 08:54:11 +0000 Subject: [PATCH] [#287] Show Farcaster identity on plot pages instead of truncated address - Plot detail page: replace truncateAddress with WriterIdentity in Suspense (same pattern as storyline page) - OG image route: resolve Farcaster fname server-side via lookupByAddress, fall back to truncated address Fixes #287 Co-Authored-By: Claude Opus 4.6 (1M context) --- src/app/story/[storylineId]/[plotIndex]/page.tsx | 9 ++++++++- src/app/story/[storylineId]/og/route.tsx | 10 ++++++---- 2 files changed, 14 insertions(+), 5 deletions(-) diff --git a/src/app/story/[storylineId]/[plotIndex]/page.tsx b/src/app/story/[storylineId]/[plotIndex]/page.tsx index 908c413e..ba25a171 100644 --- a/src/app/story/[storylineId]/[plotIndex]/page.tsx +++ b/src/app/story/[storylineId]/[plotIndex]/page.tsx @@ -1,8 +1,10 @@ import { type Metadata } from "next"; +import { Suspense } from "react"; import { redirect } from "next/navigation"; import { createServerClient, type Storyline, type Plot } from "../../../../../lib/supabase"; import { STORY_FACTORY } from "../../../../../lib/contracts/constants"; import { truncateAddress } from "../../../../../lib/utils"; +import { WriterIdentity } from "../../../../components/WriterIdentity"; import { ViewTracker } from "../../../../components/ViewCount"; import { CommentSection } from "../../../../components/CommentSection"; import Link from "next/link"; @@ -104,7 +106,12 @@ export default async function PlotDetailPage({ params }: { params: Params }) { {chapterTitle}
- by {truncateAddress(sl.writer_address)} + + by{" "} + {truncateAddress(sl.writer_address)}}> + + + {p.block_timestamp && (