We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
There was an error while loading. Please reload this page.
1 parent 23dc5c7 commit e2f987eCopy full SHA for e2f987e
4 files changed
.npmrc
@@ -1,2 +1,2 @@
1
-save-prefix=~
+save-prefix=^
2
ca=
package-lock.json
package.json
@@ -47,9 +47,9 @@
47
"@types/classnames": "^2.2.3",
48
"@types/enzyme": "^3.1.3",
49
"@types/jest": "^20.0.8",
50
- "@types/lodash": "^4.14.76",
51
- "@types/node": "^7.0.12",
52
- "@types/react": "^16.0.20",
+ "@types/lodash": "~4.14.150",
+ "@types/node": "~10.17.21",
+ "@types/react": "~16.9.4",
53
"@types/react-dom": "^16.0.2",
54
"autoprefixer": "~6.4.0",
55
"awesome-typescript-loader": "^3.2.3",
@@ -100,7 +100,7 @@
100
"tslint-eslint-rules": "^4.1.1",
101
"tslint-language-service": "^0.9.6",
102
"tslint-react": "^3.0.0",
103
- "typescript": "^2.4.2",
+ "typescript": "~3.7.5",
104
"typings-for-css-modules-loader": "^1.6.1",
105
"validate-commit-msg": "^2.14.0",
106
"watch": "^1.0.2",
@@ -131,4 +131,4 @@
131
"next": "latest"
132
}
133
134
-}
+}
src/lib/components/grid.tsx
@@ -10,6 +10,7 @@ import {
10
Grid,
11
IBuilderUpdateContext,
12
IColDescriptor,
13
+ IGridDataChange,
14
IGridDataResult,
15
IGridDimension,
16
IGridOpts,
@@ -25,6 +26,7 @@ export interface IGridProps extends IGridOpts {
25
26
data?: Array<Array<IGridDataResult<any>>>;
27
cellRenderer?(context: IBuilderUpdateContext): ReactElement<any> | string | undefined;
28
headerCellRenderer?(context: IBuilderUpdateContext): ReactElement<any> | string | undefined;
29
+ setData?(changes: Array<IGridDataChange<any>>): void;
30
31
32
export interface IGridState { }
@@ -46,6 +48,21 @@ export class ReactGrid extends Component<IGridProps, IGridState> {
46
this.gridContainer.style.width = '100%';
const { rows, cols, data, ...gridOpts } = this.props;
this.grid = create(gridOpts);
+ const origSet = this.grid.dataModel.set;
+ this.grid.dataModel.set = (rowOrData: number | Array<IGridDataChange<any>>, c?: number, datum?: string | string[]) => {
+ const dataChanges = !Array.isArray(rowOrData)
+ ? [{
+ row: rowOrData,
56
+ col: c as number,
57
+ value: datum
58
+
59
+ }]
60
+ : rowOrData;
61
+ if (this.props.setData) {
62
+ this.props.setData(dataChanges);
63
+ }
64
+ origSet.call(this.grid.dataModel, dataChanges);
65
+ };
66
67
68
ensureGridContainerInDOM() {
0 commit comments