@@ -2,12 +2,6 @@ import * as React from 'react'
22import ageOfDate from './util/ageOfDate'
33import { ResultViewer } from './ResultViewer'
44import { Response } from '../Playground'
5- import {
6- CellMeasurer ,
7- CellMeasurerCache ,
8- List ,
9- AutoSizer ,
10- } from 'react-virtualized'
115
126export interface Props {
137 disableResize ?: boolean
@@ -16,12 +10,6 @@ export interface Props {
1610 responses : Response [ ]
1711}
1812
19- const cache = new CellMeasurerCache ( {
20- defaultWidth : window . innerWidth ,
21- fixedWidth : true ,
22- minHeight : 50 ,
23- } )
24-
2513export default class Results extends React . Component < Props , { } > {
2614 render ( ) {
2715 return (
@@ -39,69 +27,43 @@ export default class Results extends React.Component<Props, {}> {
3927 .result-window.disableResize :global(.CodeMirror-gutters) {
4028 cursor: default !important;
4129 }
42- ` } </ style >
43- < AutoSizer >
44- { ( { width, height } ) => (
45- < List
46- width = { width }
47- height = { height }
48- rowCount = { this . props . responses . length }
49- rowRenderer = { this . rowRenderer }
50- deferredMeasurementCache = { cache }
51- rowHeight = { cache . rowHeight }
52- />
53- ) }
54- </ AutoSizer >
55- </ div >
56- )
57- }
5830
59- private rowRenderer = ( { index, parent, key } ) => {
60- const response = this . props . responses [ index ]
61-
62- return (
63- < CellMeasurer
64- cache = { cache }
65- rowIndex = { index }
66- columnIndex = { 0 }
67- parent = { parent }
68- key = { key }
69- >
70- < div key = { response . resultID } >
71- < style jsx = { true } > { `
72- .subscription-time {
73- @p: .relative;
74- height: 17px;
75- margin-top: 12px;
76- margin-bottom: 4px;
77- &:before {
78- @p: .absolute, .w100;
79- content: '';
80- top: 9px;
81- left: 95px;
82- border-top: 1px solid $white20;
83- }
31+ .subscription-time {
32+ @p: .relative;
33+ height: 17px;
34+ margin-top: 12px;
35+ margin-bottom: 4px;
36+ &:before {
37+ @p: .absolute, .w100;
38+ content: '';
39+ top: 9px;
40+ left: 95px;
41+ border-top: 1px solid $white20;
8442 }
43+ }
8544
86- .subscription-time-text {
87- @p: .bgDarkBlue, .white50, .f12;
88- padding-left: 15px;
89- }
90- ` } </ style >
91- { this . props . responses . length > 1 &&
92- response . time && (
93- < div className = "subscription-time" >
94- < div className = "subscription-time-text" >
95- { ageOfDate ( response . time ) }
45+ .subscription-time-text {
46+ @p: .bgDarkBlue, .white50, .f12;
47+ padding-left: 15px;
48+ }
49+ ` } </ style >
50+ { this . props . responses . map ( response => (
51+ < div key = { response . resultID || String ( response . time ) } >
52+ { this . props . responses . length > 1 &&
53+ response . time && (
54+ < div className = "subscription-time" >
55+ < div className = "subscription-time-text" >
56+ { ageOfDate ( response . time ) }
57+ </ div >
9658 </ div >
97- </ div >
98- ) }
99- < ResultViewer
100- value = { response . date }
101- hideGutters = { this . props . hideGutters }
102- / >
103- </ div >
104- </ CellMeasurer >
59+ ) }
60+ < ResultViewer
61+ value = { response . date }
62+ hideGutters = { this . props . hideGutters }
63+ />
64+ </ div >
65+ ) ) }
66+ </ div >
10567 )
10668 }
10769}
0 commit comments