@base-ui/react
Version:
Base UI is a library of headless ('unstyled') React components and low-level hooks. You gain complete control over your app's CSS and accessibility features.
28 lines (27 loc) • 1.09 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.handleInputPress = handleInputPress;
var _dom = require("@floating-ui/utils/dom");
var _createBaseUIEventDetails = require("../../internals/createBaseUIEventDetails");
var _reasons = require("../../internals/reasons");
var _element = require("../../floating-ui-react/utils/element");
function handleInputPress(event, store, disabled, readOnly, shouldIgnoreTarget) {
if (event.baseUIHandlerPrevented || readOnly) {
return;
}
const target = (0, _element.getTarget)(event.nativeEvent);
const targetElement = (0, _dom.isElement)(target) ? target : null;
if (targetElement !== event.currentTarget && (shouldIgnoreTarget?.(targetElement) || (0, _element.isInteractiveElement)(targetElement))) {
return;
}
event.preventDefault();
if (disabled) {
return;
}
store.state.inputRef.current?.focus();
if (store.state.openOnInputClick) {
store.state.setOpen(true, (0, _createBaseUIEventDetails.createChangeEventDetails)(_reasons.REASONS.inputPress, event.nativeEvent));
}
}