1
1
import { createElement } from "glamor/react" ; // eslint-disable-line
2
2
/* @jsx createElement */
3
- import React , { Placeholder , lazy } from "react" ;
3
+ import React , { Suspense , lazy } from "react" ;
4
4
import { Router , Link } from "@reach/router" ;
5
5
import Component from "@reach/component-component" ;
6
6
import Spinner from "react-svg-spinner" ;
@@ -12,7 +12,6 @@ import {
12
12
NextWorkoutResource ,
13
13
network
14
14
} from "./lib/utils" ;
15
- import { cache } from "./lib/cache" ;
16
15
17
16
const Competitions = lazy ( ( ) => import ( "./lib/Competitions" ) ) ;
18
17
@@ -85,57 +84,57 @@ const Home = () => (
85
84
) ;
86
85
87
86
const Workouts = ( ) => {
88
- const workouts = WorkoutsResource . read ( cache , 10 ) ;
87
+ const workouts = WorkoutsResource . read ( 10 ) ;
89
88
return (
90
89
< div >
91
90
< Link to = ".." > Home</ Link >
92
91
< h1 > Workouts</ h1 >
93
92
{ workouts . map ( workout => (
94
- < LoadingLink key = { workout . id } to = { workout . id } css = { link } >
93
+ < Link key = { workout . id } to = { workout . id } css = { link } >
95
94
{ workout . name }
96
- </ LoadingLink >
95
+ </ Link >
97
96
) ) }
98
97
</ div >
99
98
) ;
100
99
} ;
101
100
102
101
const Exercises = ( { workoutId } ) => {
103
- const exercises = ExercisesResource . read ( cache , workoutId ) ;
102
+ const exercises = ExercisesResource . read ( workoutId ) ;
104
103
return < ul > { exercises . map ( ( exercise , i ) => < li key = { i } > { exercise } </ li > ) } </ ul > ;
105
104
} ;
106
105
107
106
class Workout extends React . Component {
108
107
render ( ) {
109
108
const { workoutId } = this . props ;
110
109
111
- const workout = WorkoutResource . read ( cache , workoutId ) ;
110
+ const workout = WorkoutResource . read ( workoutId ) ;
112
111
113
112
return (
114
113
< div >
115
114
< Link to = "../.." > Home</ Link > / < Link to = ".." > Workouts</ Link >
116
115
< h1 > { workout . name } </ h1 >
117
- < Placeholder delayMs = { patience } fallback = { < Spinner size = "150" /> } >
116
+ < Suspense maxDuration = { patience } fallback = { < Spinner size = "150" /> } >
118
117
< Exercises workoutId = { workoutId } />
119
- </ Placeholder >
118
+ </ Suspense >
120
119
{ workout . completed && (
121
- < Placeholder
122
- delayMs = { patience }
120
+ < Suspense
121
+ maxDuration = { patience }
123
122
fallback = {
124
123
< h2 >
125
124
Up Next! < Spinner size = "0.75em" />
126
125
</ h2 >
127
126
}
128
127
>
129
128
< NextWorkout workoutId = { workoutId } />
130
- </ Placeholder >
129
+ </ Suspense >
131
130
) }
132
131
</ div >
133
132
) ;
134
133
}
135
134
}
136
135
137
136
const NextWorkout = ( { workoutId } ) => {
138
- const nextWorkout = NextWorkoutResource . read ( cache , workoutId ) ;
137
+ const nextWorkout = NextWorkoutResource . read ( workoutId ) ;
139
138
return (
140
139
< div >
141
140
< h2 >
@@ -168,15 +167,15 @@ const Network = () => (
168
167
const App = ( ) => {
169
168
return (
170
169
< React . Fragment >
171
- < Placeholder delayMs = { patience } fallback = { < Spinner size = "100" /> } >
170
+ < Suspense maxDuration = { patience } fallback = { < Spinner size = "100" /> } >
172
171
< ManageScroll />
173
172
< Router style = { { padding : 20 } } >
174
173
< Home path = "/" />
175
174
< Workouts path = "workouts" />
176
175
< Workout path = "workouts/:workoutId" />
177
176
< Competitions path = "competitions" />
178
177
</ Router >
179
- </ Placeholder >
178
+ </ Suspense >
180
179
< Network />
181
180
</ React . Fragment >
182
181
) ;
0 commit comments