fix(nofxi): prevent IME composition enter from sending message

This commit is contained in:
shinchan-zhai
2026-03-22 22:35:22 +08:00
parent 4996db81d4
commit 7cbdb4e6e0

View File

@@ -188,7 +188,7 @@
<div class="typing" id="typ"><div class="dots"><span></span><span></span><span></span></div><span data-i18n="thinking">Thinking...</span></div>
<div class="ibar">
<div class="iwrap">
<input id="inp" data-i18n-placeholder="input_placeholder" placeholder="Ask NOFXi anything..." onkeydown="if(event.key==='Enter'&&!event.shiftKey){event.preventDefault();send()}" autocomplete="off">
<input id="inp" data-i18n-placeholder="input_placeholder" placeholder="Ask NOFXi anything..." autocomplete="off">
<button class="sbtn" id="sBtn" onclick="send()"></button>
</div>
<div class="ihint"><kbd>Enter</kbd> <span data-i18n="input_hint">to send</span> · /help, /analyze BTC, /buy ETH 0.1</div>
@@ -399,6 +399,17 @@ async function loadChart(){
chTimer=setInterval(loadChart,30000);
}
// IME composition guard
let composing = false;
inpEl.addEventListener('compositionstart', () => { composing = true; });
inpEl.addEventListener('compositionend', () => { composing = false; });
inpEl.addEventListener('keydown', (e) => {
if (e.key === 'Enter' && !e.shiftKey && !composing) {
e.preventDefault();
send();
}
});
// Init
applyLang();
inpEl.focus();