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" }