diff --git a/src/app/(app)/feed/page.tsx b/src/app/(app)/feed/page.tsx index e1703a4..65b062b 100644 --- a/src/app/(app)/feed/page.tsx +++ b/src/app/(app)/feed/page.tsx @@ -1,5 +1,6 @@ import type { Metadata } from "next"; import { FeedList } from "@/components/feed/FeedList"; +import { StoryTray } from "@/components/stories/StoryTray"; /** * /feed — Home feed page (RSC shell). @@ -18,9 +19,11 @@ export const metadata: Metadata = { export default function FeedPage() { return ( -
- {/* TODO(02-05): StoryTray above feed */} - +
+ +
+ +
); } diff --git a/src/components/feed/PostCard.tsx b/src/components/feed/PostCard.tsx index a557222..0114ea0 100644 --- a/src/components/feed/PostCard.tsx +++ b/src/components/feed/PostCard.tsx @@ -36,6 +36,7 @@ import { Textarea } from "@/components/ui/textarea"; import { Button } from "@/components/ui/button"; import { getAvatarUrl } from "@/lib/avatar-url"; import { getMediaUrl } from "@/lib/media-url"; +import { PawRing } from "@/components/stories/PawRing"; import { BlockDialog } from "@/components/safety/BlockDialog"; import { ReportSheet } from "@/components/safety/ReportSheet"; @@ -183,9 +184,8 @@ export function PostCard({ post, onDeleted }: PostCardProps) {
{/* Header row — 16px horizontal padding, 12px vertical */}
- {/* Avatar with story ring seam */} - {/* TODO(02-05): StoryRing wrapper — wrap with ring-1 ring-orange-500 ring-offset-1 when hasActiveStory */} -
+ {/* PawRing: shows paw-print outline when pet has an active story (STORY-02) */} + {avatarUrl && ( @@ -194,7 +194,7 @@ export function PostCard({ post, onDeleted }: PostCardProps) { {pet.name[0]?.toUpperCase() ?? "?"} -
+
{/* Pet name — text-base font-semibold (UI-SPEC section heading) */} diff --git a/src/components/post-creation/PostTypeSheet.tsx b/src/components/post-creation/PostTypeSheet.tsx index 4e71284..9044496 100644 --- a/src/components/post-creation/PostTypeSheet.tsx +++ b/src/components/post-creation/PostTypeSheet.tsx @@ -16,6 +16,7 @@ import { } from "@/components/ui/dialog"; import { Button } from "@/components/ui/button"; import { PhotoPostForm } from "@/components/post-creation/PhotoPostForm"; +import { StoryForm } from "@/components/stories/StoryForm"; /** * PostTypeSheet — bottom Sheet with 3 post type choices (D-01). @@ -50,6 +51,11 @@ export function PostTypeSheet({ open, onOpenChange }: PostTypeSheetProps) { // TODO(02-06): MilestoneForm — open milestone dialog const [milestoneDialogOpen, setMilestoneDialogOpen] = useState(false); + function handleStoryClose() { + setStoryDialogOpen(false); + setSelectedType(null); + } + function handleSelectType(type: PostType) { setSelectedType(type); onOpenChange(false); // close the Sheet @@ -121,16 +127,13 @@ export function PostTypeSheet({ open, onOpenChange }: PostTypeSheetProps) { - {/* Story Dialog seam — TODO(02-05): replace null with StoryForm */} + {/* Story Dialog (D-02) */} - - + + New Story -
- {/* TODO(02-05): StoryForm — swap this div with setStoryDialogOpen(false)} /> */} - Story creation coming soon. -
+