@workday/canvas-kit-react
Version:
The parent module that contains all Workday Canvas Kit React components
30 lines (29 loc) • 1.12 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.useListItemSelect = void 0;
const common_1 = require("@workday/canvas-kit-react/common");
const isElementDisabled_1 = require("./isElementDisabled");
const useListModel_1 = require("./useListModel");
/**
* This elemProps hook adds selection support to a `*.Item` subcomponent of a collection. It adds a
* click handler that toggles selection status according to the [Selection
* Manager](#selection-manager) used.
*
* ```ts
* const useMyItem = composeHooks(
* useListItemSelect, // adds selection support to an item
* useListItemRegister
* );
* ```
*/
exports.useListItemSelect = (0, common_1.createElemPropsHook)(useListModel_1.useListModel)(({ state, events }, _, elemProps = {}) => {
const name = elemProps['data-id'] || '';
const onClick = (event) => {
if ((0, isElementDisabled_1.isElementDisabled)(event.currentTarget) || state.nonInteractiveIds.includes(name)) {
return null;
}
events.select({ id: name });
return undefined;
};
return { onClick };
});