@@ -4,16 +4,25 @@ import type { AiSummaryProps } from '../ai/Summary'
4
4
5
5
import { appStaticConfig } from '~/app.static.config'
6
6
import { ErrorBoundary } from '~/components/common/ErrorBoundary'
7
+ import { clsxm } from '~/lib/helper'
7
8
8
9
import { AISummary } from '../ai/Summary'
9
10
import { XLogSummary } from '../xlog'
10
11
import { getCidForBaseModel } from '../xlog/utils'
11
12
12
- export const SummarySwitcher : FC < AiSummaryProps > = memo ( ( props ) => {
13
+ export const SummarySwitcher : FC <
14
+ AiSummaryProps & {
15
+ summary ?: string
16
+ }
17
+ > = memo ( ( props ) => {
13
18
const { enabled, providers } = appStaticConfig . ai . summary
14
- const { data } = props
19
+ const { data, summary } = props
15
20
const cid = getCidForBaseModel ( data )
16
21
22
+ const finalSummary = 'summary' in data ? data . summary : summary
23
+ if ( typeof finalSummary != 'undefined' )
24
+ return < ManualSummary className = "my-4" summary = { finalSummary } />
25
+
17
26
if ( ! enabled ) return null
18
27
19
28
let comp : any
@@ -40,3 +49,24 @@ export const SummarySwitcher: FC<AiSummaryProps> = memo((props) => {
40
49
} )
41
50
42
51
SummarySwitcher . displayName = 'SummarySwitcher'
52
+
53
+ const ManualSummary : Component < {
54
+ summary : string
55
+ } > = ( { className, summary } ) => {
56
+ return (
57
+ < div
58
+ className = { clsxm (
59
+ `space-y-2 rounded-xl border border-slate-200 p-4 dark:border-neutral-800` ,
60
+ className ,
61
+ ) }
62
+ >
63
+ < div className = "flex items-center" >
64
+ < i className = "icon-[mingcute--sparkles-line] mr-2 text-lg" />
65
+ 摘要
66
+ </ div >
67
+ < div className = "!m-0 text-sm leading-loose text-base-content/85" >
68
+ { summary }
69
+ </ div >
70
+ </ div >
71
+ )
72
+ }
0 commit comments