diff --git a/types/react-infinite-scroller/index.d.ts b/types/react-infinite-scroller/index.d.ts new file mode 100644 index 0000000000..a563b88966 --- /dev/null +++ b/types/react-infinite-scroller/index.d.ts @@ -0,0 +1,61 @@ +// Type definitions for react-infinite-scroller 1.0.12 +// Project: https://github.com/CassetteRocks/react-infinite-scroller +// Definitions by: Lauri Lavanti +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped +// TypeScript Version: 2.1 + +declare module 'react-infinite-scroller' { + import * as React from 'react'; + + /** + * properties. + */ + interface InfiniteScrollProps extends React.HTMLProps { + /** + * Name of the element that the component should render as. + * Defaults to 'div'. + */ + element?: string; + /** + * Whether there are more items to be loaded. Event listeners are removed if false. + * Defaults to false. + */ + hasMore?: boolean; + /** + * Whether the component should load the first set of items. + * Defaults to true. + */ + initialLoad?: boolean; + /** + * Whether new items should be loaded when user scrolls to the top of the scrollable area. + * Default to false. + */ + isReverse?: boolean; + /** + * A callback for when more items are requested by the user. + */ + loadMore(): void; + /** + * The number of the first page to load, with the default of 0, the first page is 1. + * Defaults to 0. + */ + pageStart?: number; + /** + * The distance in pixels before the end of the items that will trigger a call to loadMore. + * Defaults to 250. + */ + threshold?: number; + /** + * Proxy to the useCapture option of the added event listeners. + * Defaults to false. + */ + useCapture?: boolean; + /** + * Add scroll listeners to the window, or else, the component's parentNode. + * Defaults to true. + */ + useWindow?: boolean; + } + + export default class InfiniteScroll extends React.Component { } +} diff --git a/types/react-infinite-scroller/react-infinite-scroller-tests.tsx b/types/react-infinite-scroller/react-infinite-scroller-tests.tsx new file mode 100644 index 0000000000..e98f1dc7f8 --- /dev/null +++ b/types/react-infinite-scroller/react-infinite-scroller-tests.tsx @@ -0,0 +1,34 @@ +import * as React from 'react'; +import InfiniteScroll from 'react-infinite-scroller'; + +class Test1 extends React.Component<{}, {}> { + public render() { + return ( + {}} + > +
Test 1
+
+ ); + } +} + +class Test2 extends React.Component<{}, {}> { + public render() { + return ( + {}} + element='section' + hasMore + initialLoad={false} + isReverse + pageStart={2} + threshold={500} + useCapture + useWindow={false} + > +
Test 1
+
+ ); + } +} diff --git a/types/react-infinite-scroller/tsconfig.json b/types/react-infinite-scroller/tsconfig.json new file mode 100644 index 0000000000..e4dc7b4342 --- /dev/null +++ b/types/react-infinite-scroller/tsconfig.json @@ -0,0 +1,24 @@ +{ + "compilerOptions": { + "module": "commonjs", + "lib": [ + "es6", + "dom" + ], + "noImplicitAny": true, + "noImplicitThis": false, + "strictNullChecks": false, + "baseUrl": "../", + "jsx": "react", + "typeRoots": [ + "../" + ], + "types": [], + "noEmit": true, + "forceConsistentCasingInFileNames": true + }, + "files": [ + "index.d.ts", + "react-infinite-scroller-tests.tsx" + ] +}