Files
Epicure/apps/web/app/(app)/messages/page.tsx
T
Arnaud c3776238c7 feat: direct messages
1:1 conversations (userAId < userBId dedup pair), messages,
per-participant read tracking (conversation_reads). Block relationship
is enforced on every send. UI: /messages list + /messages/[id] thread
(5s poll), MessageButton on profiles, unread-badged nav icon.

This completes the social-feature backlog: notifications, rate
limiting, blocking, reporting, search/discovery, mentions, DMs, plus
fixes for the recipe-visibility 404, follow race, and 2-level comment
thread cap found during the earlier audit.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-03 22:24:56 +02:00

22 lines
817 B
TypeScript

import type { Metadata } from "next";
import { MessageCircle } from "lucide-react";
import { ConversationsList } from "@/components/social/conversations-list";
export const metadata: Metadata = { title: "Messages — Epicure" };
export default function MessagesPage() {
return (
<div className="max-w-5xl mx-auto h-[calc(100vh-8rem)] border rounded-xl overflow-hidden flex">
<div className="w-full sm:w-80 border-r shrink-0 overflow-y-auto">
<ConversationsList />
</div>
<div className="hidden sm:flex flex-1 items-center justify-center text-muted-foreground">
<div className="text-center space-y-2">
<MessageCircle className="h-10 w-10 mx-auto opacity-50" />
<p className="text-sm">Select a conversation</p>
</div>
</div>
</div>
);
}