42 lines
1.5 KiB
TypeScript
42 lines
1.5 KiB
TypeScript
import Header from "@/components/shared/brand/header";
|
|
import PageContainer from "@/components/shared/page-container";
|
|
import Navbar from "@/components/shared/navigation/navbar";
|
|
import Sidebar from "@/components/shared/sidebar";
|
|
import ArticlePreview from "@/components/shared/news/article-preview"
|
|
import ReactDOM from "react";
|
|
import "/public/global.css"
|
|
import "./index.css"
|
|
import { Post } from "@/models";
|
|
import { constructAPIUrl } from "@/util/url";
|
|
import Link from "next/link";
|
|
import { Attributes } from "@sequelize/core";
|
|
|
|
type DeepPartial<T> = T extends object ? {
|
|
[P in keyof T]?: DeepPartial<T[P]>;
|
|
} : T;
|
|
|
|
export default async function Test() {
|
|
|
|
const response = await fetch(await constructAPIUrl('post'));
|
|
|
|
const articles:Array<Attributes<Post>> = await response.json();
|
|
|
|
return <div className={`root`}>
|
|
<Header/>
|
|
<Navbar/>
|
|
<PageContainer>
|
|
{/* <Sidebar>
|
|
<h1>
|
|
Filters
|
|
</h1>
|
|
<ul><li>filter 1</li><li>filter 2</li><li>filter 3</li></ul>
|
|
</Sidebar> */}
|
|
<main>
|
|
{articles.map((article, i) => {
|
|
// Return the element. Also pass key
|
|
return (<ArticlePreview key={article?.id} post={article}></ArticlePreview>)
|
|
})}
|
|
</main>
|
|
</PageContainer>
|
|
</div>;
|
|
} |