react-typestyle
Version:
A react integration of the TypeStyle ecosystem
47 lines (46 loc) • 2.24 kB
TypeScript
/// <reference types="react" />
import * as React from 'react';
import { ClassNames, DynamicSheet, Plugin, SheetGenerator } from '../types';
import Cache from './cache';
import Registry from './registry';
export declare type InputSheet<P> = DynamicSheet<P> | SheetGenerator<P>;
export interface InjectedProps {
classNames: ClassNames;
}
export interface Options {
plugins?: Plugin[];
renderer: Registry;
shouldStylesUpdate<P>(props: P, nextProps: P): boolean;
}
export interface ComponentOptions<P> {
styles?: InputSheet<P>;
}
export declare type StyledStatelessComponent<P = {}> = React.StatelessComponent<P & InjectedProps> & ComponentOptions<P>;
declare const hoc: ({ plugins, renderer, shouldStylesUpdate }: Options) => <OriginalProps extends {}>(Component: (React.ComponentClass<OriginalProps & InjectedProps> & {
styles?: DynamicSheet<Readonly<OriginalProps>> | SheetGenerator<Readonly<OriginalProps>> | undefined;
}) | (React.StatelessComponent<OriginalProps & InjectedProps> & {
styles?: DynamicSheet<Readonly<OriginalProps>> | SheetGenerator<Readonly<OriginalProps>> | undefined;
}), componentOptions?: ComponentOptions<Readonly<OriginalProps>>) => {
new (props: Readonly<OriginalProps>, context?: any): {
classNames: ClassNames;
registry: Cache<Readonly<OriginalProps>>;
componentWillMount(): void;
componentWillReceiveProps(nextProps: Readonly<OriginalProps>): void;
componentWillUnmount(): void;
render(): JSX.Element;
updateStyles(props: Readonly<OriginalProps>): void;
setState<K extends never>(state: {} | ((prevState: Readonly<{}>, props: Readonly<OriginalProps>) => {} | Pick<{}, K>) | Pick<{}, K>, callback?: (() => void) | undefined): void;
forceUpdate(callBack?: (() => void) | undefined): void;
props: Readonly<{
children?: React.ReactNode;
}> & Readonly<Readonly<OriginalProps>>;
state: Readonly<{}>;
context: any;
refs: {
[key: string]: React.ReactInstance;
};
};
defaultProps: Partial<OriginalProps & InjectedProps> | undefined;
propTypes: React.ValidationMap<OriginalProps & InjectedProps> | undefined;
};
export default hoc;