Skip to content

Commit

Permalink
Revert "fix(ui): IME composition detection not working (#17476)" #17536
Browse files Browse the repository at this point in the history
This reverts commit 39fe251.
  • Loading branch information
rstoenescu committed Oct 19, 2024
1 parent 75e9c6b commit 6847879
Showing 1 changed file with 19 additions and 2 deletions.
Original file line number Diff line number Diff line change
@@ -1,12 +1,29 @@
import { client } from '../../plugins/platform/Platform.js'

const isJapanese = /[\u3000-\u303f\u3040-\u309f\u30a0-\u30ff\uff00-\uff9f\u4e00-\u9faf\u3400-\u4dbf]/
const isChinese = /[\u4e00-\u9fff\u3400-\u4dbf\u{20000}-\u{2a6df}\u{2a700}-\u{2b73f}\u{2b740}-\u{2b81f}\u{2b820}-\u{2ceaf}\uf900-\ufaff\u3300-\u33ff\ufe30-\ufe4f\uf900-\ufaff\u{2f800}-\u{2fa1f}]/u
const isKorean = /[\u3131-\u314e\u314f-\u3163\uac00-\ud7a3]/
const isPlainText = /[a-z0-9_ -]$/i

export default function (onInput) {
return function onComposition (e) {
if (e.type === 'compositionend' || e.type === 'change') {
if (e.target.qComposing !== true) return
e.target.qComposing = false
onInput(e)
}
else if (e.type === 'compositionstart') {
e.target.qComposing = true
else if (
e.type === 'compositionupdate'
&& e.target.qComposing !== true
&& typeof e.data === 'string'
) {
const isComposing = client.is.firefox === true
? isPlainText.test(e.data) === false
: isJapanese.test(e.data) === true || isChinese.test(e.data) === true || isKorean.test(e.data) === true

if (isComposing === true) {
e.target.qComposing = true
}
}
}
}

0 comments on commit 6847879

Please sign in to comment.