@@ -7,43 +7,33 @@ interface ContentPreviewProps {
7
7
sources ?: Source [ ] ;
8
8
sizeMode : 'compact' | 'adaptive' ;
9
9
isOperating : boolean ;
10
- maxCompactLength ?: number ;
11
10
className ?: string ;
12
11
}
13
12
14
13
export const ContentPreview = memo (
15
- ( {
16
- content,
17
- sources,
18
- sizeMode,
19
- isOperating,
20
- maxCompactLength = 10 ,
21
- className = '' ,
22
- } : ContentPreviewProps ) => {
23
- const previewContent = useMemo ( ( ) => {
24
- if ( sizeMode === 'compact' ) {
25
- return `${ content ?. slice ( 0 , maxCompactLength ) } ...` || '' ;
26
- }
27
- return content || '' ;
28
- } , [ content , sizeMode , maxCompactLength ] ) ;
14
+ ( { content, sources, sizeMode, isOperating, className = '' } : ContentPreviewProps ) => {
15
+ const previewContent = content ?? '' ;
29
16
30
17
// Memoize className to prevent re-renders when only isOperating changes
31
18
const markdownClassName = useMemo (
32
19
( ) =>
33
- `text-xs overflow-hidden ${ isOperating ? 'pointer-events-auto cursor-text select-text' : 'pointer-events-none select-none' } ${ className } ` ,
34
- [ isOperating , className ] ,
20
+ `text-xs overflow-hidden ${ sizeMode === 'compact' ? 'max-h-[1.5rem] line-clamp-1' : '' } ${
21
+ isOperating
22
+ ? 'pointer-events-auto cursor-text select-text'
23
+ : 'pointer-events-none select-none'
24
+ } ${ className } `,
25
+ [ isOperating , sizeMode , className ] ,
35
26
) ;
36
27
37
28
return (
38
- < Markdown className = { markdownClassName } content = { previewContent } sources = { sources || [ ] } />
29
+ < Markdown className = { markdownClassName } content = { previewContent } sources = { sources ?? [ ] } />
39
30
) ;
40
31
} ,
41
32
( prevProps , nextProps ) => {
42
33
return (
43
34
prevProps . content === nextProps . content &&
44
35
prevProps . sizeMode === nextProps . sizeMode &&
45
36
prevProps . isOperating === nextProps . isOperating &&
46
- prevProps . maxCompactLength === nextProps . maxCompactLength &&
47
37
prevProps . className === nextProps . className &&
48
38
JSON . stringify ( prevProps . sources ) === JSON . stringify ( nextProps . sources )
49
39
) ;
0 commit comments