UNPKG

@ozen-ui/kit

Version:

React component library

46 lines (45 loc) 2.69 kB
"use strict"; 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;