UNPKG

@material-ui/lab

Version:

Material-UI Lab - Incubator for Material-UI React components.

56 lines (51 loc) 1.72 kB
import _extends from "@babel/runtime/helpers/esm/extends"; import * as React from 'react'; import { WrapperVariantContext } from './WrapperVariantContext'; import { KeyboardDateInput } from '../KeyboardDateInput'; import { executeInTheNextEventLoopTick } from '../utils'; import PickersPopper from '../PickersPopper'; import { CanAutoFocusContext, useAutoFocusControl } from '../hooks/useCanAutoFocus'; const DesktopTooltipWrapper = props => { const { open, children, PopperProps, onDismiss, DateInputProps, TransitionComponent, KeyboardDateInputComponent = KeyboardDateInput } = props; const inputRef = React.useRef(null); const popperRef = React.useRef(null); const { canAutoFocus, onOpen } = useAutoFocusControl(open); const handleBlur = () => { executeInTheNextEventLoopTick(() => { if (inputRef.current?.contains(document.activeElement) || popperRef.current?.contains(document.activeElement)) { return; } onDismiss(); }); }; return /*#__PURE__*/React.createElement(WrapperVariantContext.Provider, { value: "desktop" }, /*#__PURE__*/React.createElement(CanAutoFocusContext.Provider, { value: canAutoFocus }, /*#__PURE__*/React.createElement(KeyboardDateInputComponent, _extends({}, DateInputProps, { containerRef: inputRef, onBlur: handleBlur })), /*#__PURE__*/React.createElement(PickersPopper, { role: "tooltip", open: open, containerRef: popperRef, anchorEl: inputRef.current, TransitionComponent: TransitionComponent, PopperProps: PopperProps, onBlur: handleBlur, onClose: onDismiss, onOpen: onOpen }, children))); }; export default DesktopTooltipWrapper;