Place teacher prompt buttons above the composer
This commit is contained in:
1 parent
bb96941461
commit
efd1894269
6 files changed
+96
-24
No files matched your search
@@ -606,20 +606,21 @@ export function TeacherChatPanel({
|
||||
</div>
|
||||
</details>}
|
||||
{references.length > 0 && <div className="mb-2 rounded-lg bg-white p-3 text-xs"><p className="line-clamp-3 whitespace-pre-wrap">{references.map((ref) => ref.text).join('\n')}</p><button type="button" className="mt-1 underline" onClick={removeReferences}>移除引用</button></div>}
|
||||
{!draftRevision && !text.trim() && (definition?.shortcuts == null || definition.shortcuts.length > 0) &&
|
||||
<div className="consultation-shortcuts" role="group" aria-label="快捷提问" data-testid="consultation-shortcuts">
|
||||
{definition?.shortcuts == null
|
||||
? <button type="button" disabled={helpUnavailable || voiceInput.state !== 'idle'} onClick={askForSuggestions} className="consultation-hint">帮我整体看🧠</button>
|
||||
: definition.shortcuts.map((shortcut, index) => <button
|
||||
key={index} type="button" disabled={helpUnavailable || voiceInput.state !== 'idle'}
|
||||
onClick={() => void send({ text: shortcut.prompt })}
|
||||
className="consultation-hint"
|
||||
>{shortcut.label}</button>)}
|
||||
</div>}
|
||||
<div className="consultation-composer rounded-2xl border bg-white p-3 focus-within:ring-2 focus-within:ring-black/5">
|
||||
<textarea ref={inputRef} aria-label={`向${label}提问`} value={text} disabled={busy} maxLength={6000} onChange={(e) => changeText(e.target.value)} placeholder="和老师聊聊" rows={2}
|
||||
onKeyDown={(e) => { if (e.key === 'Enter' && !e.shiftKey && !e.nativeEvent.isComposing) { e.preventDefault(); void send(); } }}
|
||||
className="min-h-[60px] w-full resize-none border-0 bg-transparent text-[13px] leading-6 outline-none placeholder:text-muted-foreground/65" />
|
||||
<div className="mt-2 flex min-h-[68px] flex-wrap items-center justify-between gap-x-2 gap-y-2" data-testid="consultation-composer-actions">
|
||||
<div className="flex max-h-48 min-w-0 grow flex-wrap gap-2 overflow-y-auto pb-1">
|
||||
{!draftRevision && !text.trim() && (definition?.shortcuts == null
|
||||
? <button type="button" disabled={helpUnavailable || voiceInput.state !== 'idle'} onClick={askForSuggestions} className="consultation-hint">帮我整体看🧠</button>
|
||||
: definition.shortcuts.map((shortcut, index) => <button
|
||||
key={index} type="button" disabled={helpUnavailable || voiceInput.state !== 'idle'}
|
||||
onClick={() => void send({ text: shortcut.prompt })}
|
||||
className="consultation-hint max-w-full whitespace-normal break-words text-left"
|
||||
>{shortcut.label}</button>))}
|
||||
</div>
|
||||
<div className="ml-auto flex min-w-0 max-w-full items-center gap-1" data-testid="teacher-composer-runtime-controls">
|
||||
<TeacherModelSelect key={modelScope + (definition?.runtime ?? 'local')} runtime={definition?.runtime ?? 'local'} scope={modelScope} defaultModel={definition?.model.model_id}
|
||||
modelId={modelChoice.modelId} onChange={modelChoice.select} disabled={busy || !topicEnabled || Boolean(running)} />
|
||||
|
||||
Reference in new issue
Block a user