@gravity-ui/uikit
Version:
Gravity UI base styling and components
23 lines (22 loc) • 846 B
JavaScript
export 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;
};
//# sourceMappingURL=getListItemClickHandler.js.map