Added typings for react-css-modules

This commit is contained in:
Kostya Esmukov
2016-08-05 15:58:45 +03:00
parent e659470271
commit f813c33ffb
2 changed files with 77 additions and 0 deletions

View File

@@ -0,0 +1,47 @@
///<reference path="../react/react.d.ts" />
///<reference path="./react-css-modules.d.ts" />
import * as React from 'react';
import * as CSSModules from 'react-css-modules';
const styles = {};
interface TableProps extends CSSModules.InjectedCSSModuleProps {
}
class Table extends React.Component<TableProps, {}> {
render () {
const { styles } = this.props;
return <div styleName='table'>
<div styleName='row'>
<div styleName='cell'>A0</div>
<div styleName='cell'>B0</div>
</div>
</div>;
}
}
const TableHOC = CSSModules(Table, styles);
interface TableDecoratedProps extends CSSModules.InjectedCSSModuleProps {
}
@CSSModules(styles)
class TableDecorated extends React.Component<TableDecoratedProps, {}> {
render () {
const { styles } = this.props;
return <div styleName='table'>
<div styleName='row'>
<div styleName='cell'>A0</div>
<div styleName='cell'>B0</div>
</div>
</div>;
}
}

View File

@@ -0,0 +1,30 @@
// Type definitions for react-css-modules 3.7.9
// Project: https://github.com/gajus/react-css-modules
// Definitions by: Kostya Esmukov <https://github.com/KostyaEsmukov>
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
declare module 'react-css-modules' {
interface TypeOptions {
allowMultiple?: boolean;
errorWhenNotFound?: boolean;
}
type StylesObject = any;
interface CSSModules {
(defaultStyles: StylesObject, options?: TypeOptions): <C extends Function>(Component: C) => C;
<C extends Function>(Component: C, defaultStyles: StylesObject, options?: TypeOptions): C;
}
module CSSModules {
interface InjectedCSSModuleProps {
styles: StylesObject;
}
}
let CSSModules: CSSModules;
export = CSSModules;
}