diff --git a/types/react-tabs-redux/TabContent.d.ts b/types/react-tabs-redux/TabContent.d.ts new file mode 100644 index 0000000000..d2a1f68926 --- /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 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..dc1dd2f91b --- /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 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..a8be4dacfc --- /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 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..c6f2f5181a --- /dev/null +++ b/types/react-tabs-redux/index.d.ts @@ -0,0 +1,9 @@ +// 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 +// TypeScript Version: 2.8 + +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..6a91eb0ecd --- /dev/null +++ b/types/react-tabs-redux/react-tabs-redux-tests.tsx @@ -0,0 +1,50 @@ +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 { + handleSomething: () => void; +} +interface TestTabLinkProps extends TabLinkProps { + link: string; +} +interface TestTabContentProps extends TabContentProps { + tabIndex: number; +} + +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..3db14f85ea --- /dev/null +++ b/types/react-tabs-redux/tslint.json @@ -0,0 +1 @@ +{ "extends": "dtslint/dt.json" }