From 26ee14fa13ecf40bdc52cdc962bdd858dfd5c4c6 Mon Sep 17 00:00:00 2001 From: Anton Bortnikov <6088046+ntnbrtnkv@users.noreply.github.com> Date: Sat, 23 Mar 2019 16:49:51 +0500 Subject: [PATCH 1/4] feat: add react-tabs-redux types --- types/react-tabs-redux/TabContent.d.ts | 15 +++++++ types/react-tabs-redux/TabLink.d.ts | 19 ++++++++ types/react-tabs-redux/Tabs.d.ts | 14 ++++++ types/react-tabs-redux/index.d.ts | 8 ++++ .../react-tabs-redux-tests.tsx | 44 +++++++++++++++++++ types/react-tabs-redux/tsconfig.json | 28 ++++++++++++ types/react-tabs-redux/tslint.json | 6 +++ 7 files changed, 134 insertions(+) create mode 100644 types/react-tabs-redux/TabContent.d.ts create mode 100644 types/react-tabs-redux/TabLink.d.ts create mode 100644 types/react-tabs-redux/Tabs.d.ts create mode 100644 types/react-tabs-redux/index.d.ts create mode 100644 types/react-tabs-redux/react-tabs-redux-tests.tsx create mode 100644 types/react-tabs-redux/tsconfig.json create mode 100644 types/react-tabs-redux/tslint.json 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 + } +} From f5f06bf3dec952e9d6b679b7faa1fbf9de87c6ed Mon Sep 17 00:00:00 2001 From: Anton Bortnikov <6088046+ntnbrtnkv@users.noreply.github.com> Date: Sat, 23 Mar 2019 17:04:46 +0500 Subject: [PATCH 2/4] set ts version --- types/react-tabs-redux/index.d.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/types/react-tabs-redux/index.d.ts b/types/react-tabs-redux/index.d.ts index 62ee5cc5d1..38c563f22c 100644 --- a/types/react-tabs-redux/index.d.ts +++ b/types/react-tabs-redux/index.d.ts @@ -2,6 +2,7 @@ // 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'; From 4edec4dfad5da8cb8d10deb8df4ded113f66c8b8 Mon Sep 17 00:00:00 2001 From: Anton Bortnikov <6088046+ntnbrtnkv@users.noreply.github.com> Date: Sat, 23 Mar 2019 17:42:23 +0500 Subject: [PATCH 3/4] style: fix lint --- types/react-tabs-redux/TabContent.d.ts | 2 +- types/react-tabs-redux/TabLink.d.ts | 2 +- types/react-tabs-redux/Tabs.d.ts | 2 +- types/react-tabs-redux/index.d.ts | 6 +++--- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/types/react-tabs-redux/TabContent.d.ts b/types/react-tabs-redux/TabContent.d.ts index 9c3d5c24a6..d2a1f68926 100644 --- a/types/react-tabs-redux/TabContent.d.ts +++ b/types/react-tabs-redux/TabContent.d.ts @@ -12,4 +12,4 @@ export interface TabContentProps { style?: object; } -export declare class TabContent extends React.Component {} +export class TabContent extends React.Component {} diff --git a/types/react-tabs-redux/TabLink.d.ts b/types/react-tabs-redux/TabLink.d.ts index 392fec2d73..dc1dd2f91b 100644 --- a/types/react-tabs-redux/TabLink.d.ts +++ b/types/react-tabs-redux/TabLink.d.ts @@ -16,4 +16,4 @@ export interface TabLinkProps { default?: boolean; } -export declare class TabLink extends React.Component {} +export class TabLink extends React.Component {} diff --git a/types/react-tabs-redux/Tabs.d.ts b/types/react-tabs-redux/Tabs.d.ts index 8f0599c0f5..a8be4dacfc 100644 --- a/types/react-tabs-redux/Tabs.d.ts +++ b/types/react-tabs-redux/Tabs.d.ts @@ -11,4 +11,4 @@ export interface TabsProps { renderActiveTabContentOnly?: boolean; } -export declare class Tabs extends React.Component {} +export class Tabs extends React.Component {} diff --git a/types/react-tabs-redux/index.d.ts b/types/react-tabs-redux/index.d.ts index 38c563f22c..c6f2f5181a 100644 --- a/types/react-tabs-redux/index.d.ts +++ b/types/react-tabs-redux/index.d.ts @@ -4,6 +4,6 @@ // 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'; +export { Tabs, TabsProps } from './Tabs'; +export { TabLink, TabLinkProps } from './TabLink'; +export { TabContent, TabContentProps } from './TabContent'; From 50f6ccdb2b6f4e862eb65657c150420c641c2ddb Mon Sep 17 00:00:00 2001 From: Anton Bortnikov <6088046+ntnbrtnkv@users.noreply.github.com> Date: Tue, 26 Mar 2019 20:54:39 +0500 Subject: [PATCH 4/4] refactor: remove tslint rule --- types/react-tabs-redux/react-tabs-redux-tests.tsx | 12 +++++++++--- types/react-tabs-redux/tslint.json | 7 +------ 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/types/react-tabs-redux/react-tabs-redux-tests.tsx b/types/react-tabs-redux/react-tabs-redux-tests.tsx index 758ba7b5c9..6a91eb0ecd 100644 --- a/types/react-tabs-redux/react-tabs-redux-tests.tsx +++ b/types/react-tabs-redux/react-tabs-redux-tests.tsx @@ -9,9 +9,15 @@ import { TabContentProps } from 'react-tabs-redux'; -interface TestTabsProps extends TabsProps {} -interface TestTabLinkProps extends TabLinkProps {} -interface TestTabContentProps extends TabContentProps {} +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) => { diff --git a/types/react-tabs-redux/tslint.json b/types/react-tabs-redux/tslint.json index 4f44991c3c..3db14f85ea 100644 --- a/types/react-tabs-redux/tslint.json +++ b/types/react-tabs-redux/tslint.json @@ -1,6 +1 @@ -{ - "extends": "dtslint/dt.json", - "rules": { - "no-empty-interface": false - } -} +{ "extends": "dtslint/dt.json" }