DiggerslopeUpdatesPage.astro 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. ---
  2. import Base from "../../layouts/Base.astro";
  3. import PageHero from "../PageHero.astro";
  4. import { diggerReleases } from "../../data/digger-updates";
  5. import { type Locale } from "../../i18n";
  6. interface Props {
  7. locale: Locale;
  8. }
  9. const { locale } = Astro.props;
  10. const releases = diggerReleases[locale];
  11. const copy = {
  12. en: {
  13. title: "Digger Slope updates",
  14. description: "Release history of the Digger Slope software suite",
  15. heroTitle: "Digger Slope updates",
  16. heroSubtitle: "Changelog of the Digger Slope software suite",
  17. },
  18. ru: {
  19. title: "Обновления Digger Slope",
  20. description: "История обновлений программного комплекса Digger Slope",
  21. heroTitle: "Обновления Digger Slope",
  22. heroSubtitle: "История изменений программного комплекса Digger Slope",
  23. },
  24. }[locale];
  25. ---
  26. <Base title={copy.title} description={copy.description} locale={locale}>
  27. <PageHero title={copy.heroTitle} subtitle={copy.heroSubtitle} />
  28. <section class="bg-white">
  29. <div class="mx-auto max-w-4xl px-4 py-16 sm:px-6">
  30. {releases.map((r) => (
  31. <article class="rounded-2xl border border-slate-200 p-8">
  32. <header class="flex flex-wrap items-baseline justify-between gap-2 border-b border-slate-200 pb-5">
  33. <h2 class="text-2xl font-bold text-night-950">Release {r.version}</h2>
  34. <time class="text-sm font-medium text-slate-500">{r.date}</time>
  35. </header>
  36. {r.sections.map((s) => (
  37. <div class="mt-7">
  38. <h3 class="text-lg font-semibold text-accent-600">{s.title}</h3>
  39. <ul class="mt-3 space-y-2.5">
  40. {s.items.map((item) => (
  41. <li class="flex gap-3 text-sm leading-relaxed text-slate-700">
  42. <span class="mt-2 h-1.5 w-1.5 shrink-0 rounded-full bg-accent-400" aria-hidden="true" />
  43. {item}
  44. </li>
  45. ))}
  46. </ul>
  47. </div>
  48. ))}
  49. </article>
  50. ))}
  51. </div>
  52. </section>
  53. </Base>