Skip to content

Commit 6f86e03

Browse files
committed
simple scrolling
1 parent 3d24371 commit 6f86e03

File tree

1 file changed

+33
-71
lines changed
  • packages/graphql-playground/src/components/Playground

1 file changed

+33
-71
lines changed

packages/graphql-playground/src/components/Playground/Results.tsx

Lines changed: 33 additions & 71 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,6 @@ import * as React from 'react'
22
import ageOfDate from './util/ageOfDate'
33
import { ResultViewer } from './ResultViewer'
44
import { Response } from '../Playground'
5-
import {
6-
CellMeasurer,
7-
CellMeasurerCache,
8-
List,
9-
AutoSizer,
10-
} from 'react-virtualized'
115

126
export 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-
2513
export 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

Comments
 (0)