@ozen-ui/kit
Version:
React component library
46 lines (45 loc) • 2.69 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.AutocompleteListCard = void 0;
var tslib_1 = require("tslib");
var react_1 = tslib_1.__importDefault(require("react"));
var useStoredValue_1 = require("../../hooks/useStoredValue");
var useThemeProps_1 = require("../../hooks/useThemeProps");
var react_2 = require("../../utils/react");
var AutocompleteBase_1 = require("../AutocompleteBase");
var constants_1 = require("./constants");
var context_1 = require("./context");
var hooks_1 = require("./hooks");
var modules_1 = require("./modules");
var utils_1 = require("./utils");
var AutocompleteListCardRender = function (inProps) {
var props = (0, useThemeProps_1.useThemeProps)({
props: inProps,
name: 'AutocompleteListCard',
});
var children = props.children, onChange = props.onChange, _a = props.multiple, multiple = _a === void 0 ? constants_1.AUTOCOMPLETE_LIST_CARD_DEFAULT_MULTIPLE : _a, valueProp = props.value, defaultValueProp = props.defaultValue, other = tslib_1.__rest(props, ["children", "onChange", "multiple", "value", "defaultValue"]);
var options = (0, useStoredValue_1.useStoredValue)([]);
var optionById = (0, useStoredValue_1.useStoredValue)({});
options.current = [];
optionById.current = {};
(0, react_2.extractElementsFromChildren)(children, utils_1.isAutocompleteListCardItem, function (element) {
var _a;
var props = element.props;
var option = {
label: props.label,
disabled: (_a = props.disabled) !== null && _a !== void 0 ? _a : false,
id: props.listId,
};
options.current.push(option);
optionById.current[option.id] = option;
});
var value = (0, hooks_1.useAutocompleteListCardValue)(valueProp, optionById);
var defaultValue = (0, hooks_1.useAutocompleteListCardValue)(defaultValueProp, optionById);
return (react_1.default.createElement(context_1.AutocompleteListCardChildrenContext.Provider, { value: {
children: children,
} },
react_1.default.createElement(AutocompleteBase_1.AutocompleteBase, tslib_1.__assign({ input: react_1.default.createElement(modules_1.AutocompleteListCardInput, null), dropdown: react_1.default.createElement(modules_1.AutocompleteListCardDropdown, null) }, other, { options: options.current, onChange: function (event, value, params) {
onChange === null || onChange === void 0 ? void 0 : onChange(event, (0, utils_1.toAutocompleteListCardValue)(value), params);
}, value: value, defaultValue: defaultValue, multiple: multiple }))));
};
exports.AutocompleteListCard = AutocompleteListCardRender;
;