diff --git a/public/inbox-doodle.svg b/public/inbox-doodle.svg new file mode 100644 index 0000000..977f4f6 --- /dev/null +++ b/public/inbox-doodle.svg @@ -0,0 +1,139 @@ + + + diff --git a/src/components/inbox/message-thread.tsx b/src/components/inbox/message-thread.tsx index 1db70e6..57ac2ce 100644 --- a/src/components/inbox/message-thread.tsx +++ b/src/components/inbox/message-thread.tsx @@ -119,6 +119,18 @@ const STATUS_OPTIONS: { label: string; value: ConversationStatus; color: string { label: "Closed", value: "closed", color: "text-slate-400" }, ]; +/** + * WhatsApp-style doodle background applied to the chat area (both the + * active thread and the empty state). The SVG tile lives at + * `/public/inbox-doodle.svg`; the slate-950 colour sits underneath so + * the doodles read as a subtle pattern rather than a stark grid. + * + * Defined once at module scope so the two render paths can't drift — + * if we ever switch the asset, both spots update together. + */ +const DOODLE_BG_CLASSES = + "bg-slate-950 bg-[url('/inbox-doodle.svg')] bg-repeat"; + export function MessageThread({ conversation, contact, @@ -661,10 +673,12 @@ export function MessageThread({ [conversation, onAssignChange], ); - // Empty state + // Empty state — same WhatsApp-style doodle background as the active + // thread below, so swapping between empty/selected doesn't change the + // pattern under the user's eye. if (!conversation || !contact) { return ( -