diff --git a/frontend/src/components/workspace/flip-display.tsx b/frontend/src/components/workspace/flip-display.tsx new file mode 100644 index 0000000..6c3a2ca --- /dev/null +++ b/frontend/src/components/workspace/flip-display.tsx @@ -0,0 +1,29 @@ +import { AnimatePresence, motion } from "motion/react"; + +import { cn } from "@/lib/utils"; + +export function FlipDisplay({ + uniqueKey, + children, + className, +}: { + uniqueKey: string; + children: React.ReactNode; + className?: string; +}) { + return ( +
+ + + {children} + + +
+ ); +} diff --git a/frontend/src/components/workspace/message-list/message-group.tsx b/frontend/src/components/workspace/message-list/message-group.tsx index 16f9d82..dcc7ae1 100644 --- a/frontend/src/components/workspace/message-list/message-group.tsx +++ b/frontend/src/components/workspace/message-list/message-group.tsx @@ -29,6 +29,8 @@ import { useRehypeSplitWordsIntoSpans } from "@/core/rehype"; import { extractTitleFromMarkdown } from "@/core/utils/markdown"; import { cn } from "@/lib/utils"; +import { FlipDisplay } from "../flip-display"; + export function MessageGroup({ className, messages, @@ -62,17 +64,20 @@ export function MessageGroup({ {open && steps.length > 1 ? (
{steps.length} steps
) : ( - - {label} - + + + {label} + + )}
{!open && steps.length > 1 && ( -
- {steps.length - 1} more step - {steps.length - 1 > 1 ? "s" : ""} +
+ {steps.length - 1 > 1 + ? `${steps.length - 1} more steps` + : `${steps.length - 1} more step`}
)}
diff --git a/frontend/src/components/workspace/message-list/message-list.tsx b/frontend/src/components/workspace/message-list/message-list.tsx index 215b6ab..f947e38 100644 --- a/frontend/src/components/workspace/message-list/message-list.tsx +++ b/frontend/src/components/workspace/message-list/message-list.tsx @@ -28,7 +28,7 @@ export function MessageList({ - + {groupMessages( thread.messages, (groupedMessages) => {