From 42a5a1a56368cc1dadc61f403bd9a3f696716904 Mon Sep 17 00:00:00 2001 From: Manuel <30572287+manuel-rw@users.noreply.github.com> Date: Sat, 27 Apr 2024 18:24:27 +0200 Subject: [PATCH] feat: add about page (#388) --- .../manage/about/accordion.module.css | 36 +++++++ .../src/app/[locale]/manage/about/page.tsx | 93 +++++++++++++++++++ apps/nextjs/src/react-app-env.d.ts | 4 + apps/nextjs/src/versions/package-reader.ts | 13 +++ packages/translation/src/lang/en.ts | 16 ++++ 5 files changed, 162 insertions(+) create mode 100644 apps/nextjs/src/app/[locale]/manage/about/accordion.module.css create mode 100644 apps/nextjs/src/app/[locale]/manage/about/page.tsx create mode 100644 apps/nextjs/src/react-app-env.d.ts create mode 100644 apps/nextjs/src/versions/package-reader.ts diff --git a/apps/nextjs/src/app/[locale]/manage/about/accordion.module.css b/apps/nextjs/src/app/[locale]/manage/about/accordion.module.css new file mode 100644 index 000000000..174e134c5 --- /dev/null +++ b/apps/nextjs/src/app/[locale]/manage/about/accordion.module.css @@ -0,0 +1,36 @@ +.root { + border-radius: var(--mantine-radius-sm); + background-color: light-dark( + var(--mantine-color-gray-0), + var(--mantine-color-dark-6) + ); +} + +.item { + background-color: light-dark( + var(--mantine-color-gray-0), + var(--mantine-color-dark-6) + ); + border: 1px solid transparent; + position: relative; + z-index: 0; + transition: transform 150ms ease; + + &[data-active] { + transform: scale(1.015); + z-index: 1; + background-color: var(--mantine-color-body); + border-color: light-dark( + var(--mantine-color-gray-2), + var(--mantine-color-dark-4) + ); + box-shadow: var(--mantine-shadow-md); + border-radius: var(--mantine-radius-md); + } +} + +.chevron { + &[data-rotate] { + transform: rotate(-90deg); + } +} diff --git a/apps/nextjs/src/app/[locale]/manage/about/page.tsx b/apps/nextjs/src/app/[locale]/manage/about/page.tsx new file mode 100644 index 000000000..b7ff7b2a7 --- /dev/null +++ b/apps/nextjs/src/app/[locale]/manage/about/page.tsx @@ -0,0 +1,93 @@ +import Image from "next/image"; +import { + Accordion, + AccordionControl, + AccordionItem, + AccordionPanel, + Center, + Group, + List, + ListItem, + Stack, + Text, + Title, +} from "@mantine/core"; +import { IconLanguage, IconLibrary, IconUsers } from "@tabler/icons-react"; + +import { getScopedI18n } from "@homarr/translation/server"; + +import { getPackageAttributes } from "~/versions/package-reader"; +import logo from "../../../../../public/logo/logo.png"; +import classes from "./accordion.module.css"; + +export async function generateMetadata() { + const t = await getScopedI18n("management"); + const metaTitle = `${t("metaTitle")} • Homarr`; + + return { + title: metaTitle, + }; +} + +export default async function AboutPage() { + const t = await getScopedI18n("management.page.about"); + const attributes = getPackageAttributes(); + return ( +