@gravity-ui/uikit
Version:
Gravity UI base styling and components
27 lines (26 loc) • 1.02 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.getListItemClickHandler = void 0;
const getListItemClickHandler = ({ list, multiple, }) => {
const onItemClick = ({ id }) => {
if (list.state.disabledById[id])
return;
// always activate selected item
list.state.setActiveItemId(id);
if (list.state.expandedById && id in list.state.expandedById && list.state.setExpanded) {
list.state.setExpanded((prevState) => ({
...prevState,
[id]: !prevState[id], // expanded by id
}));
}
else {
list.state.setSelected((prevState) => ({
...(multiple ? prevState : {}),
[id]: multiple ? !prevState[id] : true, // always select on click in single select variant
}));
}
};
return onItemClick;
};
exports.getListItemClickHandler = getListItemClickHandler;
//# sourceMappingURL=getListItemClickHandler.js.map
;