@react-native-aria/interactions
Version:
47 lines (46 loc) • 1.18 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.usePress = usePress;
var _react = _interopRequireDefault(require("react"));
var _utils = require("@react-aria/utils");
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
function usePress({
isDisabled,
onPress,
onPressStart,
onPressEnd,
onPressUp,
// No onPressUp on RN.
onPressChange,
isPressed: isPressedProp,
...restProps
}) {
let [isPressed, setPressed] = _react.default.useState(false);
let pressProps = {
onPress: e => {
if (isDisabled) return;
onPress && onPress(e);
},
onPressIn: e => {
if (isDisabled) return;
onPressStart && onPressStart(e);
setPressed(true);
onPressChange && onPressChange(true);
},
onPressOut: e => {
if (isDisabled) return;
onPressEnd && onPressEnd(e);
setPressed(false);
onPressChange && onPressChange(false);
onPressUp && onPressUp(e);
}
};
pressProps = (0, _utils.mergeProps)(pressProps, restProps);
return {
isPressed: isPressedProp || isPressed,
pressProps
};
}
//# sourceMappingURL=usePress.js.map