UNPKG

1.8 kBTypeScriptView Raw
1import PropTypes from 'prop-types';
2import React from 'react';
3import { DropdownContextValue } from './DropdownContext';
4export interface UseDropdownToggleProps {
5 ref: DropdownContextValue['setToggle'];
6 'aria-haspopup': boolean;
7 'aria-expanded': boolean;
8}
9export interface UseDropdownToggleHelpers {
10 show: DropdownContextValue['show'];
11 toggle: DropdownContextValue['toggle'];
12}
13/**
14 * Wires up Dropdown toggle functionality, returning a set a props to attach
15 * to the element that functions as the dropdown toggle (generally a button).
16 *
17 * @memberOf Dropdown
18 */
19export declare function useDropdownToggle(): [UseDropdownToggleProps, UseDropdownToggleHelpers];
20export interface DropdownToggleProps {
21 children: (args: UseDropdownToggleHelpers & {
22 props: UseDropdownToggleProps;
23 }) => React.ReactNode;
24}
25/**
26 * Also exported as `<Dropdown.Toggle>` from `Dropdown`.
27 *
28 * @displayName DropdownToggle
29 * @memberOf Dropdown
30 */
31declare function DropdownToggle({ children }: DropdownToggleProps): JSX.Element;
32declare namespace DropdownToggle {
33 var displayName: string;
34 var propTypes: {
35 /**
36 * A render prop that returns a Toggle element. The `props`
37 * argument should spread through to **a component that can accept a ref**. Use
38 * the `onToggle` argument to toggle the menu open or closed
39 *
40 * @type {Function ({
41 * show: boolean,
42 * toggle: (show: boolean) => void,
43 * props: {
44 * ref: (?HTMLElement) => void,
45 * aria-haspopup: true
46 * aria-expanded: boolean
47 * },
48 * }) => React.Element}
49 */
50 children: PropTypes.Validator<(...args: any[]) => any>;
51 };
52}
53/** @component */
54export default DropdownToggle;