UNPKG

1.04 kBTypeScriptView Raw
1import * as React from 'react';
2
3export type Omit<T, U> = Pick<T, Exclude<keyof T, keyof U>>;
4
5export type ReplaceProps<Inner extends React.ElementType, P> = Omit<
6 React.ComponentPropsWithRef<Inner>,
7 P
8> &
9 P;
10
11export interface BsPrefixProps<As extends React.ElementType> {
12 as?: As;
13 bsPrefix?: string;
14}
15
16export class BsPrefixComponent<
17 As extends React.ElementType,
18 P = {}
19> extends React.Component<ReplaceProps<As, BsPrefixProps<As> & P>> {}
20
21// Need to use this instead of typeof Component to get proper type checking.
22export type BsPrefixComponentClass<
23 As extends React.ElementType,
24 P = {}
25> = React.ComponentClass<ReplaceProps<As, BsPrefixProps<As> & P>>;
26
27export type SelectCallback = (
28 eventKey: string,
29 e: React.SyntheticEvent<unknown>,
30) => void;
31
32export interface TransitionCallbacks {
33 onEnter?(node: HTMLElement): any;
34 onEntered?(node: HTMLElement): any;
35 onEntering?(node: HTMLElement): any;
36 onExit?(node: HTMLElement): any;
37 onExited?(node: HTMLElement): any;
38 onExiting?(node: HTMLElement): any;
39}