diff --git a/types/react-swipe/index.d.ts b/types/react-swipe/index.d.ts new file mode 100644 index 0000000000..304db816d2 --- /dev/null +++ b/types/react-swipe/index.d.ts @@ -0,0 +1,34 @@ +// Type definitions for react-swipe 5.0 +// Project: https://github.com/voronianski/react-swipe +// Definitions by: Deividas Bakanas +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped +// TypeScript Version: 2.3 + +/// + +import * as React from "react"; + +declare class ReactSwipe extends React.Component { + prev(): void; + next(): void; + getPos(): number; + getNumSlides(): number; + slide(index: number, duration: number): void; +} + +declare namespace ReactSwipe { + interface Style { + container: React.CSSProperties; + wrapper: React.CSSProperties; + child: React.CSSProperties; + } + + interface Props { + id?: string; + swipeOptions?: SwipeOptions; + style?: Style; + className?: string; + } +} + +export = ReactSwipe; diff --git a/types/react-swipe/react-swipe-tests.tsx b/types/react-swipe/react-swipe-tests.tsx new file mode 100644 index 0000000000..fed2c2d3b5 --- /dev/null +++ b/types/react-swipe/react-swipe-tests.tsx @@ -0,0 +1,75 @@ +import * as React from "react"; +import * as ReactSwipe from "react-swipe"; + +class ReactSwipeTest extends React.PureComponent { + private swipeComponent: ReactSwipe | null = null; + + private onPrev: React.MouseEventHandler = () => { + if (this.swipeComponent != null) { + this.swipeComponent.prev(); + } + } + + private onNext: React.MouseEventHandler = () => { + if (this.swipeComponent != null) { + this.swipeComponent.next(); + } + } + + private onSlideToStart: React.MouseEventHandler = () => { + if (this.swipeComponent != null) { + const lastSlide = this.swipeComponent.getNumSlides() - 1; + this.swipeComponent.slide(lastSlide, 1000); + } + } + + private onGetCurrentPosition: React.MouseEventHandler = () => { + let currentPosition: number; + + if (this.swipeComponent != null) { + currentPosition = this.swipeComponent.getPos(); + } else { + currentPosition = 0; + } + + alert(currentPosition); + } + + render() { + const swipeOptions: SwipeOptions = { + auto: 12, + disableScroll: true, + stopPropagation: true + }; + + const style: ReactSwipe.Style = { + child: { + backgroundColor: "yellow" + }, + container: { + backgroundColor: "green" + }, + wrapper: { + backgroundColor: "red" + } + }; + + return
+ { this.swipeComponent = swipeComponent; }} + > +
PANE 1
+
PANE 2
+
PANE 3
+
+ + + + +
; + } +} diff --git a/types/react-swipe/tsconfig.json b/types/react-swipe/tsconfig.json new file mode 100644 index 0000000000..304ae7e451 --- /dev/null +++ b/types/react-swipe/tsconfig.json @@ -0,0 +1,25 @@ +{ + "compilerOptions": { + "module": "commonjs", + "lib": [ + "es6", + "dom" + ], + "jsx": "react", + "noImplicitAny": true, + "noImplicitThis": true, + "strictNullChecks": true, + "baseUrl": "../", + "typeRoots": [ + "../" + ], + "types": [ + ], + "noEmit": true, + "forceConsistentCasingInFileNames": true + }, + "files": [ + "index.d.ts", + "react-swipe-tests.tsx" + ] +} diff --git a/types/react-swipe/tslint.json b/types/react-swipe/tslint.json new file mode 100644 index 0000000000..3db14f85ea --- /dev/null +++ b/types/react-swipe/tslint.json @@ -0,0 +1 @@ +{ "extends": "dtslint/dt.json" }