mirror of
https://github.com/gosticks/DefinitelyTyped.git
synced 2026-10-07 08:17:05 +00:00
Merge pull request #12749 from Strate/react_virtualized_window_scroller_types
react-virtualized: improve types of WindowScroller
This commit is contained in:
Vendored
+19
-2
@@ -118,6 +118,23 @@ declare module "react-virtualized" {
|
||||
type ScrollSyncProps = any;
|
||||
export class ScrollSync extends React.Component<ScrollSyncProps, {}> { }
|
||||
|
||||
type WindowScrollerProps = any;
|
||||
export class WindowScroller extends React.Component<WindowScrollerProps, {}> { }
|
||||
export module WindowScroller {
|
||||
export type OnResizeArg = {
|
||||
height: number;
|
||||
}
|
||||
export type OnScrollArg = {
|
||||
scrollTop: number;
|
||||
}
|
||||
export type RenderCallbackArg = {
|
||||
height: number;
|
||||
scrollTop: number;
|
||||
isScrolling: boolean;
|
||||
}
|
||||
export type Props = {
|
||||
onScroll?: (arg: OnScrollArg) => void;
|
||||
onResize?: (arg: OnResizeArg) => void;
|
||||
// TODO `children` should be typed here
|
||||
};
|
||||
}
|
||||
export class WindowScroller extends React.Component<WindowScroller.Props, {}> { }
|
||||
}
|
||||
|
||||
@@ -291,9 +291,11 @@ function ScrollSyncTest() {
|
||||
}
|
||||
|
||||
function WindowScrollerTest() {
|
||||
const onScroll = function({scrollTop}: WindowScroller.OnScrollArg) {};
|
||||
const onResize = function({height}: WindowScroller.OnResizeArg) {};
|
||||
ReactDOM.render(
|
||||
<WindowScroller>
|
||||
{({ height, isScrolling, scrollTop }) => (
|
||||
<WindowScroller onScroll={onScroll} onResize={onResize}>
|
||||
{({ height, isScrolling, scrollTop }: WindowScroller.RenderCallbackArg) => (
|
||||
<VirtualScroll
|
||||
autoHeight
|
||||
height={height}
|
||||
@@ -306,4 +308,9 @@ function WindowScrollerTest() {
|
||||
</WindowScroller>,
|
||||
document.getElementById('example')
|
||||
);
|
||||
// test that onScroll & onResize are optional
|
||||
ReactDOM.render(
|
||||
<WindowScroller />,
|
||||
document.getElementById('example')
|
||||
);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user