add screen only ask, retrieve loading dot
This commit is contained in:
parent
aa14a1d0b6
commit
bcc8a59882
@ -145,9 +145,16 @@ class AskService {
|
||||
}
|
||||
}
|
||||
|
||||
async toggleAskButton() {
|
||||
async toggleAskButton(inputScreenOnly = false) {
|
||||
const askWindow = getWindowPool()?.get('ask');
|
||||
|
||||
let shouldSendScreenOnly = false;
|
||||
if (inputScreenOnly && this.state.showTextInput && askWindow && askWindow.isVisible()) {
|
||||
shouldSendScreenOnly = true;
|
||||
await this.sendMessage('', []);
|
||||
return;
|
||||
}
|
||||
|
||||
const hasContent = this.state.isLoading || this.state.isStreaming || (this.state.currentResponse && this.state.currentResponse.length > 0);
|
||||
|
||||
if (askWindow && askWindow.isVisible() && hasContent) {
|
||||
@ -218,10 +225,12 @@ class AskService {
|
||||
this.abortController = new AbortController();
|
||||
const { signal } = this.abortController;
|
||||
|
||||
if (!userPrompt || userPrompt.trim().length === 0) {
|
||||
console.warn('[AskService] Cannot process empty message');
|
||||
return { success: false, error: 'Empty message' };
|
||||
}
|
||||
|
||||
// if (!userPrompt || userPrompt.trim().length === 0) {
|
||||
// console.warn('[AskService] Cannot process empty message');
|
||||
// return { success: false, error: 'Empty message' };
|
||||
// }
|
||||
|
||||
|
||||
let sessionId;
|
||||
|
||||
|
@ -211,7 +211,7 @@ class ShortcutsService {
|
||||
callback = () => this.toggleAllWindowsVisibility(this.windowPool);
|
||||
break;
|
||||
case 'nextStep':
|
||||
callback = () => askService.toggleAskButton();
|
||||
callback = () => askService.toggleAskButton(true);
|
||||
break;
|
||||
case 'scrollUp':
|
||||
callback = () => {
|
||||
|
@ -136,7 +136,7 @@ contextBridge.exposeInMainWorld('api', {
|
||||
// Listeners
|
||||
onAskStateUpdate: (callback) => ipcRenderer.on('ask:stateUpdate', callback),
|
||||
removeOnAskStateUpdate: (callback) => ipcRenderer.removeListener('ask:stateUpdate', callback),
|
||||
|
||||
|
||||
onAskStreamError: (callback) => ipcRenderer.on('ask-response-stream-error', callback),
|
||||
removeOnAskStreamError: (callback) => ipcRenderer.removeListener('ask-response-stream-error', callback),
|
||||
|
||||
|
@ -987,9 +987,14 @@ export class AskView extends LitElement {
|
||||
|
||||
// ✨ 로딩 상태를 먼저 확인
|
||||
if (this.isLoading) {
|
||||
responseContainer.innerHTML = `<div class="loading-dots">...</div>`;
|
||||
responseContainer.innerHTML = `
|
||||
<div class="loading-dots">
|
||||
<div class="loading-dot"></div>
|
||||
<div class="loading-dot"></div>
|
||||
<div class="loading-dot"></div>
|
||||
</div>`;
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
// ✨ 응답이 없을 때의 처리
|
||||
if (!this.currentResponse) {
|
||||
@ -1232,7 +1237,7 @@ export class AskView extends LitElement {
|
||||
async handleSendText(e, overridingText = '') {
|
||||
const textInput = this.shadowRoot?.getElementById('textInput');
|
||||
const text = (overridingText || textInput?.value || '').trim();
|
||||
if (!text) return;
|
||||
// if (!text) return;
|
||||
|
||||
textInput.value = '';
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user