respond-framework
Version:
create as fast you think
47 lines (46 loc) • 1.19 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _react = require("react");
var _reactNative = require("react-native");
var _constants = require("../../../helpers/constants.js");
var _isEqual = require("../../../utils/isEqual.js");
var _default = exports.default = (0, _isEqual.memo)(/*#__PURE__*/(0, _react.forwardRef)(({
event,
arg,
children,
disabled,
styleHover,
onPress,
testKey,
name,
...props
}, ref) => {
const callback = event ? () => {
event.trigger(arg, {
testKey,
name
});
onPress?.();
} : onPress;
const [hover, set] = (0, _react.useState)(false);
const bright = disabled || _constants.isNative || hover;
const style = bright ? [props.style, styleHover || {
opacity: 1
}] : [props.style, styleHover ? undefined : {
opacity: .8
}];
const Component = disabled ? _reactNative.View : _reactNative.TouchableOpacity;
return /*#__PURE__*/(0, _react.createElement)(Component, {
ref,
hitSlop: 10,
onPress: !disabled && callback,
onMouseEnter: () => set(true),
onMouseLeave: () => set(false),
...props,
style,
children
});
}));