@ozen-ui/kit
Version:
React component library
48 lines (47 loc) • 2.84 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.AutocompleteListCardDropdown = void 0;
var tslib_1 = require("tslib");
var react_1 = tslib_1.__importStar(require("react"));
var useCreateResizeObserver_1 = require("../../../../hooks/useCreateResizeObserver");
var useStoredValue_1 = require("../../../../hooks/useStoredValue");
var useThemeProps_1 = require("../../../../hooks/useThemeProps");
var polymorphicComponentWithRef_1 = require("../../../../utils/polymorphicComponentWithRef");
var DataListCard_1 = require("../../../DataListCard");
var constants_1 = require("../../constants");
var context_1 = require("../../context");
var utils_1 = require("../../utils");
var hooks_1 = require("./hooks");
exports.AutocompleteListCardDropdown = (0, polymorphicComponentWithRef_1.polymorphicComponentWithRef)(function (inProps, ref) {
var props = (0, useThemeProps_1.useThemeProps)({
props: inProps,
name: 'AutocompleteListCardDropdown',
});
var _a = props.as, as = _a === void 0 ? constants_1.AUTOCOMPLETE_LIST_CARD_DEFAULT_DROPDOWN_TAG : _a, onClose = props.onClose, other = tslib_1.__rest(props, ["as", "onClose"]);
var _b = (0, context_1.useAutocompleteListCardContext)(), inputRef = _b.inputRef, size = _b.size, dropdownControl = _b.dropdownControl, multiple = _b.multiple, valueControl = _b.valueControl, disabled = _b.disabled;
var children = (0, hooks_1.useAutocompleteListCardDropdownChildren)();
var updateStored = (0, useStoredValue_1.useStoredValue)(null);
var resizeObserver = (0, useCreateResizeObserver_1.useCreateResizeObserver)(function () {
var _a;
(_a = updateStored.current) === null || _a === void 0 ? void 0 : _a.call(updateStored);
});
(0, react_1.useEffect)(function () {
var input = inputRef.current;
if (input) {
resizeObserver === null || resizeObserver === void 0 ? void 0 : resizeObserver.observe(inputRef.current);
}
}, [inputRef]);
return (react_1.default.createElement(DataListCard_1.DataListCard, tslib_1.__assign({}, other, { ref: ref, as: as, anchorRef: inputRef, size: size, open: dropdownControl.isOpen, onClose: function () {
onClose === null || onClose === void 0 ? void 0 : onClose();
dropdownControl.close();
}, setUpdate: function (update) {
var _a;
updateStored.current = update;
(_a = other.setUpdate) === null || _a === void 0 ? void 0 : _a.call(other, update);
}, onChange: function (event, _, changedOption) {
if (disabled) {
return;
}
valueControl.setValue(event, changedOption, { source: 'select' });
}, multiple: multiple, value: (0, utils_1.toAutocompleteListCardValue)(valueControl.value) }), children));
});
;