UNPKG

@procore/core-react

Version:
45 lines (44 loc) 2.11 kB
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; };