diff --git a/types/redux-infinite-scroll/index.d.ts b/types/redux-infinite-scroll/index.d.ts new file mode 100644 index 0000000000..1f621ec8e4 --- /dev/null +++ b/types/redux-infinite-scroll/index.d.ts @@ -0,0 +1,25 @@ +// Type definitions for redux-infinite-scroll 1.0 +// Project: https://github.com/RealScout/redux-infinite-scroll +// Definitions by: Tony Nikolov +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped +// TypeScript Version: 2.3 + +import { Component, HTMLProps } from "react"; + +interface InfiniteScrollerProps { + elementIsScrollable?: boolean; + containerHeight?: number | string; + threshold?: number; + hasMore?: boolean; + loadingMore?: boolean; + loader?: any; + showLoader?: boolean; + loadMore(): void; + items?: JSX.Element[]; + children?: JSX.Element[]; + holderType?: string; +} + +declare class InfiniteScoller extends Component, {}> {} + +export default InfiniteScoller; diff --git a/types/redux-infinite-scroll/redux-infinite-scroll-tests.tsx b/types/redux-infinite-scroll/redux-infinite-scroll-tests.tsx new file mode 100644 index 0000000000..b092c9a42d --- /dev/null +++ b/types/redux-infinite-scroll/redux-infinite-scroll-tests.tsx @@ -0,0 +1,49 @@ +import * as React from 'react'; +import * as ReactDOM from 'react-dom'; +import InfiniteScoller from "redux-infinite-scroll"; + +class App extends React.Component { + state = { + numOfItems: 40, + loadingMore: false + }; + + _createData(numOfItems = this.state.numOfItems) { + const data: JSX.Element[] = []; + for (let i = 0; i < numOfItems; i++) { + data.push( +
Item #{i}
+ ); + } + + return data; + } + + _loadMore() { + console.log('loading More'); + this.setState({ loadingMore: true }, () => { + // CB emulates an ajax request + this.setState({ + numOfItems: this.state.numOfItems + 40, + loadingMore: false + }); + }); + } + + render() { + return ( + + ); + } +} + +ReactDOM.render(, document.getElementById('app')); diff --git a/types/redux-infinite-scroll/tsconfig.json b/types/redux-infinite-scroll/tsconfig.json new file mode 100644 index 0000000000..4e78fdeaef --- /dev/null +++ b/types/redux-infinite-scroll/tsconfig.json @@ -0,0 +1,23 @@ +{ + "compilerOptions": { + "module": "commonjs", + "lib": [ "es6", "dom" ], + "noImplicitAny": true, + "noImplicitReturns": true, + "noImplicitThis": true, + "strictNullChecks": true, + "baseUrl": "../", + "jsx": "react", + "typeRoots": [ + "../" + ], + "types": [], + "noEmit": true, + "forceConsistentCasingInFileNames": true + }, + "files": [ + "index.d.ts", + "redux-infinite-scroll-tests.tsx" + + ] +} \ No newline at end of file diff --git a/types/redux-infinite-scroll/tslint.json b/types/redux-infinite-scroll/tslint.json new file mode 100644 index 0000000000..2750cc0197 --- /dev/null +++ b/types/redux-infinite-scroll/tslint.json @@ -0,0 +1 @@ +{ "extends": "dtslint/dt.json" } \ No newline at end of file