···33import Image from "next/image";
44import Link from "next/link";
55import { BsDiscord } from "react-icons/bs";
66-import { HiChevronRight, HiHome, HiUserAdd } from "react-icons/hi";
66+import { HiHome, HiUserAdd } from "react-icons/hi";
7788+import Comment from "@/components/comment";
89import ImageGrid from "@/components/image-grid";
99-import ImageReduceMotion from "@/components/image-reduce-motion";
1010import { ServerButton } from "@/components/server-button";
1111+import { defaultFetchOptions } from "@/lib/api";
1112import ArrowPic from "@/public/arroww.webp";
1213import { ApiV1TopguildsGetResponse } from "@/typings";
1414+import cn from "@/utils/cn";
1315import { getBaseUrl, getCanonicalUrl } from "@/utils/urls";
14161517const montserrat = Montserrat({ subsets: ["latin"] });
···17191820export const revalidate = 3600;
19212020-const fetchOptions = { headers: { Authorization: process.env.API_SECRET as string }, next: { revalidate: 60 * 60 } };
2121-2222export const generateMetadata = (): Metadata => {
23232424- const title = "Pronouns: A safe discord bot";
2424+ const title = "Pronouns: Describe yourself in Discord";
2525 const description = "Let your community describe themself with a wide variety of supported Pronouns, Sexualities and Genders.";
2626 const url = getCanonicalUrl("bot", "pronouns");
2727···5353}: {
5454 children: React.ReactNode
5555}) {
5656- const topGuilds = await fetch(`${process.env.NEXT_PUBLIC_API}/top-guilds`, fetchOptions).then((res) => res.json()) as ApiV1TopguildsGetResponse[];
5656+ const topGuilds = await fetch(`${process.env.NEXT_PUBLIC_API}/top-guilds`, defaultFetchOptions)
5757+ .then((res) => res.json())
5858+ .catch(() => null) as ApiV1TopguildsGetResponse[] | null;
57595860 return (
5961 <div className="flex items-center flex-col w-full">
···131133 </div>
132134133135134134- <span className={`lg:ml-auto flex gap-2 text-neutral-500 font-mediumr ${handwritten.className} mt-3 opacity-80 pl-20 lg:pr-20 rotate-2`}>
136136+ <span className={cn(handwritten.className, "lg:ml-auto flex gap-2 text-neutral-500 font-mediumr mt-3 opacity-80 pl-20 lg:pr-20 rotate-2")}>
135137 <Image src={ArrowPic} width={24} height={24} alt="arrow up" className="h-5 w-5 relative top-px" draggable={false} />
136138 Get started here in seconds
137139 </span>
···145147 {children}
146148 </div>
147149148148- <div className="w-full mt-6">
149149- <div className="flex gap-4 items-center mb-2">
150150- <span className="flex items-center gap-2">
151151- <ImageReduceMotion url="/discord" size={64} alt="users's profile picture" className="w-12 h-12 rounded-full" />
152152- <div>
153153- <span className="text-xl font-medium dark:text-neutral-200 text-neutral-800">@deleted user</span> <br />
154154- <span className="dark:text-neutral-300 text-neutral-700">Pronouns user</span>
155155- </div>
156156- </span>
157157- <HiChevronRight className="w-8 h-8" />
158158- </div>
159159- <span className={`${handwritten.className} text-2xl break-words`}>„{"I have a lot of friends who have different preferred pronouns and identities and I think it's super sweet y'all have the feature that they can change their pronouns anytime so I put your bot in my servers and a friend may put it in theirs too 🥰"}“</span>
160160- </div>
150150+ <Comment
151151+ username="@deleted user"
152152+ bio="Pronouns user"
153153+ avatar="/discord.webp"
154154+ content="I have a lot of friends who have different preferred pronouns and identities and I think it's super sweet y'all have the feature that they can change their pronouns anytime so I put your bot in my servers and a friend may put it in theirs too 🥰"
155155+ />
161156162157 </div>
163158 );
+5-1
app/(home)/bot/pronouns/page.tsx
···1414export default async function Home() {
15151616 const styles = {
1717- h2: cn(montserrat.className, "lg:text-5xl text-4xl bg-gradient-to-b bg-clip-text text-transparent from-neutral-200 from-40% to-neutral-400 font-bold underline decoration-violet-400"),
1717+ h2: cn(montserrat.className, "lg:text-5xl text-4xl bg-gradient-to-b bg-clip-text text-transparent from-neutral-200 from-40% to-violet-300 font-bold underline decoration-violet-400"),
1818 h3: cn(montserrat.className, "lg:text-2xl text-xl bg-gradient-to-b bg-clip-text text-transparent from-neutral-200 from-40% to-neutral-300 font-semibold")
1919 };
2020···4646 <Box className="flex flex-col md:flex-row gap-10 items-center">
4747 <div className="md:w-1/2">
4848 <Chip
4949+ className="mb-2"
4950 color="secondary"
5051 variant="flat"
5152 startContent={<HiCash className="mx-1" />}
5253 >
5354 <span className="font-semibold">Everything for free</span>
5455 </Chip>
5656+5557 <h3 className={styles.h3}>Sexualities, Genders & Pronouns</h3>
5858+5659 <div className="pt-6">
5760 Let your community describe themself with a wide variety of supported Pronouns, Sexualities and Genders.
5861 This has become very important in recent years as more and more people finally feel safe to come out publicly as who they really are, and we think this is a great way to express this publicly online.
5962 </div>
6363+6064 <div className="flex gap-2 mt-6">
6165 <ServerButton
6266 as={Link}