Files
tolaria/src/components/inlineWikilinkBeforeInput.ts

29 lines
732 B
TypeScript
Raw Normal View History

2026-04-27 20:36:59 +02:00
type BeforeInputLike = {
inputType?: unknown
}
type PlainTextBeforeInputLike = BeforeInputLike & {
data?: unknown
isComposing?: unknown
}
type PlainTextBeforeInput = PlainTextBeforeInputLike & {
data: string
inputType: 'insertText'
isComposing?: false
}
export function isInsertBeforeInput(nativeEvent: BeforeInputLike) {
const { inputType } = nativeEvent
return typeof inputType === 'string' && inputType.startsWith('insert')
2026-04-25 19:23:00 +02:00
}
export function isPlainTextBeforeInput(
2026-04-27 20:36:59 +02:00
nativeEvent: PlainTextBeforeInputLike,
): nativeEvent is PlainTextBeforeInput {
return nativeEvent.inputType === 'insertText'
&& !nativeEvent.isComposing
&& typeof nativeEvent.data === 'string'
&& nativeEvent.data.length > 0
}