UNPKG

@smart-react-components/ui

Version:
34 lines (33 loc) 1.76 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const useChangeEffect_1 = __importDefault(require("@smart-react-components/core/hooks/useChangeEffect")); const react_1 = __importDefault(require("react")); const types_1 = require("../types"); const useAddons = ({ Component, leftAddon, rightAddon, props }) => { const generateAddonEl = (item, position) => { var _a; if (!item) { return null; } if (((_a = item === null || item === void 0 ? void 0 : item.type) === null || _a === void 0 ? void 0 : _a.displayName) === 'SRCAddon') { return react_1.default.cloneElement(item, Object.assign(Object.assign(Object.assign({}, props), item.props), { position })); } return (react_1.default.createElement(Component, Object.assign({}, props, { position: position }), item)); }; const [leftAddonEl, setLeftAddonEl] = react_1.default.useState(() => generateAddonEl(leftAddon, types_1.OrderPosition.LEFT)); const [rightAddonEl, setRightAddonEl] = react_1.default.useState(() => generateAddonEl(rightAddon, types_1.OrderPosition.RIGHT)); (0, useChangeEffect_1.default)(() => { setLeftAddonEl(generateAddonEl(leftAddon, types_1.OrderPosition.LEFT)); }, [leftAddon, props.isDisabled, props.isFocused]); (0, useChangeEffect_1.default)(() => { setRightAddonEl(generateAddonEl(rightAddon, types_1.OrderPosition.RIGHT)); }, [rightAddon, props.isDisabled, props.isFocused]); return { leftAddon: leftAddonEl, rightAddon: rightAddonEl, }; }; exports.default = useAddons;