diff --git a/packages/elements/package.json b/packages/elements/package.json index 35e209dc..a6cbf4e2 100644 --- a/packages/elements/package.json +++ b/packages/elements/package.json @@ -28,6 +28,7 @@ "media-chrome": "^4.17.2", "motion": "^12.26.2", "nanoid": "^5.1.6", + "radix-ui": "latest", "react": "19.2.3", "react-dom": "19.2.3", "react-jsx-parser": "^2.2.0", diff --git a/packages/elements/src/conversation.tsx b/packages/elements/src/conversation.tsx index 8bf18fda..92669e83 100644 --- a/packages/elements/src/conversation.tsx +++ b/packages/elements/src/conversation.tsx @@ -7,6 +7,8 @@ import { cn } from "@repo/shadcn-ui/lib/utils"; import { ArrowDownIcon, DownloadIcon } from "lucide-react"; import { useCallback } from "react"; import { StickToBottom, useStickToBottomContext } from "use-stick-to-bottom"; +import { ScrollArea as ScrollAreaPrimitive } from "radix-ui"; +import { ScrollBar } from "@repo/shadcn-ui/components/ui/scroll-area"; export type ConversationProps = ComponentProps; @@ -20,19 +22,38 @@ export const Conversation = ({ className, ...props }: ConversationProps) => ( /> ); -export type ConversationContentProps = ComponentProps< - typeof StickToBottom.Content ->; +export type ConversationContentProps = ComponentProps & { + scrollClassName?: string; + scrollBarClassName?: string; +}; export const ConversationContent = ({ + children, className, + scrollClassName, + scrollBarClassName, ...props -}: ConversationContentProps) => ( - -); +}: ConversationContentProps) => { + const context = useStickToBottomContext(); + + return ( + + +
+ {children} +
+
+ +
+ ); +}; export type ConversationEmptyStateProps = ComponentProps<"div"> & { title?: string;