From 5e3d8acbeb86e4d99938bf5a88a4240ac9caf0ed Mon Sep 17 00:00:00 2001 From: Liam Date: Fri, 27 Oct 2023 17:15:57 +0100 Subject: [PATCH] add privacy and credits --- src/app/credits/page.tsx | 51 +++++++++++++++++ src/app/privacy/page.tsx | 55 +++++++++++++++++++ .../ranking/country/[country]/[page]/page.tsx | 5 ++ src/app/ranking/global/[page]/page.tsx | 5 ++ src/components/Footer.tsx | 4 ++ 5 files changed, 120 insertions(+) create mode 100644 src/app/credits/page.tsx create mode 100644 src/app/privacy/page.tsx diff --git a/src/app/credits/page.tsx b/src/app/credits/page.tsx new file mode 100644 index 0000000..2b809d2 --- /dev/null +++ b/src/app/credits/page.tsx @@ -0,0 +1,51 @@ +import Card from "@/components/Card"; +import Container from "@/components/Container"; +import { Metadata } from "next"; + +export const metadata: Metadata = { + title: "Privacy", +}; + +const credits = [ + { + name: "Scoresaber API", + url: "https://new.scoresaber.com/api/", + }, + { + name: "The old Scoresaber Reloaded project", + url: "https://github.com/motzel/scoresaber-reloaded", + }, +]; + +export default async function Analytics() { + return ( +
+ + +

Credits

+

+ This website is made possible because of the following: +

+ + {credits.map((credit, index) => { + return ( +
+

+ + {credit.name} + +

+
+ ); + })} +
+
+
+ ); +} diff --git a/src/app/privacy/page.tsx b/src/app/privacy/page.tsx new file mode 100644 index 0000000..2b98ee0 --- /dev/null +++ b/src/app/privacy/page.tsx @@ -0,0 +1,55 @@ +import Card from "@/components/Card"; +import Container from "@/components/Container"; +import { Metadata } from "next"; + +export const metadata: Metadata = { + title: "Privacy", +}; + +const links = [ + { + name: "Sentry", + url: "https://sentry.fascinated.cc", + description: + "The site uses Sentry to track errors. This is to help me fix bugs and issues with the site.", + }, + { + name: "Plausible", + url: "https://analytics.fascinated.cc", + description: + "The site uses Plausible to track page views. This is to help me see which pages are popular.", + }, +]; + +export default async function Analytics() { + return ( +
+ + +

Privacy

+

+ This site does not collect personal data. All of the data stored is + in your browser's local storage. +

+ +

All of the services below are hosted by me.

+
+ {links.map((link, index) => { + return ( +

+ + {link.name} + {" "} + - {link.description} +

+ ); + })} +
+
+
+
+ ); +} diff --git a/src/app/ranking/country/[country]/[page]/page.tsx b/src/app/ranking/country/[country]/[page]/page.tsx index 75a729c..4bb615d 100644 --- a/src/app/ranking/country/[country]/[page]/page.tsx +++ b/src/app/ranking/country/[country]/[page]/page.tsx @@ -1,4 +1,9 @@ import GlobalRanking from "@/components/player/GlobalRanking"; +import { Metadata } from "next"; + +export const metadata: Metadata = { + title: "Country Ranking", +}; type Props = { params: { page: string; country: string }; diff --git a/src/app/ranking/global/[page]/page.tsx b/src/app/ranking/global/[page]/page.tsx index d8322b6..80d57fd 100644 --- a/src/app/ranking/global/[page]/page.tsx +++ b/src/app/ranking/global/[page]/page.tsx @@ -1,4 +1,9 @@ import GlobalRanking from "@/components/player/GlobalRanking"; +import { Metadata } from "next"; + +export const metadata: Metadata = { + title: "Global Ranking", +}; type Props = { params: { page: string }; diff --git a/src/components/Footer.tsx b/src/components/Footer.tsx index 7554c00..4bc8275 100644 --- a/src/components/Footer.tsx +++ b/src/components/Footer.tsx @@ -6,6 +6,10 @@ const buttons = [ name: "Privacy", url: "/privacy", }, + { + name: "Credits", + url: "/credits", + }, ]; const buildId = process.env.NEXT_PUBLIC_BUILD_ID