diff --git a/src/pages/admin/bots/[bot_id]/(partials)/bot-message-group.tsx b/src/pages/admin/bots/[bot_id]/(partials)/bot-message-group.tsx
index ad66e08..970bd13 100644
--- a/src/pages/admin/bots/[bot_id]/(partials)/bot-message-group.tsx
+++ b/src/pages/admin/bots/[bot_id]/(partials)/bot-message-group.tsx
@@ -5,7 +5,6 @@ import type { BotFace, BotHue } from "@/src/dict/bot-dict";
import type { BotWithLastMessage } from "@/src/types";
import type { MessageGroup } from "../(utils)/group-messages";
import BotMessageLine from "./bot-message-line";
-import GroupTimestamp from "./group-timestamp";
type Props = {
bot: BotWithLastMessage;
@@ -13,7 +12,8 @@ type Props = {
};
/**
- * Plain text, no bubble. A 28px stone sits on the group's first line only.
+ * Plain text, no bubble. A 28px stone sits on the group's first line only;
+ * the group's time sits beside the last message's play button.
*/
export default function BotMessageGroup({ bot, group }: Props) {
return (
@@ -26,15 +26,15 @@ export default function BotMessageGroup({ bot, group }: Props) {
className="-mt-1"
/>
- {group.messages.map((message) => (
+ {group.messages.map((message, index) => (
))}
-
);
diff --git a/src/pages/admin/bots/[bot_id]/(partials)/bot-message-line.tsx b/src/pages/admin/bots/[bot_id]/(partials)/bot-message-line.tsx
index f5a9321..585817e 100644
--- a/src/pages/admin/bots/[bot_id]/(partials)/bot-message-line.tsx
+++ b/src/pages/admin/bots/[bot_id]/(partials)/bot-message-line.tsx
@@ -4,6 +4,7 @@ import Row from "@moduletrace/twui/layout/Row";
import Stack from "@moduletrace/twui/layout/Stack";
import linkComputerRefs from "@/src/utils/link-computer-refs";
import { MessageMarkdownComponents } from "../(data)/message-markdown-components";
+import GroupTimestamp from "./group-timestamp";
import NeedsYouChip from "./needs-you-chip";
import SpeakMessageButton from "./speak-message-button";
@@ -11,15 +12,21 @@ type Props = {
message_id?: number | null;
text: string;
needs_you?: boolean;
+ /**
+ * The group's time, on the last message only: shown beside its play
+ * button.
+ */
+ at?: number;
};
/**
* One bot message, rendered from markdown (GFM; raw HTML is never
* rendered). Computers it names (`computerRef`) show as buttons that
* switch the bot to them. A play button under it reads it aloud,
- * disabled while the bot has no speech model.
+ * disabled while the bot has no speech model, with the group's time
+ * before it on the last message.
*/
-export default function BotMessageLine({ message_id, text, needs_you }: Props) {
+export default function BotMessageLine({ message_id, text, needs_you, at }: Props) {
const can_speak = Boolean(message_id && text.trim());
return (
@@ -32,9 +39,10 @@ export default function BotMessageLine({ message_id, text, needs_you }: Props) {
{linkComputerRefs({ text })}
- {needs_you || can_speak ? (
+ {needs_you || can_speak || at ? (
{needs_you ? : null}
+ {at ? : null}
{can_speak ? (
) : null}