UNPKG

@ozen-ui/kit

Version:

React component library

45 lines (44 loc) 1.7 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.useAsDataListBaseItem = void 0; var react_1 = require("react"); var DataListBaseContext_1 = require("../../DataListBaseContext"); var useAsDataListBaseItem = function (_a) { var optionId = _a.optionId, ref = _a.ref, _b = _a.disabled, disabledProp = _b === void 0 ? false : _b; var _c = (0, DataListBaseContext_1.useDataListBaseContext)(), optionsControl = _c.optionsControl, optionsStore = _c.optionsStore, valueControl = _c.valueControl, active = _c.active, globalDisabled = _c.disabled; var disabled = disabledProp || globalDisabled; var option = { id: optionId, disabled: disabled, ref: ref, }; var onClick = function (event) { if (!active || disabled) { return; } var newFocused = option.id === optionsStore.focused.current ? option.id : null; optionsStore.setFocused(newFocused); optionsStore.setCurrentOption(option.id); valueControl.setValue(event, option.id); }; optionsStore.registerOption(option); (0, react_1.useEffect)(function () { return function () { optionsStore.unregisterOption(option); }; }, []); var select = function () { if (disabled) { return; } valueControl.setValue(null, option.id); }; var isSelected = optionsControl.isSelected(option); var isFocused = optionsControl.isFocused(option); return { select: select, selected: isSelected, focused: isFocused, onClick: onClick, disabled: disabled, }; }; exports.useAsDataListBaseItem = useAsDataListBaseItem;