fix(app): iPad hardware Enter submits the composer

Fixes #810
This commit is contained in:
Bolun Zhang
2026-05-13 17:52:39 +08:00
committed by GitHub
parent 72293f7f4f
commit 81697f85b2
9 changed files with 356 additions and 0 deletions
@@ -0,0 +1,34 @@
import type { EventSubscription } from "expo-modules-core";
type HardwareKeyboardSubmitHandler = () => void;
const testHandlers = new Set<HardwareKeyboardSubmitHandler>();
let isEnabledForTest = false;
export function setHardwareKeyboardSubmitEnabled(enabled: boolean) {
isEnabledForTest = enabled;
}
export function addHardwareKeyboardSubmitListener(
handler: HardwareKeyboardSubmitHandler,
): EventSubscription {
testHandlers.add(handler);
return {
remove: () => {
testHandlers.delete(handler);
},
};
}
export function emitHardwareKeyboardSubmitForTest() {
testHandlers.forEach((handler) => handler());
}
export function resetHardwareKeyboardSubmitForTest() {
testHandlers.clear();
isEnabledForTest = false;
}
export function getHardwareKeyboardSubmitEnabledForTest() {
return isEnabledForTest;
}