---
import { getCollection } from "astro:content";
import { PROJECTS, SITE } from "@consts";
import Layout from "@layouts/Layout.astro";
import ShowcaseProject from "@components/ShowcaseProject.astro";

const projects = (await getCollection("projects"))
  .filter((project) => !project.data.draft)
  .sort((a, b) => {
    if (a.data.rank !== b.data.rank) {
      return b.data.rank - a.data.rank;
    }
    return b.data.date.valueOf() - a.data.date.valueOf();
  });
---

<Layout title={SITE.TITLE} description={PROJECTS.DESCRIPTION}>
  <h1 class="animate-reveal text-3xl font-semibold break-words opacity-0">
    {PROJECTS.TITLE}
  </h1>
  <ol
    class="animate-reveal grid grid-cols-1 gap-4 opacity-0 [animation-delay:0.1s] md:grid-cols-2"
  >
    {projects.map((article: any) => <ShowcaseProject collection={article} />)}
  </ol>
  <div class="animate-reveal flex justify-end opacity-0 [animation-delay:0.2s]">
    <a
      href="/projects.xml"
      class="text-tertiary hover:text-secondary text-xs transition-colors duration-300"
      >View projects feed</a
    >
  </div>
</Layout>
