2025-08-28 14:15:36 +01:00
|
|
|
'use client';
|
|
|
|
|
|
|
|
|
|
import { cn } from '@/lib/utils';
|
|
|
|
|
import { type ComponentProps, memo } from 'react';
|
|
|
|
|
import { Streamdown } from 'streamdown';
|
|
|
|
|
|
|
|
|
|
type ResponseProps = ComponentProps<typeof Streamdown>;
|
|
|
|
|
|
|
|
|
|
export const Response = memo(
|
|
|
|
|
({ className, ...props }: ResponseProps) => (
|
|
|
|
|
<Streamdown
|
|
|
|
|
className={cn(
|
|
|
|
|
'size-full [&>*:first-child]:mt-0 [&>*:last-child]:mb-0',
|
|
|
|
|
className,
|
|
|
|
|
)}
|
2025-08-28 14:56:21 +01:00
|
|
|
components={{
|
|
|
|
|
code: ({ children, className, ...props }) => (
|
|
|
|
|
<code className={className} {...props}>
|
|
|
|
|
{children}
|
|
|
|
|
</code>
|
|
|
|
|
),
|
|
|
|
|
}}
|
2025-08-28 14:15:36 +01:00
|
|
|
{...props}
|
|
|
|
|
/>
|
|
|
|
|
),
|
|
|
|
|
(prevProps, nextProps) => prevProps.children === nextProps.children,
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
Response.displayName = 'Response';
|