diff --git a/react-css-modules/react-css-modules-tests.tsx b/react-css-modules/react-css-modules-tests.tsx new file mode 100644 index 0000000000..32c78eda1a --- /dev/null +++ b/react-css-modules/react-css-modules-tests.tsx @@ -0,0 +1,47 @@ +/// +/// + + +import * as React from 'react'; +import * as CSSModules from 'react-css-modules'; + +const styles = {}; + +interface TableProps extends CSSModules.InjectedCSSModuleProps { + +} + +class Table extends React.Component { + render () { + const { styles } = this.props; + + return
+
+
A0
+
B0
+
+
; + } +} + +const TableHOC = CSSModules(Table, styles); + + + +interface TableDecoratedProps extends CSSModules.InjectedCSSModuleProps { + +} + +@CSSModules(styles) +class TableDecorated extends React.Component { + render () { + const { styles } = this.props; + + return
+
+
A0
+
B0
+
+
; + } +} diff --git a/react-css-modules/react-css-modules.d.ts b/react-css-modules/react-css-modules.d.ts new file mode 100644 index 0000000000..d8a414d35f --- /dev/null +++ b/react-css-modules/react-css-modules.d.ts @@ -0,0 +1,33 @@ +// Type definitions for react-css-modules 3.7.9 +// Project: https://github.com/gajus/react-css-modules +// Definitions by: Kostya Esmukov +// 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): (Component: C) => C; + (Component: C, defaultStyles: StylesObject, options?: TypeOptions): C; + } + + module CSSModules { + // Extend your component's Prop interface with this one to get access to `this.props.styles` + // + // interface MyComponentProps extends CSSModules.InjectedCSSModuleProps {} + interface InjectedCSSModuleProps { + styles?: StylesObject; + } + } + + let CSSModules: CSSModules; + + export = CSSModules; +}