From c678a29fc7f31317ade405e9c55556cf33c8e5d5 Mon Sep 17 00:00:00 2001 From: rajab Date: Sun, 25 Jun 2017 00:39:23 +0300 Subject: [PATCH 1/2] add react-burger-menu definitions --- types/react-burger-menu/index.d.ts | 53 +++++++++++++++++++ .../react-burger-menu-tests.tsx | 21 ++++++++ types/react-burger-menu/tsconfig.json | 24 +++++++++ types/react-burger-menu/tslint.json | 1 + 4 files changed, 99 insertions(+) create mode 100644 types/react-burger-menu/index.d.ts create mode 100644 types/react-burger-menu/react-burger-menu-tests.tsx create mode 100644 types/react-burger-menu/tsconfig.json create mode 100644 types/react-burger-menu/tslint.json diff --git a/types/react-burger-menu/index.d.ts b/types/react-burger-menu/index.d.ts new file mode 100644 index 0000000000..a05ce2215c --- /dev/null +++ b/types/react-burger-menu/index.d.ts @@ -0,0 +1,53 @@ +// Type definitions for react-burger-menu 2.1 +// Project: https://github.com/negomi/react-burger-menu +// Definitions by: Rajab Shakirov +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped + +import * as React from "react"; + +interface Props { + burgerBarClassName?: string; + burgerButtonClassName?: string; + crossButtonClassName?: string; + crossClassName?: string; + customBurgerIcon?: Element | false; + customCrossIcon?: Element | false; + id?: string; + isOpen?: boolean; + itemListClassName?: string; + menuClassName?: string; + morphShapeClassName?: string; + noOverlay?: boolean; + onStateChange?(): void; + // TODO (Rajab) This can be improved, though I do not know how. From PropTypes: + // styles && styles.outerContainer ? PropTypes.string.isRequired : PropTypes.string + outerContainerId?: string; + overlayClassName?: string; + // TODO (Rajab) This can be improved, though I do not know how. From PropTypes: + // styles && styles.pageWrap ? PropTypes.string.isRequired : PropTypes.string, + pageWrapId?: string; + right?: boolean; + styles?: { + bmBurgerButton: CSSStyleDeclaration; + bmBurgerBars: CSSStyleDeclaration; + bmCrossButton: CSSStyleDeclaration; + bmCross: CSSStyleDeclaration; + bmMenu: CSSStyleDeclaration; + bmMorphShape: CSSStyleDeclaration; + bmItemList: CSSStyleDeclaration; + bmOverlay: CSSStyleDeclaration; + }; + width?: number | string; +} + +declare class ReactBurgerMenu extends React.Component { } + +export class slide extends ReactBurgerMenu { } +export class stack extends ReactBurgerMenu { } +export class elastic extends ReactBurgerMenu { } +export class bubble extends ReactBurgerMenu { } +export class push extends ReactBurgerMenu { } +export class pushRotate extends ReactBurgerMenu { } +export class scaleDown extends ReactBurgerMenu { } +export class scaleRotate extends ReactBurgerMenu { } +export class fallDown extends ReactBurgerMenu { } diff --git a/types/react-burger-menu/react-burger-menu-tests.tsx b/types/react-burger-menu/react-burger-menu-tests.tsx new file mode 100644 index 0000000000..562b7ee3da --- /dev/null +++ b/types/react-burger-menu/react-burger-menu-tests.tsx @@ -0,0 +1,21 @@ +import * as React from 'react'; +import { slide as Menu } from 'react-burger-menu'; + +class Example extends React.Component { + showSettings(event: { + preventDefault: Function; + }) { + event.preventDefault(); + } + + render() { + return ( + + Home + About + Contact + Settings + + ); + } +} \ No newline at end of file diff --git a/types/react-burger-menu/tsconfig.json b/types/react-burger-menu/tsconfig.json new file mode 100644 index 0000000000..19dc806fbe --- /dev/null +++ b/types/react-burger-menu/tsconfig.json @@ -0,0 +1,24 @@ +{ + "compilerOptions": { + "module": "commonjs", + "lib": [ + "es6", + "dom" + ], + "noImplicitAny": true, + "noImplicitThis": true, + "strictNullChecks": true, + "baseUrl": "../", + "typeRoots": [ + "../" + ], + "types": [], + "noEmit": true, + "forceConsistentCasingInFileNames": true, + "jsx": "react" + }, + "files": [ + "index.d.ts", + "react-burger-menu-tests.tsx" + ] +} diff --git a/types/react-burger-menu/tslint.json b/types/react-burger-menu/tslint.json new file mode 100644 index 0000000000..3db14f85ea --- /dev/null +++ b/types/react-burger-menu/tslint.json @@ -0,0 +1 @@ +{ "extends": "dtslint/dt.json" } From bdf2a661c803c5635a95393f9e2c32e2aa6d3e5e Mon Sep 17 00:00:00 2001 From: rajab Date: Sun, 25 Jun 2017 01:16:52 +0300 Subject: [PATCH 2/2] fix react-burger-menu definitions for pr --- types/react-burger-menu/index.d.ts | 72 ++++++++++--------- .../react-burger-menu-tests.tsx | 6 +- 2 files changed, 41 insertions(+), 37 deletions(-) diff --git a/types/react-burger-menu/index.d.ts b/types/react-burger-menu/index.d.ts index a05ce2215c..6d3a508c97 100644 --- a/types/react-burger-menu/index.d.ts +++ b/types/react-burger-menu/index.d.ts @@ -5,42 +5,46 @@ import * as React from "react"; -interface Props { - burgerBarClassName?: string; - burgerButtonClassName?: string; - crossButtonClassName?: string; - crossClassName?: string; - customBurgerIcon?: Element | false; - customCrossIcon?: Element | false; - id?: string; - isOpen?: boolean; - itemListClassName?: string; - menuClassName?: string; - morphShapeClassName?: string; - noOverlay?: boolean; - onStateChange?(): void; - // TODO (Rajab) This can be improved, though I do not know how. From PropTypes: - // styles && styles.outerContainer ? PropTypes.string.isRequired : PropTypes.string - outerContainerId?: string; - overlayClassName?: string; - // TODO (Rajab) This can be improved, though I do not know how. From PropTypes: - // styles && styles.pageWrap ? PropTypes.string.isRequired : PropTypes.string, - pageWrapId?: string; - right?: boolean; - styles?: { - bmBurgerButton: CSSStyleDeclaration; - bmBurgerBars: CSSStyleDeclaration; - bmCrossButton: CSSStyleDeclaration; - bmCross: CSSStyleDeclaration; - bmMenu: CSSStyleDeclaration; - bmMorphShape: CSSStyleDeclaration; - bmItemList: CSSStyleDeclaration; - bmOverlay: CSSStyleDeclaration; - }; - width?: number | string; +// TODO (Rajab) actually I don't want export Props, but +// `npm run lint react-burger-menu` error doesn't allow me to do it; +export interface Props { + burgerBarClassName?: string; + burgerButtonClassName?: string; + crossButtonClassName?: string; + crossClassName?: string; + customBurgerIcon?: Element | false; + customCrossIcon?: Element | false; + id?: string; + isOpen?: boolean; + itemListClassName?: string; + menuClassName?: string; + morphShapeClassName?: string; + noOverlay?: boolean; + onStateChange?(): void; + // TODO (Rajab) This can be improved, though I do not know how. From PropTypes: + // styles && styles.outerContainer ? PropTypes.string.isRequired : PropTypes.string + outerContainerId?: string; + overlayClassName?: string; + // TODO (Rajab) This can be improved, though I do not know how. From PropTypes: + // styles && styles.pageWrap ? PropTypes.string.isRequired : PropTypes.string, + pageWrapId?: string; + right?: boolean; + styles?: { + bmBurgerButton: CSSStyleDeclaration; + bmBurgerBars: CSSStyleDeclaration; + bmCrossButton: CSSStyleDeclaration; + bmCross: CSSStyleDeclaration; + bmMenu: CSSStyleDeclaration; + bmMorphShape: CSSStyleDeclaration; + bmItemList: CSSStyleDeclaration; + bmOverlay: CSSStyleDeclaration; + }; + width?: number | string; } -declare class ReactBurgerMenu extends React.Component { } +// TODO (Rajab) actually I don't want export ReactBurgerMenu, but +// `npm run lint react-burger-menu` error doesn't allow me to do it; +export class ReactBurgerMenu extends React.Component { } export class slide extends ReactBurgerMenu { } export class stack extends ReactBurgerMenu { } diff --git a/types/react-burger-menu/react-burger-menu-tests.tsx b/types/react-burger-menu/react-burger-menu-tests.tsx index 562b7ee3da..4a9190000b 100644 --- a/types/react-burger-menu/react-burger-menu-tests.tsx +++ b/types/react-burger-menu/react-burger-menu-tests.tsx @@ -1,9 +1,9 @@ import * as React from 'react'; import { slide as Menu } from 'react-burger-menu'; -class Example extends React.Component { +class Example extends React.Component<{}, {}> { showSettings(event: { - preventDefault: Function; + preventDefault(): void; }) { event.preventDefault(); } @@ -18,4 +18,4 @@ class Example extends React.Component { ); } -} \ No newline at end of file +}