Skip to content

Commit c353a8e

Browse files
committed
Simplify some things for clarity.
1 parent 4d7d34b commit c353a8e

File tree

7 files changed

+36
-62
lines changed

7 files changed

+36
-62
lines changed

examples/react-async-router/index.js

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,27 @@
11
import React from "react"
22
import ReactDOM from "react-dom"
3-
import { BrowserRouter as Router } from "react-router-dom"
4-
import ApiRouter from "./js/ApiRouter"
5-
import ContributorsComponent from "./js/ContributorsComponent"
6-
import RepositoriesComponent from "./js/RepositoriesComponent"
7-
import Header from "./js/Header"
3+
import { BrowserRouter as Router, NavLink } from "react-router-dom"
4+
import AsyncRoute from "./js/AsyncRoute"
5+
import Contributors from "./js/Contributors"
6+
import Repositories from "./js/Repositories"
87

98
const App = () => (
109
<Router>
1110
<>
12-
<Header/>
13-
<ApiRouter
11+
<div>
12+
<NavLink to="/">Contributors To react-async</NavLink>
13+
<NavLink to="/repositories">Other github repositories</NavLink>
14+
</div>
15+
<AsyncRoute
1416
exact
1517
path="/"
1618
fetchUrl="https://api.github.com/repos/ghengeveld/react-async/contributors"
17-
component={ContributorsComponent}
19+
component={Contributors}
1820
/>
19-
<ApiRouter
21+
<AsyncRoute
2022
path="/repositories"
2123
fetchUrl="https://api.github.com/repositories"
22-
component={RepositoriesComponent}
24+
component={Repositories}
2325
/>
2426
</>
2527
</Router>

examples/react-async-router/js/Api.js

Lines changed: 0 additions & 22 deletions
This file was deleted.

examples/react-async-router/js/ApiRouter.js

Lines changed: 0 additions & 15 deletions
This file was deleted.
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
import React from "react"
2+
import Async from "react-async"
3+
import { Route} from "react-router-dom"
4+
5+
const loader = fetchUrl => () =>
6+
fetch(fetchUrl)
7+
.then(res => (res.ok ? res : Promise.reject(res)))
8+
.then(res => res.json())
9+
10+
const AsyncRoute = ({ component: Component, fetchUrl, ...props }) => (
11+
<Route {...props} render={props => (
12+
<Async promiseFn={loader(fetchUrl)}>
13+
{asyncState => (
14+
<Component {...props} {...asyncState} />
15+
)}
16+
</Async>
17+
)} />
18+
)
19+
20+
export default AsyncRoute

examples/react-async-router/js/ContributorsComponent.js renamed to examples/react-async-router/js/Contributors.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import React from "react"
22

3-
const ContributorsComponent = ({ data, error, isLoading }) => {
3+
const Contributors = ({ data, error, isLoading }) => {
44
if (isLoading) return "Loading Contributers..."
55
if (error) return "Error"
66
return (
@@ -12,4 +12,4 @@ const ContributorsComponent = ({ data, error, isLoading }) => {
1212
)
1313
}
1414

15-
export default ContributorsComponent
15+
export default Contributors

examples/react-async-router/js/Header.js

Lines changed: 0 additions & 11 deletions
This file was deleted.

examples/react-async-router/js/RepositoriesComponent.js renamed to examples/react-async-router/js/Repositories.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import React from "react"
22

3-
const RepositoriesComponent = ({ data, error, isLoading }) => {
3+
const Repositories = ({ data, error, isLoading }) => {
44
if (isLoading) return "Loading Repositories..."
55
if (error) return "Error"
66
return (
@@ -12,4 +12,4 @@ const RepositoriesComponent = ({ data, error, isLoading }) => {
1212
)
1313
}
1414

15-
export default RepositoriesComponent
15+
export default Repositories

0 commit comments

Comments
 (0)