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');
|
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);
|
const hasContent = this.state.isLoading || this.state.isStreaming || (this.state.currentResponse && this.state.currentResponse.length > 0);
|
||||||
|
|
||||||
if (askWindow && askWindow.isVisible() && hasContent) {
|
if (askWindow && askWindow.isVisible() && hasContent) {
|
||||||
@ -218,10 +225,12 @@ class AskService {
|
|||||||
this.abortController = new AbortController();
|
this.abortController = new AbortController();
|
||||||
const { signal } = this.abortController;
|
const { signal } = this.abortController;
|
||||||
|
|
||||||
if (!userPrompt || userPrompt.trim().length === 0) {
|
|
||||||
console.warn('[AskService] Cannot process empty message');
|
// if (!userPrompt || userPrompt.trim().length === 0) {
|
||||||
return { success: false, error: 'Empty message' };
|
// console.warn('[AskService] Cannot process empty message');
|
||||||
}
|
// return { success: false, error: 'Empty message' };
|
||||||
|
// }
|
||||||
|
|
||||||
|
|
||||||
let sessionId;
|
let sessionId;
|
||||||
|
|
||||||
|
@ -211,7 +211,7 @@ class ShortcutsService {
|
|||||||
callback = () => this.toggleAllWindowsVisibility(this.windowPool);
|
callback = () => this.toggleAllWindowsVisibility(this.windowPool);
|
||||||
break;
|
break;
|
||||||
case 'nextStep':
|
case 'nextStep':
|
||||||
callback = () => askService.toggleAskButton();
|
callback = () => askService.toggleAskButton(true);
|
||||||
break;
|
break;
|
||||||
case 'scrollUp':
|
case 'scrollUp':
|
||||||
callback = () => {
|
callback = () => {
|
||||||
|
@ -136,7 +136,7 @@ contextBridge.exposeInMainWorld('api', {
|
|||||||
// Listeners
|
// Listeners
|
||||||
onAskStateUpdate: (callback) => ipcRenderer.on('ask:stateUpdate', callback),
|
onAskStateUpdate: (callback) => ipcRenderer.on('ask:stateUpdate', callback),
|
||||||
removeOnAskStateUpdate: (callback) => ipcRenderer.removeListener('ask:stateUpdate', callback),
|
removeOnAskStateUpdate: (callback) => ipcRenderer.removeListener('ask:stateUpdate', callback),
|
||||||
|
|
||||||
onAskStreamError: (callback) => ipcRenderer.on('ask-response-stream-error', callback),
|
onAskStreamError: (callback) => ipcRenderer.on('ask-response-stream-error', callback),
|
||||||
removeOnAskStreamError: (callback) => ipcRenderer.removeListener('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) {
|
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;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
// ✨ 응답이 없을 때의 처리
|
// ✨ 응답이 없을 때의 처리
|
||||||
if (!this.currentResponse) {
|
if (!this.currentResponse) {
|
||||||
@ -1232,7 +1237,7 @@ export class AskView extends LitElement {
|
|||||||
async handleSendText(e, overridingText = '') {
|
async handleSendText(e, overridingText = '') {
|
||||||
const textInput = this.shadowRoot?.getElementById('textInput');
|
const textInput = this.shadowRoot?.getElementById('textInput');
|
||||||
const text = (overridingText || textInput?.value || '').trim();
|
const text = (overridingText || textInput?.value || '').trim();
|
||||||
if (!text) return;
|
// if (!text) return;
|
||||||
|
|
||||||
textInput.value = '';
|
textInput.value = '';
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user