|
1 | 1 | import { h } from 'preact';
|
2 | 2 | import { Link } from 'preact-router';
|
3 |
| -import { useState, useEffect } from 'preact/hooks'; |
| 3 | +import { usePrerenderData } from '../../prerender-data-provider'; |
4 | 4 | import style from './style';
|
5 | 5 |
|
6 | 6 | const photographs = (props) => {
|
7 |
| - const [dataResponse, setDataResponse] = useState({}); |
8 |
| - useEffect(async () => { |
9 |
| - setDataResponse(await(await fetch('/source-fs.json')).json()); |
10 |
| - }, []); |
11 |
| - let photographs = []; |
12 |
| - if (dataResponse.nodes && dataResponse.nodes[1] && dataResponse.nodes[1].edges) { |
13 |
| - photographs = dataResponse.nodes[1].edges; |
| 7 | + const [data, isLoading] = usePrerenderData(props); |
| 8 | + |
| 9 | + if (isLoading) { |
| 10 | + return (<h1>Loading</h1>); |
| 11 | + } |
| 12 | + if (data && data.data) { |
| 13 | + const { data: { edges: photographs } } = data; |
| 14 | + return ( |
| 15 | + <div class={style.pageBlogs}> |
| 16 | + <h1 class={style.pageTitle}>Photographs</h1> |
| 17 | + {photographs.map(photograph => |
| 18 | + (<div> |
| 19 | + <img class={style.photo} src={photograph.details.photo} /> |
| 20 | + <caption class={style.caption}>{photograph.details.title}</caption> |
| 21 | + </div>) |
| 22 | + )} |
| 23 | + </div> |
| 24 | + ); |
14 | 25 | }
|
15 |
| - return ( |
16 |
| - <div class={style.pageBlogs}> |
17 |
| - <h1 class={style.pageTitle}>Photographs</h1> |
18 |
| - {photographs.map(blog => ( |
19 |
| - <Link href={`/blog/${blog.id}`}> |
20 |
| - <article> |
21 |
| - <h2>{blog.details.title}</h2> |
22 |
| - <div> |
23 |
| - { |
24 |
| - (blog.details.tags.substr(1, blog.details.tags.length - 2).split(',') || []).map(tag => <span class={style.tag}>{tag}</span>) |
25 |
| - } |
26 |
| - </div> |
27 |
| - <p class={style.preview}> |
28 |
| - {blog.preview} |
29 |
| - </p> |
30 |
| - </article> |
31 |
| - </Link> |
32 |
| - ))} |
33 |
| - </div> |
34 |
| - ); |
| 26 | + return (<h1>Error</h1>); |
35 | 27 | };
|
36 | 28 |
|
37 | 29 | export default photographs;
|
0 commit comments