UNPKG

1.64 kBTypeScriptView Raw
1import { PureComponent, Validator, Requireable } from 'react';
2import * as PropTypes from 'prop-types';
3import { RenderedSection } from './Grid';
4
5export type OnSectionRenderedParams = RenderedSection;
6
7export type ChildProps = {
8 onSectionRendered: (params: RenderedSection) => void;
9 scrollToColumn: number;
10 scrollToRow: number;
11};
12/**
13 * This HOC decorates a virtualized component and responds to arrow-key events by scrolling one row or column at a time.
14 */
15export type ArrowKeyStepperProps = {
16 children: (props: ChildProps) => React.ReactNode;
17 className?: string | undefined;
18 columnCount: number;
19 rowCount: number;
20 mode?: 'edges' | 'cells' | undefined;
21 disabled?: boolean | undefined;
22 isControlled?: boolean | undefined;
23 onScrollToChange?: ((params: ScrollIndices) => void) | undefined;
24 scrollToColumn?: number | undefined;
25 scrollToRow?: number | undefined;
26 /**
27 * PLEASE NOTE
28 * The [key: string]: any; line is here on purpose
29 * This is due to the need of force re-render of PureComponent
30 * Check the following link if you want to know more
31 * https://github.com/bvaughn/react-virtualized#pass-thru-props
32 */
33 [key: string]: any;
34};
35export type ScrollIndices = {
36 scrollToRow: number;
37 scrollToColumn: number;
38};
39
40export type ScrollIndexes = ScrollIndices;
41
42export class ArrowKeyStepper extends PureComponent<ArrowKeyStepperProps, ScrollIndices> {
43 static defaultProps: {
44 disabled: false;
45 isControlled: false;
46 mode: 'edges';
47 scrollToColumn: 0;
48 scrollToRow: 0;
49 };
50}
51
52export default ArrowKeyStepper;
53
\No newline at end of file