UNPKG

864 BTypeScriptView Raw
1import * as React from 'react';
2
3import ButtonGroup, { ButtonGroupProps } from './ButtonGroup';
4
5import { BsPrefixComponent, BsPrefixComponentClass } from './helpers';
6
7export interface ToggleButtonRadioProps<T> {
8 type?: 'radio';
9 name: string;
10 value?: T;
11 defaultValue?: T;
12 onChange?: (value: T) => void;
13}
14export interface ToggleButtonCheckboxProps<T> {
15 type: 'checkbox';
16 name?: string;
17 value?: T[];
18 defaultValue?: T[];
19 onChange?: (value: T[]) => void;
20}
21
22export type ToggleButtonGroupProps<T> =
23 | ToggleButtonRadioProps<T>
24 | ToggleButtonCheckboxProps<T>;
25
26declare class ToggleButtonGroup<
27 T,
28 // Need to use BsPrefixComponentClass to get proper type checking.
29 As extends React.ElementType = BsPrefixComponentClass<'a', ButtonGroupProps>
30> extends BsPrefixComponent<As, ToggleButtonGroupProps<T>> {}
31
32export default ToggleButtonGroup;