website/src/pages/index.astro
Max Richter 58b74bb801
Some checks failed
Deploy to GitHub Pages / build (push) Failing after 7m15s
Deploy to GitHub Pages / deploy (push) Has been skipped
feat: some shit
2024-04-03 18:07:54 +02:00

72 lines
2.0 KiB
Plaintext

---
import Layout from "@layouts/Layout.astro";
import Max from "@components/Max.astro";
import { getCollection } from "astro:content";
import {
filterCollection,
useTranslatedPath,
useTranslations,
} from "@i18n/utils";
import { getLocale } from "astro-i18n-aut";
import HeroCard from "@components/HeroCard.astro";
import SmallCard from "@components/SmallCard.astro";
import LinkCard from "@components/LinkCard.astro";
import ArrowA from "@components/arrows/ArrowA.astro";
import ArrowB from "@components/arrows/ArrowB.astro";
const projects = filterCollection(
await getCollection("projects"),
getLocale(Astro.url),
);
const t = useTranslations(Astro.url);
const tp = useTranslatedPath(Astro.url);
const featuredProject = projects.find((project) => project.data?.featured);
const otherProjects = projects
.filter((project) => featuredProject !== project)
.sort((a) => (a?.data?.icon ? -1 : 1))
.slice(0, 3);
const posts = filterCollection(
await getCollection("blog"),
getLocale(Astro.url),
);
const featuredPost = posts.find((post) => post.data?.featured);
const otherPosts = posts.filter((post) => featuredPost !== post).slice(0, 3);
---
<Layout title="Max Richter">
<Max />
<section class="relative my-8">
<span class="i-tabler-circle-arrow-right-thin"></span>
<ArrowA />
{featuredProject && <HeroCard post={featuredProject} />}
<div class="grid grid-cols-2 gap-4 mt-4">
{
otherProjects.length > 0 &&
otherProjects.map((project) => <SmallCard post={project} />)
}
<LinkCard
link={tp("/projects")}
title={t("more-projects")}
icon="circle-arrow-right"
/>
</div>
</section>
<section class="relative my-8">
{featuredPost && <HeroCard post={featuredPost} />}
<ArrowB />
<div class="grid grid-cols-2 gap-4 mt-4">
{
otherPosts.length > 0 &&
otherPosts.map((post) => <SmallCard post={post} />)
}
<LinkCard link={tp("/blog")} title={t("more-posts")} />
</div>
</section>
</Layout>