UNPKG

@shinyongjun/react-datepicker

Version:
27 lines 1.63 kB
"use strict"; 'use client'; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); var jsx_runtime_1 = require("react/jsx-runtime"); var react_1 = require("react"); var core_1 = require("../../constants/core"); var useOutsideClick_1 = __importDefault(require("../../hooks/useOutsideClick")); var ConditionalWrapper_1 = __importDefault(require("./ConditionalWrapper")); var Portal_1 = __importDefault(require("./Portal")); function Layer(_a) { var isVisible = _a.isVisible, setIsVisible = _a.setIsVisible, withPortal = _a.withPortal, children = _a.children, inputRef = _a.inputRef; var layer = (0, react_1.useRef)(null); (0, useOutsideClick_1.default)(layer, function (e) { setTimeout(function () { var target = e.target; if (inputRef.current && !inputRef.current.contains(target)) { setIsVisible(false); } }, 1); }); return ((0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, { children: isVisible && ((0, jsx_runtime_1.jsx)(ConditionalWrapper_1.default, { condition: withPortal, wrapper: function (children) { return ((0, jsx_runtime_1.jsx)(Portal_1.default, { selector: "body", children: (0, jsx_runtime_1.jsx)("div", { className: "".concat(core_1.NAME_SPACE, "__portal"), children: children }) })); }, children: (0, jsx_runtime_1.jsx)("div", { className: "".concat(core_1.NAME_SPACE, "__layer"), ref: layer, children: children }) })) })); } exports.default = Layer; //# sourceMappingURL=Layer.js.map