@@ -51,14 +51,26 @@ export class StreamListView extends React.PureComponent {
5151 }
5252
5353 componentWillMount ( ) {
54- this . getData ( )
54+ this . getStreams ( )
5555 }
5656
57- getData = async ( ) => {
58- try {
59- const start = Date . now ( )
60- this . setState ( ( ) => ( { refreshing : true } ) )
57+ refresh = async ( ) => {
58+ let start = Date . now ( )
59+ this . setState ( ( ) => ( { refreshing : true } ) )
60+
61+ await this . getStreams ( )
6162
63+ // wait 0.5 seconds – if we let it go at normal speed, it feels broken.
64+ const elapsed = Date . now ( ) - start
65+ if ( elapsed < 1500 ) {
66+ await delay ( 1500 - elapsed )
67+ }
68+
69+ this . setState ( ( ) => ( { refreshing : false } ) )
70+ }
71+
72+ getStreams = async ( ) => {
73+ try {
6274 const date = moment . tz ( CENTRAL_TZ )
6375 const dateFrom = date . format ( 'YYYY-MM-DD' )
6476 const dateTo = date . add ( 1 , 'month' ) . format ( 'YYYY-MM-DD' )
@@ -96,16 +108,9 @@ export class StreamListView extends React.PureComponent {
96108 const grouped = groupBy ( processed , j => j . $groupBy )
97109 const mapped = toPairs ( grouped ) . map ( ( [ title , data ] ) => ( { title, data} ) )
98110
99- // wait 0.5 seconds – if we let it go at normal speed, it feels broken.
100- const elapsed = Date . now ( ) - start
101- if ( elapsed < 500 ) {
102- await delay ( 500 - elapsed )
103- }
104-
105111 this . setState ( ( ) => ( {
106112 error : null ,
107113 loaded : true ,
108- refreshing : false ,
109114 streams : mapped ,
110115 } ) )
111116 } catch ( error ) {
@@ -139,7 +144,7 @@ export class StreamListView extends React.PureComponent {
139144 keyExtractor = { this . keyExtractor }
140145 style = { styles . listContainer }
141146 refreshing = { this . state . refreshing }
142- onRefresh = { this . getData }
147+ onRefresh = { this . refresh }
143148 renderItem = { this . renderItem }
144149 />
145150 )
0 commit comments