refactor(js): 4. Iteration – Card-Preview-Helper, Button-Loading, Stream-Events vereinfacht
Neue Helper: - _renderCardPreview(): Gemeinsamer Helper für Agent/Session-Card-Vorschau (ersetzt renderAgentInCard + renderSessionSelectCard Duplikate) - withButtonLoading(btn, text, fn): Eliminiert ~15x identisches disable/text/try/finally/reset Pattern in allen Pages - formatDate(): Nach ui-helpers.js verschoben (war in dashboard.js) - createMDE(): maxHeight-Option hinzugefügt Dedupliziert: - handleStreamEvent: 12 Preparer/Review/Finalizer cases → 7 durch case-Grouping (start/text/tool_use shared) - _escCmdAttr() entfernt → nutzt jetzt esc() aus ui-helpers.js - feInitEasyMDE() nutzt jetzt createMDE() statt eigener EasyMDE-Init Betroffene Dateien: ui-helpers.js, chat.js, commands-ui.js, file-explorer.js, dashboard.js, session-page.js, cronjob-page.js, profile-page.js, admin-page.js, server-settings-page.js, settings-page.js
This commit is contained in:
1 parent
e4ccaf9dee
commit
e930268476
11 files changed
+137
-196
No files matched your search
+5
-30
@@ -73,16 +73,17 @@ function handleStreamEvent(eventType, data) {
|
||||
addChoiceBubble(data.toolCallId, data.question, data.choices);
|
||||
break;
|
||||
|
||||
case 'preparer_start':
|
||||
// Preparer / Review / Finalizer events (shared pattern)
|
||||
case 'preparer_start': case 'review_start': case 'finalizer_start':
|
||||
endStreamBubble();
|
||||
addReviewBubble('start', data, 'preparer');
|
||||
addReviewBubble('start', data, eventType.split('_')[0] === 'review' ? undefined : eventType.split('_')[0]);
|
||||
break;
|
||||
|
||||
case 'preparer_text':
|
||||
case 'preparer_text': case 'review_text': case 'finalizer_text':
|
||||
appendToReviewText(data.text);
|
||||
break;
|
||||
|
||||
case 'preparer_tool_use':
|
||||
case 'preparer_tool_use': case 'review_tool_use': case 'finalizer_tool_use':
|
||||
addReviewToolUse(data);
|
||||
break;
|
||||
|
||||
@@ -90,19 +91,6 @@ function handleStreamEvent(eventType, data) {
|
||||
finalizeReviewBubble(data.forwarded ? 'forwarded' : 'query', data, 'preparer');
|
||||
break;
|
||||
|
||||
case 'review_start':
|
||||
endStreamBubble();
|
||||
addReviewBubble('start', data);
|
||||
break;
|
||||
|
||||
case 'review_text':
|
||||
appendToReviewText(data.text);
|
||||
break;
|
||||
|
||||
case 'review_tool_use':
|
||||
addReviewToolUse(data);
|
||||
break;
|
||||
|
||||
case 'review_feedback':
|
||||
finalizeReviewBubble('feedback', data);
|
||||
break;
|
||||
@@ -111,19 +99,6 @@ function handleStreamEvent(eventType, data) {
|
||||
finalizeReviewBubble('approved', data);
|
||||
break;
|
||||
|
||||
case 'finalizer_start':
|
||||
endStreamBubble();
|
||||
addReviewBubble('start', data, 'finalizer');
|
||||
break;
|
||||
|
||||
case 'finalizer_text':
|
||||
appendToReviewText(data.text);
|
||||
break;
|
||||
|
||||
case 'finalizer_tool_use':
|
||||
addReviewToolUse(data);
|
||||
break;
|
||||
|
||||
case 'finalizer_done':
|
||||
finalizeReviewBubble('done', data, 'finalizer');
|
||||
break;
|
||||
|
||||
Reference in new issue
Block a user