react-native-keyboard-controller
Version:
Keyboard manager which works in identical way on both iOS and Android
65 lines (62 loc) • 2.9 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.useHandler = exports.useFocusedInputLayoutHandler = exports.useDerivedValue = exports.useAnimatedStyle = exports.useAnimatedReaction = exports.useAnimatedProps = exports.useAnimatedKeyboardHandler = void 0;
var _reactNativeReanimated = require("react-native-reanimated");
// Dependencies are only needed on Web when the Babel plugin is unavailable.
const useAnimatedProps = (updater, _dependencies, adapters, isAnimatedProps) => (0, _reactNativeReanimated.useAnimatedProps)(updater, undefined, adapters, isAnimatedProps);
exports.useAnimatedProps = useAnimatedProps;
const useAnimatedReaction = (prepare, react) => (0, _reactNativeReanimated.useAnimatedReaction)(prepare, react);
exports.useAnimatedReaction = useAnimatedReaction;
const useAnimatedStyle = updater => (0, _reactNativeReanimated.useAnimatedStyle)(updater);
exports.useAnimatedStyle = useAnimatedStyle;
const useDerivedValue = updater => (0, _reactNativeReanimated.useDerivedValue)(updater);
exports.useDerivedValue = useDerivedValue;
const useHandler = handlers => (0, _reactNativeReanimated.useHandler)(handlers);
exports.useHandler = useHandler;
const useAnimatedKeyboardHandler = (handlers, dependencies) => {
const {
context,
doDependenciesDiffer
} = useHandler(handlers, dependencies);
return (0, _reactNativeReanimated.useEvent)(event => {
"worklet";
const {
onKeyboardMoveStart,
onKeyboardMove,
onKeyboardMoveEnd,
onKeyboardMoveInteractive
} = handlers;
if (onKeyboardMoveStart && event.eventName.endsWith("onKeyboardMoveStart")) {
onKeyboardMoveStart(event, context);
}
if (onKeyboardMove && event.eventName.endsWith("onKeyboardMove")) {
onKeyboardMove(event, context);
}
if (onKeyboardMoveEnd && event.eventName.endsWith("onKeyboardMoveEnd")) {
onKeyboardMoveEnd(event, context);
}
if (onKeyboardMoveInteractive && event.eventName.endsWith("onKeyboardMoveInteractive")) {
onKeyboardMoveInteractive(event, context);
}
}, ["onKeyboardMoveStart", "onKeyboardMove", "onKeyboardMoveEnd", "onKeyboardMoveInteractive"], doDependenciesDiffer);
};
exports.useAnimatedKeyboardHandler = useAnimatedKeyboardHandler;
const useFocusedInputLayoutHandler = (handlers, dependencies) => {
const {
context,
doDependenciesDiffer
} = useHandler(handlers, dependencies);
return (0, _reactNativeReanimated.useEvent)(event => {
"worklet";
const {
onFocusedInputLayoutChanged
} = handlers;
if (onFocusedInputLayoutChanged && event.eventName.endsWith("onFocusedInputLayoutChanged")) {
onFocusedInputLayoutChanged(event, context);
}
}, ["onFocusedInputLayoutChanged"], doDependenciesDiffer);
};
exports.useFocusedInputLayoutHandler = useFocusedInputLayoutHandler;
//# sourceMappingURL=reanimated.native.js.map