-
-
Notifications
You must be signed in to change notification settings - Fork 3.1k
/
Copy pathgrid.js
64 lines (60 loc) · 1.49 KB
/
grid.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
var REACT_VIRTUALIZED_BANNER =
'https://cloud.githubusercontent.com/assets/29597/11737732/0ca1e55e-9f91-11e5-97f3-098f2f8ed866.png';
function getColumnWidth(params) {
switch (params.index % 3) {
case 0:
return 65;
case 1:
return 65;
case 2:
return 100;
}
}
function cellRenderer(params) {
var key = `c:${params.columnIndex}, r:${params.rowIndex}`;
switch (params.columnIndex % 3) {
case 0:
return React.DOM.input({
className: 'input',
defaultValue: key,
key: params.key,
onChange: function() {},
style: params.style,
});
case 1:
return React.DOM.button(
{
className: 'button',
key: params.key,
style: params.style,
},
key,
);
case 2:
return React.DOM.img({
className: 'image',
key: params.key,
src: REACT_VIRTUALIZED_BANNER,
style: params.style,
});
}
}
var App = React.createClass({
render: function() {
return React.createElement(ReactVirtualized.AutoSizer, null, function(
params,
) {
return React.createElement(ReactVirtualized.Grid, {
columnCount: 1000,
columnWidth: getColumnWidth,
height: params.height,
overscanRowCount: 0,
cellRenderer: cellRenderer,
rowHeight: 30,
rowCount: 1000,
width: params.width,
});
});
},
});
ReactDOM.render(React.createElement(App), document.querySelector('#mount'));