diff --git a/package-lock.json b/package-lock.json index 88f5ccb..99f9779 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,6 +9,7 @@ "@mapbox/rehype-prism": "^0.8.0", "@netlify/plugin-nextjs": "4.14", "@tailwindcss/typography": "^0.5.0", + "axios": "^0.27.2", "classnames": "^2.3.1", "cypress": "^10.1.0", "gray-matter": "^4.0.2", @@ -1523,6 +1524,28 @@ "node": ">=4" } }, + "node_modules/axios": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.27.2.tgz", + "integrity": "sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ==", + "dependencies": { + "follow-redirects": "^1.14.9", + "form-data": "^4.0.0" + } + }, + "node_modules/axios/node_modules/form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, "node_modules/axobject-query": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-2.2.0.tgz", @@ -4647,6 +4670,25 @@ "dev": true, "license": "ISC" }, + "node_modules/follow-redirects": { + "version": "1.15.5", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.5.tgz", + "integrity": "sha512-vSFWUON1B+yAw1VN4xMfxgn5fTUiaOzAJCKBwIIgT/+7CuGy9+r+5gITvP62j3RmaD5Ph65UaERdOSRGUzZtgw==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, "node_modules/forever-agent": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", @@ -6983,6 +7025,8 @@ }, "node_modules/libnpx/node_modules/got/node_modules/safe-buffer": { "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", "license": "MIT" }, "node_modules/libnpx/node_modules/has-flag": { @@ -7157,6 +7201,8 @@ }, "node_modules/libnpx/node_modules/registry-auth-token/node_modules/safe-buffer": { "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", "license": "MIT" }, "node_modules/libnpx/node_modules/registry-url": { @@ -11169,6 +11215,8 @@ }, "node_modules/regexpp": { "version": "3.2.0", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", + "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", "dev": true, "license": "MIT", "engines": { @@ -14692,6 +14740,27 @@ "version": "4.4.0", "dev": true }, + "axios": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.27.2.tgz", + "integrity": "sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ==", + "requires": { + "follow-redirects": "^1.14.9", + "form-data": "^4.0.0" + }, + "dependencies": { + "form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + } + } + } + }, "axobject-query": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-2.2.0.tgz", @@ -16851,6 +16920,11 @@ "version": "3.2.5", "dev": true }, + "follow-redirects": { + "version": "1.15.5", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.5.tgz", + "integrity": "sha512-vSFWUON1B+yAw1VN4xMfxgn5fTUiaOzAJCKBwIIgT/+7CuGy9+r+5gITvP62j3RmaD5Ph65UaERdOSRGUzZtgw==" + }, "forever-agent": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", @@ -18442,7 +18516,9 @@ }, "dependencies": { "safe-buffer": { - "version": "5.1.2" + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" } } }, @@ -18556,7 +18632,9 @@ }, "dependencies": { "safe-buffer": { - "version": "5.1.2" + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" } } }, @@ -21172,6 +21250,8 @@ }, "regexpp": { "version": "3.2.0", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", + "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", "dev": true }, "registry-auth-token": { diff --git a/package.json b/package.json index b4a2b39..366f6f2 100644 --- a/package.json +++ b/package.json @@ -27,6 +27,7 @@ "axios": "^0.27.2", "classnames": "^2.3.1", "cypress": "^10.1.0", + "date-fns": "^3.3.1", "gray-matter": "^4.0.2", "next": "latest", "next-mdx-remote": "^4.1.0", diff --git a/pages/index.js b/pages/index.js index d812880..50ac01c 100644 --- a/pages/index.js +++ b/pages/index.js @@ -9,6 +9,7 @@ import { getGlobalData } from '../utils/global-data'; import SEO from '../components/SEO'; export default function Index({ posts, globalData }) { + return ( @@ -36,7 +37,7 @@ export default function Index({ posts, globalData }) {

{post.title}

{post.description && (

- {post.description} + {post.description}

)} @@ -63,6 +64,5 @@ export async function getServerSideProps() { const posts = await getPosts(); const globalData = getGlobalData() - return { props: { posts, globalData } }; } diff --git a/pages/posts/[id].js b/pages/posts/[id].js index 28daad7..e35df33 100644 --- a/pages/posts/[id].js +++ b/pages/posts/[id].js @@ -3,15 +3,14 @@ import { getPostBySlug, } from '../../utils/mdx-utils'; -import { MDXRemote } from 'next-mdx-remote'; import Head from 'next/head'; -import Link from 'next/link'; -import ArrowIcon from '../../components/ArrowIcon'; import CustomLink from '../../components/CustomLink'; import Footer from '../../components/Footer'; import Header from '../../components/Header'; import Layout, { GradientBackground } from '../../components/Layout'; import SEO from '../../components/SEO'; +import { useRouter } from 'next/router'; +import { format } from 'date-fns'; const components = { @@ -19,31 +18,60 @@ const components = { Head, }; -export default function PostPage({ - posts, - globalData, -}) { +export default function PostPage({ post, globalData }) { + console.log('PostPage - Post:', post); + const router = useRouter(); + + if (router.isFallback) { + // opcional: adicionar um indicador de carregamento enquanto os dados estão sendo buscados + return
Carregando...
; + + } + + const { id, title, body, created_at, user_id } = post[0]; + + // Supondo que `user` seja a variável que contém os dados do usuário + const { id: userId, name, email } = post[0]?.user || {}; + + // Agora você pode usar essas variáveis como precisar + console.log("ID do post:", id); + console.log("Título do post:", title); + console.log("Corpo do post:", body); + console.log("Data de criação:", created_at); + console.log("ID do usuário associado ao post:", user_id); + console.log("ID do usuário:", userId); + console.log("Nome do usuário:", name); + console.log("Email do usuário:", email); + + + const dateFormatt = format(new Date(created_at), 'dd/MM/yyyy') + return (

- {posts?.title} + {title}

- {posts?.description && ( -

{posts?.description}

+ {body && ( +

{body}

)}
- {posts.body} + {user_id}
+
+
+ {dateFormatt} +
+