@procore/core-react
Version:
React library of Procore Design Guidelines
45 lines (44 loc) • 2.11 kB
TypeScript
import React from 'react';
import type { DropdownFlyoutProps, DropdownOption, FlyoutOption } from './DropdownFlyout.types';
export declare function noop(): void;
export declare function returnFalse(): boolean;
export declare function hasChildren(option: DropdownOption): boolean;
export declare function transformOption(options: DropdownOption[], parentId: FlyoutOption['parentId']): FlyoutOption[];
export declare function useDropdownFlyout({ flyoutOptions, onClick: _onClick, onKeyDown: _onKeyDown, }: Pick<DropdownFlyoutProps, 'onClick' | 'onKeyDown'> & {
flyoutOptions: FlyoutOption[];
}): {
isFocused: boolean;
isMouseOver: boolean;
isOpen: boolean;
options: FlyoutOption[];
expanded: string[];
highlighted: FlyoutOption;
expand: (option: FlyoutOption) => void;
collapse: (option: FlyoutOption) => void;
isHighlighted: (option: FlyoutOption) => boolean;
isExpanded: (option: FlyoutOption) => boolean;
closeDropdown: () => void;
closeSelectedDropdown: (e: Event | React.FocusEvent) => void;
openDropdown: () => void;
onKeyDown: (e: React.KeyboardEvent<HTMLDivElement>) => void;
onClick: (option: FlyoutOption) => void;
setMouseOver: (isMouseOver: boolean) => void;
setFocused: (isFocused: boolean) => void;
};
export declare function defaultOptionRenderer(option: DropdownOption): React.JSX.Element;
export declare const DropdownFlyoutContext: React.Context<{
onClick: (option: FlyoutOption) => void;
expand: (option: FlyoutOption) => void;
collapse: (option: FlyoutOption) => void;
optionRenderer: (option: DropdownOption) => React.ReactNode;
isExpanded: (option: FlyoutOption) => boolean;
isHighlighted: (option: FlyoutOption) => boolean;
}>;
export declare const useDropdownFlyoutContext: () => {
onClick: (option: FlyoutOption) => void;
expand: (option: FlyoutOption) => void;
collapse: (option: FlyoutOption) => void;
optionRenderer: (option: DropdownOption) => React.ReactNode;
isExpanded: (option: FlyoutOption) => boolean;
isHighlighted: (option: FlyoutOption) => boolean;
};