diff --git a/types/react-tabs-redux/TabContent.d.ts b/types/react-tabs-redux/TabContent.d.ts new file mode 100644 index 0000000000..9c3d5c24a6 --- /dev/null +++ b/types/react-tabs-redux/TabContent.d.ts @@ -0,0 +1,15 @@ +import * as React from 'react'; + +export interface TabContentProps { + children?: React.ReactNode; + for: string | number; + visibleStyle?: object; + isVisible?: boolean; + renderActiveTabContentOnly?: boolean; + disableInlineStyles?: boolean; + className?: string; + visibleClassName?: string; + style?: object; +} + +export declare class TabContent extends React.Component {} diff --git a/types/react-tabs-redux/TabLink.d.ts b/types/react-tabs-redux/TabLink.d.ts new file mode 100644 index 0000000000..392fec2d73 --- /dev/null +++ b/types/react-tabs-redux/TabLink.d.ts @@ -0,0 +1,19 @@ +import * as React from 'react'; + +export interface TabLinkProps { + to: number | string; + component?: string; + handleSelect?: (tab: string, name: string) => void; + onClick?: (event: Event) => void; + children?: React.ReactNode; + isActive?: boolean; + namespace?: string; + activeStyle?: object; + disableInlineStyles?: boolean; + className?: string; + activeClassName?: string; + style?: object; + default?: boolean; +} + +export declare class TabLink extends React.Component {} diff --git a/types/react-tabs-redux/Tabs.d.ts b/types/react-tabs-redux/Tabs.d.ts new file mode 100644 index 0000000000..8f0599c0f5 --- /dev/null +++ b/types/react-tabs-redux/Tabs.d.ts @@ -0,0 +1,14 @@ +import * as React from 'react'; + +export interface TabsProps { + name?: string; + onChange?: (selectedTab: string, name: string) => void; + handleSelect?: (tab: string, name: string) => void; + selectedTab?: string; + activeLinkStyle?: object; + visibleTabStyle?: object; + disableInlineStyles?: boolean; + renderActiveTabContentOnly?: boolean; +} + +export declare class Tabs extends React.Component {} diff --git a/types/react-tabs-redux/index.d.ts b/types/react-tabs-redux/index.d.ts new file mode 100644 index 0000000000..62ee5cc5d1 --- /dev/null +++ b/types/react-tabs-redux/index.d.ts @@ -0,0 +1,8 @@ +// Type definitions for react-tabs-redux 4.0 +// Project: https://github.com/patrik-piskay/react-tabs-redux#readme +// Definitions by: Anton Bortnikov +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped + +export {Tabs, TabsProps} from './Tabs'; +export {TabLink, TabLinkProps} from './TabLink'; +export {TabContent, TabContentProps} from './TabContent'; diff --git a/types/react-tabs-redux/react-tabs-redux-tests.tsx b/types/react-tabs-redux/react-tabs-redux-tests.tsx new file mode 100644 index 0000000000..758ba7b5c9 --- /dev/null +++ b/types/react-tabs-redux/react-tabs-redux-tests.tsx @@ -0,0 +1,44 @@ +import * as React from 'react'; +import * as ReactDOM from 'react-dom'; +import { + Tabs, + TabLink, + TabContent, + TabsProps, + TabLinkProps, + TabContentProps +} from 'react-tabs-redux'; + +interface TestTabsProps extends TabsProps {} +interface TestTabLinkProps extends TabLinkProps {} +interface TestTabContentProps extends TabContentProps {} + +class TestApp extends React.Component { + onChange = (selectedTab: string, name: string) => { + console.log(`selectedTab: ${selectedTab}`); + console.log(`namespace: ${name}`); + } + + onClick = (event: Event) => { + console.log(`event: ${event.type}`); + } + + render() { + return ( + + Tab1 + Tab2 + Tab3 + + Content1 + Content2 + Content3 + + ); + } +} + +ReactDOM.render( + , + document.getElementById("test-app") +); diff --git a/types/react-tabs-redux/tsconfig.json b/types/react-tabs-redux/tsconfig.json new file mode 100644 index 0000000000..8872a8cb4f --- /dev/null +++ b/types/react-tabs-redux/tsconfig.json @@ -0,0 +1,28 @@ +{ + "compilerOptions": { + "module": "commonjs", + "lib": [ + "es6", + "dom" + ], + "jsx": "react", + "noImplicitAny": true, + "noImplicitThis": true, + "strictNullChecks": true, + "baseUrl": "../", + "typeRoots": [ + "../" + ], + "types": [], + "noEmit": true, + "forceConsistentCasingInFileNames": true, + "strictFunctionTypes": true + }, + "files": [ + "index.d.ts", + "Tabs.d.ts", + "TabLink.d.ts", + "TabContent.d.ts", + "react-tabs-redux-tests.tsx" + ] +} diff --git a/types/react-tabs-redux/tslint.json b/types/react-tabs-redux/tslint.json new file mode 100644 index 0000000000..4f44991c3c --- /dev/null +++ b/types/react-tabs-redux/tslint.json @@ -0,0 +1,6 @@ +{ + "extends": "dtslint/dt.json", + "rules": { + "no-empty-interface": false + } +}