///////////////////////////////////////////// //* IMPORTS ///////////////////////////////////////////// import React from "react"; import { Metadata, ResolvingMetadata } from "next"; import datasquirel from "datasquirel"; import { redirect } from "next/navigation"; import Main from "./Main"; export const revalidate = 3600; ///////////////////////////////////////////// //* Metadata ///////////////////////////////////////////// async function getPost({ single }: { single: string }) { const postResponse = await datasquirel.get({ key: process.env.DATASQUIREL_API_KEY, db: process.env.DB_NAME, query: "select * from blog_posts where slug = ?", queryValues: [single], }); const post = postResponse?.success && postResponse.payload?.[0] ? postResponse.payload[0] : null; return post; } export async function generateMetadata( { params, searchParams }: any, parent: ResolvingMetadata ): Promise { const single = params.single; const post = await getPost({ single: single }); return { title: post.title, description: post.excerpt, }; } ///////////////////////////////////////////// //* Main Function ///////////////////////////////////////////// /** * Blog page index * ============================================================================== */ export default async function BlogIndex({ params: { single }, }: { params: any; }) { //* Data fetching const post = await getPost({ single: single }); if (!post) { return redirect("/blog"); } //* Main Function Return ///////////////////////////////////////////// return (
); /** ********************************************** */ }