diff --git a/packages/chat/src/components/message.tsx b/packages/chat/src/components/message.tsx index 1bb0b43..e85d890 100644 --- a/packages/chat/src/components/message.tsx +++ b/packages/chat/src/components/message.tsx @@ -3,97 +3,54 @@ import type { RawMessage } from "../values"; import Text from "@tensamin/markdown/text"; import { AlertTriangle } from "lucide-react"; -import { - Avatar, - AvatarFallback, - AvatarImage, - cn, - Tooltip, - TooltipContent, - TooltipTrigger, -} from "@tensamin/ui"; +import { cn, Tooltip, TooltipContent, TooltipTrigger } from "@tensamin/ui"; +import { useIsMobile } from "@tensamin/ui"; import { ContextMenu, ContextMenuContent, ContextMenuItem, ContextMenuTrigger, } from "@tensamin/ui"; -import Wrapper from "@tensamin/user/wrapper"; -import { useChat } from "../context"; function MessageComponent({ - grouped, message, }: { - grouped: boolean; message: RawMessage & { failed?: boolean; }; }) { - const { userId } = useChat(); + const isMobile = useIsMobile(); const actuallyFailed = message.failed && message.message_state === "awaiting"; return (
- ( - <> - {grouped ? ( -

- {new Date(message.send_time).toLocaleString([], { - hour: "2-digit", - minute: "2-digit", - })} -

- ) : ( - - - - {user.display.slice(0, 2).toUpperCase()} - - - )} - {message.failed && message.message_state === "awaiting" && ( - - -

Failed to send message

-
- } /> -
- )} -
- {!grouped && ( -
-

{user.display}

-

- {new Date(message.send_time).toLocaleString([], { - hour: "2-digit", - minute: "2-digit", - })} -

-
- )} - -
- - )} - /> + {message.failed && message.message_state === "awaiting" && ( + + +

Failed to send message

+
+ } /> +
+ )} +
} /> diff --git a/packages/chat/src/screen.tsx b/packages/chat/src/screen.tsx index fe69542..a23760d 100644 --- a/packages/chat/src/screen.tsx +++ b/packages/chat/src/screen.tsx @@ -435,7 +435,7 @@ export default function Screen() {
-
- Conversation start +
+ This is the start of your conversation with{" "}
@@ -481,13 +481,6 @@ export default function Screen() { return null; } - const lastMessage = messages[messageIndex - 1]; - const isGrouped = - lastMessage && - lastMessage.sent_by_self === message.sent_by_self && - Math.round(lastMessage.send_time / 10000) === - Math.round(message.send_time / 10000); - return (
- +
); })} @@ -515,25 +509,17 @@ export default function Screen() { className="pointer-events-none absolute left-0 top-0 -z-10 overflow-hidden opacity-0" style={{ width: scrollWidth > 0 ? `${scrollWidth}px` : "100%" }} > - {messages.map((message, messageIndex) => { - const lastMessage = messages[messageIndex - 1]; - const isGrouped = - lastMessage && - lastMessage.sent_by_self === message.sent_by_self && - Math.round(lastMessage.send_time / 10000) === - Math.round(message.send_time / 10000); - - return ( -
{ - setMeasurementRef(message.send_time, element); - }} - > - -
- ); - })} + {messages.map((message) => ( +
{ + setMeasurementRef(message.send_time, element); + }} + style={{ padding: "4px 0" }} + > + +
+ ))}
); diff --git a/packages/markdown/src/markdown.tsx b/packages/markdown/src/markdown.tsx index 46ebb92..59d0a6a 100644 --- a/packages/markdown/src/markdown.tsx +++ b/packages/markdown/src/markdown.tsx @@ -560,7 +560,7 @@ export function renderBlocks(blocks: MarkdownBlock[]): React.ReactElement { } return ( -

+

{block.text.split("\n").map((line, lineIndex) => ( {lineIndex > 0 ?
: null} @@ -645,6 +645,7 @@ export const markdownStyles = ` .tm-md-h4 { font-size: 1.1rem; } .tm-md-h5 { font-size: 1rem; } .tm-md-h6 { font-size: 0.95rem; opacity: 0.9; } +.tm-md-p { margin: 0.25rem 0; } .tm-md-blockquote { margin: 0.45rem 0; padding-left: 0.75rem; opacity: 0.95; } .tm-md-blockquote p { margin: 0.2rem 0; } .tm-md-pre { margin: 0.45rem 0; padding: 0.65rem 0.75rem; border-radius: 0.5rem; background: hsl(var(--muted)); overflow-x: auto; }