All checks were successful
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 0s
48 lines
1.7 KiB
TypeScript
48 lines
1.7 KiB
TypeScript
import { api } from "@/trpc/server";
|
|
import { appConfig, appRoutes } from "@/config";
|
|
import CategoryGrid from "@/components/category/grid/category-grid";
|
|
import ArticleGrid from "@/components/article/grid/article-grid";
|
|
import SectionHeader from "@/components/section-header";
|
|
import ArrowLink from "@/components/arrow-link";
|
|
import { Alert, AlertDescription, AlertTitle } from "@/components/ui/alert";
|
|
import { Icons } from "@/components/icons";
|
|
import { Button } from "@/components/ui/button";
|
|
import Link from "next/link";
|
|
|
|
export default async function Home() {
|
|
const categories = await api.category.getMany({ limit: 6 });
|
|
const articles = await api.article.getMany({ limit: 6 });
|
|
return (
|
|
<>
|
|
<Alert>
|
|
<div className="flex flex-col gap-2 sm:flex-row">
|
|
<Icons.logo className="size-8" />
|
|
<div>
|
|
<AlertTitle className="font-bold">
|
|
Wilkommen bei Logipedia!
|
|
</AlertTitle>
|
|
<AlertDescription className="text-muted-foreground">
|
|
Lorem ipsum, dolor sit amet consectetur adipisicing elit.
|
|
</AlertDescription>
|
|
</div>
|
|
<Button asChild className="sm:ml-auto">
|
|
<Link href={appRoutes.about}>
|
|
Erfahre mehr über {appConfig.name}
|
|
</Link>
|
|
</Button>
|
|
</div>
|
|
</Alert>
|
|
|
|
<SectionHeader text="Kategorien">
|
|
<ArrowLink href={appRoutes.allCategories}>Alle Kategorien</ArrowLink>
|
|
</SectionHeader>
|
|
<CategoryGrid categories={categories} />
|
|
|
|
<SectionHeader text="Artikel">
|
|
<ArrowLink href={appRoutes.allArticles}>Alle Artikel</ArrowLink>
|
|
</SectionHeader>
|
|
<ArticleGrid articles={articles} />
|
|
</>
|
|
);
|
|
}
|