@shinyongjun/react-datepicker
Version:
DatePicker component in React App.
27 lines • 1.63 kB
JavaScript
;
'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