Skip to content

Commit ee3311e

Browse files
Create reading page
1 parent 71d0494 commit ee3311e

File tree

1 file changed

+96
-0
lines changed

1 file changed

+96
-0
lines changed

src/pages/[slug].tsx

Lines changed: 96 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,96 @@
1+
import React from 'react';
2+
import data from 'data/posts';
3+
import dayjs from 'dayjs';
4+
function Read(props: postComponent) {
5+
6+
7+
let { post } = props
8+
9+
10+
return (
11+
<div className='container'>
12+
13+
<hgroup className='readPost'>
14+
<h1>{post[0].title}</h1>
15+
<p className='paragraf-description'>{post[0].description}</p>
16+
</hgroup>
17+
<nav>
18+
<ul>
19+
<li className='link-list'>{post[0].author}</li>
20+
<li className='link-list'>
21+
{dayjs(post[0].date).format('DD MMMM, YYYY')}
22+
</li>
23+
</ul>
24+
</nav>
25+
<div id='typography' className='article-card'>
26+
<p>
27+
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla leo orci, interdum at tellus quis, imperdiet rhoncus odio. In urna diam, rhoncus non hendrerit non, convallis sit amet elit. Integer semper odio a iaculis congue. Donec sed libero non elit finibus ullamcorper. Nam elementum a diam vitae tincidunt.
28+
</p>
29+
<p>
30+
Integer a erat ut urna commodo ultrices congue eget sem. Sed ac diam sed metus volutpat venenatis nec vitae justo. Suspendisse gravida, nunc id interdum ullamcorper, eros elit laoreet erat, in ullamcorper augue eros vitae turpis. Nam porttitor ante sed condimentum posuere.
31+
</p>
32+
<p>
33+
Fusce vehicula, massa ut iaculis posuere, dolor dolor dignissim elit, at euismod massa metus sed augue. Vivamus rutrum risus velit, id tempor augue mattis nec. Fusce enim lacus, eleifend at facilisis eget, gravida non neque. Sed sed lacus a turpis sodales cursus.
34+
</p>
35+
<p>
36+
Nullam et augue scelerisque, tempus nunc et, ultricies felis. Morbi congue orci et pretium luctus. Mauris lectus purus, venenatis et nisi a, elementum tincidunt dolor.
37+
</p>
38+
<blockquote>
39+
"Maecenas vehicula metus tellus, vitae congue turpis hendrerit non.
40+
Nam at dui sit amet ipsum cursus ornare."
41+
<footer>
42+
<cite>- Phasellus eget lacinia</cite>
43+
</footer>
44+
</blockquote>
45+
<p>
46+
Nulla facilisi. Quisque nec eros ultrices, mollis est non, viverra felis. Cras neque urna, malesuada nec tortor quis, finibus dignissim massa. Aenean ullamcorper sit amet mi in hendrerit.
47+
</p>
48+
<p>
49+
Integer a erat ut urna commodo ultrices congue eget sem. Sed ac diam sed metus volutpat venenatis nec vitae justo. Suspendisse gravida, nunc id interdum ullamcorper, eros elit laoreet erat, in ullamcorper augue eros vitae turpis. Nam porttitor ante sed condimentum posuere.
50+
</p>
51+
<p>
52+
Fusce vehicula, massa ut iaculis posuere, dolor dolor dignissim elit, at euismod massa metus sed augue. Vivamus rutrum risus velit, id tempor augue mattis nec. Fusce enim lacus, eleifend at facilisis eget, gravida non neque. Sed sed lacus a turpis sodales cursus.
53+
</p>
54+
</div>
55+
</div>
56+
);
57+
58+
}
59+
60+
interface postComponent {
61+
tag: string;
62+
date: string;
63+
title: string;
64+
description: string;
65+
image: string;
66+
author: string;
67+
}
68+
69+
70+
export async function getStaticPaths() {
71+
72+
const paths = data.map((item) => ({
73+
params: { slug: item.title.toLowerCase().replaceAll(" ", "-") },
74+
}))
75+
76+
77+
78+
79+
return {
80+
paths: paths,
81+
fallback: false,
82+
}
83+
}
84+
85+
export async function getStaticProps(context) {
86+
87+
const { params: { slug } } = context
88+
89+
const post = data.filter((item) => item.title.toLowerCase().replaceAll(" ", "-") === slug)
90+
91+
return {
92+
props: { post },
93+
}
94+
}
95+
96+
export default Read;

0 commit comments

Comments
 (0)