@workday/canvas-kit-react
Version:
The parent module that contains all Workday Canvas Kit React components
25 lines (22 loc) • 861 B
text/typescript
import {createElemPropsHook, slugify} from '@workday/canvas-kit-react/common';
import {useCursorListModel} from './useCursorListModel';
/**
* This elemProps hook is used for cursor navigation by using [Active
* Descendant](https://www.w3.org/WAI/ARIA/apg/practices/keyboard-interface/#kbd_focus_activedescendant).
* `aria-activedescendant` tells assistive technology which element has "focus" within the component
* while this single element maintains focus.
*
* ```ts
* const useMyItem = composeHooks(
* useListActiveDescendant, // adds `aria-activedescendant` support
* useListItemRegister
* );
```
*/
export const useListActiveDescendant = createElemPropsHook(useCursorListModel)(model => {
return {
'aria-activedescendant': model.state.cursorId
? slugify(`${model.state.id}-${model.state.cursorId}`)
: undefined,
};
});