@@ -71,8 +71,22 @@ export default class OtherModesView extends React.PureComponent {
7171 this . fetchData ( )
7272 }
7373
74- fetchData = async ( ) => {
74+ refresh = async ( ) => {
7575 const start = Date . now ( )
76+ this . setState ( ( ) => ( { refreshing : true } ) )
77+
78+ await this . fetchData ( )
79+
80+ // wait 0.5 seconds – if we let it go at normal speed, it feels broken.
81+ const elapsed = Date . now ( ) - start
82+ if ( elapsed < 500 ) {
83+ await delay ( 500 - elapsed )
84+ }
85+
86+ this . setState ( ( ) => ( { refreshing : false } ) )
87+ }
88+
89+ fetchData = async ( ) => {
7690 this . setState ( ( ) => ( { loading : true } ) )
7791
7892 let { data : modes } = await fetchJson ( GITHUB_URL ) . catch ( err => {
@@ -84,12 +98,6 @@ export default class OtherModesView extends React.PureComponent {
8498 modes = defaultData . data
8599 }
86100
87- // wait 0.5 seconds – if we let it go at normal speed, it feels broken.
88- const elapsed = Date . now ( ) - start
89- if ( elapsed < 500 ) {
90- await delay ( 500 - elapsed )
91- }
92-
93101 this . setState ( ( ) => ( { modes, loading : false } ) )
94102 }
95103
@@ -102,8 +110,8 @@ export default class OtherModesView extends React.PureComponent {
102110 < FlatList
103111 keyExtractor = { this . keyExtractor }
104112 renderItem = { this . renderItem }
105- refreshing = { this . state . loading }
106- onRefresh = { this . fetchData }
113+ refreshing = { this . state . refreshing }
114+ onRefresh = { this . refreshing }
107115 data = { this . state . modes }
108116 />
109117 )
0 commit comments