@momentum-ui/react-collaboration
Version:
Cisco Momentum UI Framework for React Collaboration Applications
31 lines (30 loc) • 1.36 kB
TypeScript
import { Dispatch, HTMLAttributes, SetStateAction } from 'react';
import { ListOrientation } from '../components/List/List.types';
import { ListItemBaseIndex } from '../components/ListItemBase/ListItemBase.types';
type IUseOrientationBasedKeyboardNavigationReturn = {
keyboardProps: HTMLAttributes<HTMLElement>;
focusWithinProps: HTMLAttributes<HTMLElement>;
getContext: () => {
setCurrentFocus: Dispatch<SetStateAction<ListItemBaseIndex>>;
shouldFocusOnPress?: boolean;
shouldItemFocusBeInset?: boolean;
noLoop?: boolean;
updateFocusBlocked?: boolean;
isFocusedWithin?: boolean;
getCurrentFocus?: () => ListItemBaseIndex;
addFocusCallback?: (index: ListItemBaseIndex, callback: (focused: boolean, focusBlocked: boolean) => void) => void;
};
};
export type IUseOrientationBasedKeyboardNavigationProps = {
listSize: number;
allItemIndexes?: ListItemBaseIndex[];
orientation: ListOrientation;
noLoop?: boolean;
initialFocus?: ListItemBaseIndex;
contextProps?: {
shouldFocusOnPress?: boolean;
shouldItemFocusBeInset?: boolean;
};
};
declare const useOrientationBasedKeyboardNavigation: (props: IUseOrientationBasedKeyboardNavigationProps) => IUseOrientationBasedKeyboardNavigationReturn;
export default useOrientationBasedKeyboardNavigation;