Files
goTorrent/goTorrentWebUI/node_modules/material-ui/node_modules/react-flow-types/index.js.flow

25 lines
1.1 KiB
Plaintext

// @flow
import * as React from 'react';
export type ClassComponent<Props, State> =
Class<React.Component<Props, State>>;
export type ClassComponentWithDefaultProps<DefaultProps, Props, State> =
ClassComponent<Props, State> & {defaultProps: DefaultProps};
export type ComponentWithDefaultProps<DefaultProps, Props> =
React.ComponentType<Props> & {defaultProps: DefaultProps};
/**
* Here is a generic type for HOCs:
*
* It takes two type parameters: RequiredProps and ProvidedProps
*
* RequiredProps: The final wrapped component will need RequiredProps, in addition to its own props
* ProvidedProps: The final wrapped component will not need ProvidedProps, because the HOC will provide them to the inner component
*/
export type HigherOrderComponent<RequiredProps, ProvidedProps> =
& (<OriginalProps, DefaultProps>(component: ComponentWithDefaultProps<DefaultProps, OriginalProps>) =>
React.ComponentType<RequiredProps & $Diff<OriginalProps, ProvidedProps & DefaultProps>>)
& (<OriginalProps>(component: React.ComponentType<OriginalProps>) => React.ComponentType<RequiredProps & $Diff<OriginalProps, ProvidedProps>>);