import * as fs from 'fs';
import matter from 'gray-matter';
import { Metadata } from 'next';

import { ShareToWechat } from '@/components/ShareToWechat/ShareToWechat';
import { Markdown } from '@/components/Markdown';

const pathname = './src/app/joint-solution/[slug]/markdown';

export async function generateStaticParams() {
  console.log({ pathname });
  const filenames = fs
    .readdirSync(pathname)
    .filter((name) => name.endsWith('.md'));
  console.log({ filenames });
  return filenames.map((filename) => ({
    slug: filename.replaceAll('.md', ''),
  }));
}

export async function generateMetadata({
  params,
}: {
  params: { slug: string };
}): Promise<Metadata> {
  const source = fs
    .readFileSync(pathname + '/' + decodeURIComponent(params.slug) + '.md')
    .toString();
  const { data, content } = matter(source);
  return {
    ...data,
    description: data.summary,
  };
}

export default async function JointSolutionDetailPage({
  params,
}: {
  params: { slug: string };
}) {
  const source = fs
    .readFileSync(pathname + '/' + decodeURIComponent(params.slug) + '.md')
    .toString();
  const { data, content } = matter(source);
  return (
    <div className='markdown-contain markdown-body'>
      <h1>{data.title}</h1>
      <Markdown>{content}</Markdown>
      <div className='share-wechat'>
        <ShareToWechat />
      </div>
    </div>
  );
}
