From e3ab352e5e5cc7749ba9af848a4e287caa853ffa Mon Sep 17 00:00:00 2001 From: "Kalle (Sendou)" <38327916+Sendouc@users.noreply.github.com> Date: Tue, 9 Mar 2021 13:00:58 +0200 Subject: [PATCH] closes #276 --- .gitignore | 2 + components/layout/FooterContent.tsx | 83 +++++++++++++++++++---------- package.json | 3 +- prisma/scripts/preBuild.ts | 30 +++++++++++ 4 files changed, 89 insertions(+), 29 deletions(-) create mode 100644 prisma/scripts/preBuild.ts diff --git a/.gitignore b/.gitignore index e09448520..294fde54e 100644 --- a/.gitignore +++ b/.gitignore @@ -42,3 +42,5 @@ locale/**/*.js /prisma/scripts/mongo /prisma/scripts/data dumped.sql + +/utils/data/patrons.json diff --git a/components/layout/FooterContent.tsx b/components/layout/FooterContent.tsx index 4d541b576..6cbcfc07a 100644 --- a/components/layout/FooterContent.tsx +++ b/components/layout/FooterContent.tsx @@ -1,43 +1,70 @@ import { Box, Flex } from "@chakra-ui/react"; +import { Trans } from "@lingui/macro"; +import MyLink from "components/common/MyLink"; import { useMyTheme } from "hooks/common"; import Link from "next/link"; import { FaGithub, FaTwitter } from "react-icons/fa"; import { FiInfo } from "react-icons/fi"; import { DiscordIcon } from "utils/assets/icons"; +import patrons from "utils/data/patrons.json"; +import { getFullUsername } from "utils/strings"; const FooterContent: React.FC = () => { const { themeColorHex: themeColor } = useMyTheme(); return ( - - - - - + + + + + + + + + + - - - - - - - - - - + + + + + + + - + + + Thanks to the patrons for their support ♥ + + + {patrons.map((patron) => ( + + + {getFullUsername(patron)} + + + ))} + + + ); }; diff --git a/package.json b/package.json index ededd79e6..c778ba54b 100644 --- a/package.json +++ b/package.json @@ -4,11 +4,12 @@ "private": true, "scripts": { "dev": "next dev", - "build": "lingui compile && next build", + "build": "lingui compile && npm run prebuild && next build", "start": "next start", "migrate": "prisma migrate deploy --preview-feature", "migrate:save": "prisma migrate dev --create-only --preview-feature", "gen": "npx prisma generate", + "prebuild": "ts-node prisma/scripts/preBuild.ts", "mongo": "ts-node prisma/scripts/dataFromMongo.ts", "top500": "ts-node prisma/scripts/top500jsons.ts", "league": "cross-env NODE_OPTIONS=--max-old-space-size=8192 ts-node prisma/scripts/leagueJsons.ts", diff --git a/prisma/scripts/preBuild.ts b/prisma/scripts/preBuild.ts new file mode 100644 index 000000000..36ff782d0 --- /dev/null +++ b/prisma/scripts/preBuild.ts @@ -0,0 +1,30 @@ +import fs from "fs"; +import path from "path"; +import prisma from "../client"; + +const main = async () => { + const patrons = await prisma.user.findMany({ + where: { patreonTier: { not: null } }, + orderBy: { patreonTier: "desc" }, + select: { + username: true, + discriminator: true, + patreonTier: true, + discordId: true, + }, + }); + + fs.writeFile( + path.resolve(__dirname, "..", "..", "utils", "data", "patrons.json"), + JSON.stringify(patrons), + function (err) { + if (err) throw err; + } + ); +}; + +main() + .catch((e) => console.error(e)) + .finally(async () => { + await prisma.$disconnect(); + });