Files
datahub/examples/openspending/pages/blog.tsx
2023-05-30 09:06:22 -03:00

56 lines
1.3 KiB
TypeScript

import fs from 'fs';
import React from 'react';
import { GetStaticProps } from 'next';
import { BlogsList, SimpleLayout } from '@flowershow/core';
import clientPromise from '../lib/mddb';
import type { CustomAppProps } from './_app';
import Layout from '@/components/_shared/Layout';
interface BlogIndexPageProps extends CustomAppProps {
blogs: any[]; // TODO types
}
export default function Blog({
blogs,
meta: { title, description },
}: BlogIndexPageProps) {
return (
<Layout>
<div className="blog-list">
<SimpleLayout title={title} description={description}>
<BlogsList blogs={blogs} />
</SimpleLayout>
</div>
</Layout>
);
}
export const getStaticProps: GetStaticProps = async () => {
const mddb = await clientPromise;
const blogFiles = await mddb.getFiles({ folder: 'blog' });
const blogs = blogFiles.map((item) => ({
_id: item._id,
file_path: item.file_path,
urlPath: item.url_path,
date: item.url_path.split('/').slice(-1)[0].split('-').slice(0,3).join('-'),
...item.metadata
}));
console.log(blogs[0].date)
return {
props: {
meta: {
title: 'Blog posts',
showSidebar: false,
showToc: false,
showComments: false,
showEditLink: false,
urlPath: '/blog',
},
blogs,
},
};
};