fix(ena-planner): restore non-stream send interception flow
This commit is contained in:
@@ -77,9 +77,7 @@ let overlay = null;
|
||||
let iframeMessageBound = false;
|
||||
let sendListenersInstalled = false;
|
||||
let sendClickHandler = null;
|
||||
let sendPointerDownHandler = null;
|
||||
let sendKeydownHandler = null;
|
||||
let sendKeyupHandler = null;
|
||||
|
||||
/**
|
||||
* -------------------------
|
||||
@@ -1334,12 +1332,12 @@ function shouldInterceptNow() {
|
||||
return true;
|
||||
}
|
||||
|
||||
async function doInterceptAndPlanThenSend(rawSnapshot = '') {
|
||||
async function doInterceptAndPlanThenSend() {
|
||||
const ta = getSendTextarea();
|
||||
const btn = getSendButton();
|
||||
if (!ta || !btn) return;
|
||||
|
||||
const raw = String(rawSnapshot || ta.value || '').trim();
|
||||
const raw = String(ta.value ?? '').trim();
|
||||
if (!raw) return;
|
||||
|
||||
state.isPlanning = true;
|
||||
@@ -1368,23 +1366,6 @@ async function doInterceptAndPlanThenSend(rawSnapshot = '') {
|
||||
|
||||
function installSendInterceptors() {
|
||||
if (sendListenersInstalled) return;
|
||||
sendPointerDownHandler = (e) => {
|
||||
const btn = getSendButton();
|
||||
if (!btn) return;
|
||||
if (e.target !== btn && !btn.contains(e.target)) return;
|
||||
const ta = getSendTextarea();
|
||||
const raw = String(ta?.value ?? '').trim();
|
||||
if (!raw) return;
|
||||
if (state.isPlanning) {
|
||||
e.preventDefault();
|
||||
e.stopImmediatePropagation();
|
||||
return;
|
||||
}
|
||||
if (!shouldInterceptNow()) return;
|
||||
e.preventDefault();
|
||||
e.stopImmediatePropagation();
|
||||
doInterceptAndPlanThenSend(raw).catch(err => toastErr(String(err?.message ?? err)));
|
||||
};
|
||||
sendClickHandler = (e) => {
|
||||
const btn = getSendButton();
|
||||
if (!btn) return;
|
||||
@@ -1395,50 +1376,31 @@ function installSendInterceptors() {
|
||||
return;
|
||||
}
|
||||
if (!shouldInterceptNow()) return;
|
||||
const ta = getSendTextarea();
|
||||
const raw = String(ta?.value ?? '').trim();
|
||||
if (!raw) return;
|
||||
e.preventDefault();
|
||||
e.stopImmediatePropagation();
|
||||
doInterceptAndPlanThenSend(raw).catch(err => toastErr(String(err?.message ?? err)));
|
||||
doInterceptAndPlanThenSend().catch(err => toastErr(String(err?.message ?? err)));
|
||||
};
|
||||
sendKeydownHandler = (e) => {
|
||||
const ta = getSendTextarea();
|
||||
if (!ta || e.target !== ta) return;
|
||||
if (e.key === 'Enter' && !e.shiftKey) {
|
||||
if (!shouldInterceptNow()) return;
|
||||
const raw = String(ta.value ?? '').trim();
|
||||
if (!raw) return;
|
||||
e.preventDefault();
|
||||
e.stopImmediatePropagation();
|
||||
doInterceptAndPlanThenSend(raw).catch(err => toastErr(String(err?.message ?? err)));
|
||||
doInterceptAndPlanThenSend().catch(err => toastErr(String(err?.message ?? err)));
|
||||
}
|
||||
};
|
||||
sendKeyupHandler = (e) => {
|
||||
const ta = getSendTextarea();
|
||||
if (!ta || e.target !== ta) return;
|
||||
if (e.key !== 'Enter' || e.shiftKey) return;
|
||||
if (!state.isPlanning) return;
|
||||
e.preventDefault();
|
||||
e.stopImmediatePropagation();
|
||||
};
|
||||
document.addEventListener('pointerdown', sendPointerDownHandler, true);
|
||||
document.addEventListener('click', sendClickHandler, true);
|
||||
document.addEventListener('keydown', sendKeydownHandler, true);
|
||||
document.addEventListener('keyup', sendKeyupHandler, true);
|
||||
sendListenersInstalled = true;
|
||||
}
|
||||
|
||||
function uninstallSendInterceptors() {
|
||||
if (!sendListenersInstalled) return;
|
||||
if (sendPointerDownHandler) document.removeEventListener('pointerdown', sendPointerDownHandler, true);
|
||||
if (sendClickHandler) document.removeEventListener('click', sendClickHandler, true);
|
||||
if (sendKeydownHandler) document.removeEventListener('keydown', sendKeydownHandler, true);
|
||||
if (sendKeyupHandler) document.removeEventListener('keyup', sendKeyupHandler, true);
|
||||
sendPointerDownHandler = null;
|
||||
sendClickHandler = null;
|
||||
sendKeydownHandler = null;
|
||||
sendKeyupHandler = null;
|
||||
sendListenersInstalled = false;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user