From a85afef1825d2044913b61202c922349c8574053 Mon Sep 17 00:00:00 2001 From: Manel Soler Date: Tue, 20 Jun 2023 10:15:57 +0200 Subject: [PATCH 1/8] adding folders and home --- app/about/page.tsx | 0 app/blog/[...slug]/page.tsx | 0 app/contact/page.tsx | 0 app/page.tsx | 8 +++++++- 4 files changed, 7 insertions(+), 1 deletion(-) create mode 100644 app/about/page.tsx create mode 100644 app/blog/[...slug]/page.tsx create mode 100644 app/contact/page.tsx diff --git a/app/about/page.tsx b/app/about/page.tsx new file mode 100644 index 0000000..e69de29 diff --git a/app/blog/[...slug]/page.tsx b/app/blog/[...slug]/page.tsx new file mode 100644 index 0000000..e69de29 diff --git a/app/contact/page.tsx b/app/contact/page.tsx new file mode 100644 index 0000000..e69de29 diff --git a/app/page.tsx b/app/page.tsx index 8706e65..e700a51 100644 --- a/app/page.tsx +++ b/app/page.tsx @@ -1,5 +1,11 @@ export default async function Home() { - return
hello
+ return
+
+
Name
+
blog
+
contacting
+
+
} From bc82965829074c579a862ad2ad071140183714eb Mon Sep 17 00:00:00 2001 From: Manel Soler Date: Tue, 20 Jun 2023 10:18:55 +0200 Subject: [PATCH 2/8] adding styles file home module --- app/page.tsx | 2 +- styles/home.module.css | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) create mode 100644 styles/home.module.css diff --git a/app/page.tsx b/app/page.tsx index e700a51..ddbf42b 100644 --- a/app/page.tsx +++ b/app/page.tsx @@ -1,4 +1,4 @@ - +import styles from '../styles/Home.module.css' export default async function Home() { return
diff --git a/styles/home.module.css b/styles/home.module.css new file mode 100644 index 0000000..4cb694c --- /dev/null +++ b/styles/home.module.css @@ -0,0 +1,6 @@ +.home{ + height: 100vh; + width: 100vw; + background: black + text-color: white; +} \ No newline at end of file From ae717f7cac61df1ed1ad4e2d562200315b0621f2 Mon Sep 17 00:00:00 2001 From: Manel Soler Date: Tue, 20 Jun 2023 10:24:39 +0200 Subject: [PATCH 3/8] adding layout global styles margin and padding --- app/layout.tsx | 2 ++ app/page.tsx | 2 +- styles/global.css | 9 ++++++++- styles/home.module.css | 3 +-- 4 files changed, 12 insertions(+), 4 deletions(-) diff --git a/app/layout.tsx b/app/layout.tsx index dcf6d47..39d45df 100644 --- a/app/layout.tsx +++ b/app/layout.tsx @@ -1,3 +1,5 @@ +import '../styles/global.css' + export default function RootLayout({ children, }: { diff --git a/app/page.tsx b/app/page.tsx index ddbf42b..c2b2567 100644 --- a/app/page.tsx +++ b/app/page.tsx @@ -1,7 +1,7 @@ import styles from '../styles/Home.module.css' export default async function Home() { - return
+ return
Name
blog
diff --git a/styles/global.css b/styles/global.css index add36fe..770d5de 100644 --- a/styles/global.css +++ b/styles/global.css @@ -1,3 +1,10 @@ +body, html { + margin: 0px; + padding: 0px; + +} + + * { box-sizing: border-box; -} \ No newline at end of file +} diff --git a/styles/home.module.css b/styles/home.module.css index 4cb694c..c894f4b 100644 --- a/styles/home.module.css +++ b/styles/home.module.css @@ -1,6 +1,5 @@ .home{ height: 100vh; width: 100vw; - background: black - text-color: white; + background: black; } \ No newline at end of file From c391b008899bdc3396ccb2f59844020fc3e539b5 Mon Sep 17 00:00:00 2001 From: Manel Soler Date: Tue, 20 Jun 2023 10:40:23 +0200 Subject: [PATCH 4/8] home routing linksl --- app/page.tsx | 13 +++++++++---- styles/home.module.css | 4 ++++ 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/app/page.tsx b/app/page.tsx index c2b2567..767eed6 100644 --- a/app/page.tsx +++ b/app/page.tsx @@ -1,11 +1,16 @@ -import styles from '../styles/Home.module.css' +import Link from 'next/link' +import styles from '../styles/home.module.css' export default async function Home() { return
-
Name
-
blog
-
contacting
+

Hi, My name is Manel

+
+ Check my blog +
+
+ contact me +
} diff --git a/styles/home.module.css b/styles/home.module.css index c894f4b..2bdef19 100644 --- a/styles/home.module.css +++ b/styles/home.module.css @@ -2,4 +2,8 @@ height: 100vh; width: 100vw; background: black; + color: white; + display: flex; + justify-content: center; + align-items: center; } \ No newline at end of file From 14c2a0e79f0bad16d6fd47ce59ce29e0f8a6dc0a Mon Sep 17 00:00:00 2001 From: Manel Soler Date: Tue, 20 Jun 2023 10:49:37 +0200 Subject: [PATCH 5/8] create a delay fetch data function and a moked data for blogs --- lib/cms.ts | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 lib/cms.ts diff --git a/lib/cms.ts b/lib/cms.ts new file mode 100644 index 0000000..2770a71 --- /dev/null +++ b/lib/cms.ts @@ -0,0 +1,19 @@ +const delay = (time) => { + return new Promise((resolve) => { + setTimeout(() => { + resolve(1) + }, time) + }) +} + +export const getAllPosts = async () => { + await delay(3000) + + return new Array(10).fill(1).map((_, i) => { + return { + title: `This is post ${i}`, + slug: `this-is-post-${i}`, + body:' tiruri tirura' + } + }) +} \ No newline at end of file From ad341f4933aaeb43dd64ba182b42aa6b2fcd0d8b Mon Sep 17 00:00:00 2001 From: Manel Soler Date: Tue, 20 Jun 2023 11:11:17 +0200 Subject: [PATCH 6/8] solv error routing blog page --- app/blog/[...slug]/page.tsx | 0 app/blog/page.tsx | 19 +++++++++++++++++++ app/page.tsx | 2 +- lib/cms.ts | 2 +- 4 files changed, 21 insertions(+), 2 deletions(-) delete mode 100644 app/blog/[...slug]/page.tsx create mode 100644 app/blog/page.tsx diff --git a/app/blog/[...slug]/page.tsx b/app/blog/[...slug]/page.tsx deleted file mode 100644 index e69de29..0000000 diff --git a/app/blog/page.tsx b/app/blog/page.tsx new file mode 100644 index 0000000..431fcbd --- /dev/null +++ b/app/blog/page.tsx @@ -0,0 +1,19 @@ +import Link from "next/link" +import { getAllPosts } from "../../lib/cms" + +export default async function Blog() { + const posts = await getAllPosts() + + return ( +
+ {posts.map((post) => ( + // eslint-disable-next-line react/jsx-key + +
+

{post.title}

+
+ + ))} +
+ ) +} \ No newline at end of file diff --git a/app/page.tsx b/app/page.tsx index 767eed6..b1157b5 100644 --- a/app/page.tsx +++ b/app/page.tsx @@ -9,7 +9,7 @@ export default async function Home() { Check my blog
- contact me + Contact me
diff --git a/lib/cms.ts b/lib/cms.ts index 2770a71..edf3c9d 100644 --- a/lib/cms.ts +++ b/lib/cms.ts @@ -1,4 +1,4 @@ -const delay = (time) => { +const delay = (time: number | undefined) => { return new Promise((resolve) => { setTimeout(() => { resolve(1) From 94aabc829795f5194db6e5130ea92b908b51d5e7 Mon Sep 17 00:00:00 2001 From: Manel Soler Date: Tue, 20 Jun 2023 11:21:43 +0200 Subject: [PATCH 7/8] add loading page and slug component --- app/blog/[...slug]/page.tsx | 4 ++++ app/blog/loading.tsx | 3 +++ app/page.tsx | 2 +- 3 files changed, 8 insertions(+), 1 deletion(-) create mode 100644 app/blog/[...slug]/page.tsx create mode 100644 app/blog/loading.tsx diff --git a/app/blog/[...slug]/page.tsx b/app/blog/[...slug]/page.tsx new file mode 100644 index 0000000..0fadc30 --- /dev/null +++ b/app/blog/[...slug]/page.tsx @@ -0,0 +1,4 @@ +export default function BlogPost() { + return
post
+ +} \ No newline at end of file diff --git a/app/blog/loading.tsx b/app/blog/loading.tsx new file mode 100644 index 0000000..9488820 --- /dev/null +++ b/app/blog/loading.tsx @@ -0,0 +1,3 @@ +export default function BlogLoader() { + return
...loading...
+} \ No newline at end of file diff --git a/app/page.tsx b/app/page.tsx index b1157b5..16979a6 100644 --- a/app/page.tsx +++ b/app/page.tsx @@ -12,5 +12,5 @@ export default async function Home() { Contact me
- + } From c8002a31b8a47520baee048fee3b19707c7add24 Mon Sep 17 00:00:00 2001 From: Manel Soler Date: Tue, 20 Jun 2023 13:49:57 +0200 Subject: [PATCH 8/8] contact form and server api --- app/contact/page.tsx | 30 ++++++++++++++++++++++++++++++ pages/api/contact.ts | 9 +++++++++ 2 files changed, 39 insertions(+) create mode 100644 pages/api/contact.ts diff --git a/app/contact/page.tsx b/app/contact/page.tsx index e69de29..80f46ec 100644 --- a/app/contact/page.tsx +++ b/app/contact/page.tsx @@ -0,0 +1,30 @@ +'use client' + +import { useState } from "react" + +export default function Contact() { + const [email, setEmail] = useState('') + const handleSubmit = async (e: { preventDefault: () => void }) => { + e.preventDefault() + + await fetch('/api/contact', { + method: 'Post', + body: JSON.stringify({ email }), + headers: { + 'Content-Type': 'application/json', + 'Accept': 'application/json' + } + }) + console.log('hey') + } + + + return
+ +
+ setEmail(e.target.value)}/> + + +
+
+} \ No newline at end of file diff --git a/pages/api/contact.ts b/pages/api/contact.ts new file mode 100644 index 0000000..2625584 --- /dev/null +++ b/pages/api/contact.ts @@ -0,0 +1,9 @@ +export default function handler(req, res) { +//save to DB + + console.log(req.body) + + if (req.method === 'POST') { + res.json({message:"ok"}) + } +} \ No newline at end of file