mirror of
https://github.com/henrywhitaker3/Speedtest-Tracker.git
synced 2025-12-24 22:39:26 +01:00
54 lines
1.4 KiB
TypeScript
54 lines
1.4 KiB
TypeScript
import * as React from 'react';
|
|
|
|
export type Omit<T, U> = Pick<T, Exclude<keyof T, keyof U>>;
|
|
|
|
export type ReplaceProps<Inner extends React.ElementType, P> = Omit<
|
|
React.ComponentPropsWithRef<Inner>,
|
|
P
|
|
> &
|
|
P;
|
|
|
|
export interface BsPrefixProps<As extends React.ElementType> {
|
|
as?: As;
|
|
bsPrefix?: string;
|
|
}
|
|
|
|
export interface BsPrefixRefForwardingComponent<
|
|
TInitial extends React.ElementType,
|
|
P = {}
|
|
> {
|
|
<As extends React.ElementType = TInitial>(
|
|
props: React.PropsWithChildren<ReplaceProps<As, BsPrefixProps<As> & P>>,
|
|
context?: any,
|
|
): React.ReactElement | null;
|
|
propTypes?: any;
|
|
contextTypes?: any;
|
|
defaultProps?: Partial<P>;
|
|
displayName?: string;
|
|
}
|
|
|
|
export class BsPrefixComponent<
|
|
As extends React.ElementType,
|
|
P = {}
|
|
> extends React.Component<ReplaceProps<As, BsPrefixProps<As> & P>> {}
|
|
|
|
// Need to use this instead of typeof Component to get proper type checking.
|
|
export type BsPrefixComponentClass<
|
|
As extends React.ElementType,
|
|
P = {}
|
|
> = React.ComponentClass<ReplaceProps<As, BsPrefixProps<As> & P>>;
|
|
|
|
export type SelectCallback = (
|
|
eventKey: string,
|
|
e: React.SyntheticEvent<unknown>,
|
|
) => void;
|
|
|
|
export interface TransitionCallbacks {
|
|
onEnter?(node: HTMLElement): any;
|
|
onEntered?(node: HTMLElement): any;
|
|
onEntering?(node: HTMLElement): any;
|
|
onExit?(node: HTMLElement): any;
|
|
onExited?(node: HTMLElement): any;
|
|
onExiting?(node: HTMLElement): any;
|
|
}
|