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; }