@awsui/components-react
Version:
On July 19th, 2022, we launched [Cloudscape Design System](https://cloudscape.design). Cloudscape is an evolution of AWS-UI. It consists of user interface guidelines, front-end components, design resources, and development tools for building intuitive, en
67 lines • 2.55 kB
TypeScript
import React, { RefObject } from 'react';
import { ButtonTriggerProps } from '../../internal/components/button-trigger';
import { DropdownProps } from '../../internal/components/dropdown/interfaces';
import { DropdownStatusProps } from '../../internal/components/dropdown-status';
import { DropdownOption, OptionDefinition } from '../../internal/components/option/interfaces';
import { OptionsListProps } from '../../internal/components/options-list';
import { NonCancelableEventHandler } from '../../internal/events';
import { FilterProps } from '../parts/filter';
import { ItemProps } from '../parts/item';
export type MenuProps = Omit<OptionsListProps, 'children'> & {
ref: React.RefObject<HTMLDivElement>;
};
export type GetOptionProps = (option: DropdownOption, index: number) => ItemProps;
interface UseSelectProps {
selectedOptions: ReadonlyArray<OptionDefinition>;
updateSelectedOption: (option: OptionDefinition) => void;
options: ReadonlyArray<DropdownOption>;
filteringType: string;
keepOpen?: boolean;
embedded?: boolean;
onBlur?: NonCancelableEventHandler;
onFocus?: NonCancelableEventHandler;
externalRef: React.Ref<any>;
fireLoadItems: (filteringText: string) => void;
setFilteringValue?: (filteringText: string) => void;
useInteractiveGroups?: boolean;
statusType: DropdownStatusProps.StatusType;
isAllSelected?: boolean;
isSomeSelected?: boolean;
toggleAll?: () => void;
}
export interface SelectTriggerProps extends ButtonTriggerProps {
ref: RefObject<HTMLButtonElement>;
}
export declare function useSelect({
selectedOptions,
updateSelectedOption,
options,
filteringType,
onBlur,
onFocus,
externalRef,
keepOpen,
embedded,
fireLoadItems,
setFilteringValue,
useInteractiveGroups,
statusType,
isAllSelected,
isSomeSelected,
toggleAll
}: UseSelectProps): {
isOpen: boolean;
highlightedOption: DropdownOption | undefined;
highlightedIndex: number;
highlightType: import("../../internal/components/options-list/utils/use-highlight-option").HighlightType;
getTriggerProps: (disabled?: boolean, autoFocus?: boolean) => SelectTriggerProps;
getDropdownProps: () => Pick<DropdownProps, "onFocus" | "onBlur" | "dropdownContentId" | "dropdownContentRole">;
getMenuProps: () => MenuProps;
getFilterProps: () => Partial<FilterProps>;
getOptionProps: (option: DropdownOption, index: number) => any;
highlightOption: (option: DropdownOption) => void;
selectOption: (option?: DropdownOption) => void;
announceSelected: boolean;
dialogId: string;
};
export {};