diff --git a/src/components/ChatViewer.tsx b/src/components/ChatViewer.tsx index 77bef60..f2b2061 100644 --- a/src/components/ChatViewer.tsx +++ b/src/components/ChatViewer.tsx @@ -34,6 +34,12 @@ import { import { useProfileSearch } from "@/hooks/useProfileSearch"; import { useEmojiSearch } from "@/hooks/useEmojiSearch"; import { Label } from "./ui/label"; +import { + Tooltip, + TooltipContent, + TooltipProvider, + TooltipTrigger, +} from "./ui/tooltip"; interface ChatViewerProps { protocol: ChatProtocol; @@ -177,15 +183,15 @@ const MessageItem = memo(function MessageItem({ const zapRequest = message.event ? getZapRequest(message.event) : null; return ( -
+
-
+
-
-

- {customTitle || conversation.title} -

- {/* Live activity status badge - small, icon only */} - {liveActivity?.status && ( - - )} - {/* Show host for live activities */} - {liveActivity?.hostPubkey && ( - - by{" "} - - - )} -
+ + + + + + +
+ {/* Icon + Name */} +
+ {conversation.metadata?.icon && ( + { + // Hide image if it fails to load + e.currentTarget.style.display = "none"; + }} + /> + )} + + {conversation.title} + +
+ {/* Description */} + {conversation.metadata?.description && ( +

+ {conversation.metadata.description} +

+ )} + {/* Protocol Type - Clickable */} +
+ {(conversation.type === "group" || + conversation.type === "live-chat") && ( + + )} + {(conversation.type === "group" || + conversation.type === "live-chat") && ( + + )} + + {conversation.type} + +
+ {/* Live Activity Status */} + {liveActivity?.status && ( +
+ + Status: + + +
+ )} + {/* Host Info */} + {liveActivity?.hostPubkey && ( +
+ Host: + +
+ )} +
+
+
+
diff --git a/src/components/live/StatusBadge.tsx b/src/components/live/StatusBadge.tsx index 835c01f..2f2fa7a 100644 --- a/src/components/live/StatusBadge.tsx +++ b/src/components/live/StatusBadge.tsx @@ -4,7 +4,7 @@ import type { LiveStatus } from "@/types/live-activity"; interface StatusBadgeProps { status: LiveStatus; - size?: "sm" | "md"; + size?: "xs" | "sm" | "md"; hideLabel?: boolean; } @@ -34,11 +34,13 @@ export function StatusBadge({ const Icon = config.icon; const sizeClasses = { + xs: "px-1.5 py-0.5 text-[10px] gap-0.5", sm: "px-2 py-1 text-xs gap-1", md: "px-3 py-1.5 text-sm gap-2", }; const iconSizeClasses = { + xs: "w-2.5 h-2.5", sm: "w-3 h-3", md: "w-4 h-4", };