From 937ed9c380fc769b6dd5dfd218ab24b4aa1b099e Mon Sep 17 00:00:00 2001 From: dvelo <52332868+DeveloLongScript@users.noreply.github.com> Date: Sun, 18 Aug 2024 23:39:29 -0500 Subject: [PATCH] feat: new server info tab --- package.json | 2 +- src/app/sort/favorites/page.tsx | 6 + src/components/AfterServerView.tsx | 339 ++++++++++++++++++++++++++--- src/lib/mhsf.ts | 17 ++ src/version.tsx | 12 +- 5 files changed, 347 insertions(+), 29 deletions(-) create mode 100644 src/lib/mhsf.ts diff --git a/package.json b/package.json index da6439d..769a980 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "mh-stats", - "version": "0.10.2", + "version": "0.10.7", "private": true, "packageManager": "yarn@1.22.22", "scripts": { diff --git a/src/app/sort/favorites/page.tsx b/src/app/sort/favorites/page.tsx index 4e1ad6d..0329597 100644 --- a/src/app/sort/favorites/page.tsx +++ b/src/app/sort/favorites/page.tsx @@ -1,4 +1,10 @@ import FavoriteSortView from "@/components/FavoritesSortView"; +import { Metadata } from "next"; + +export const metadata: Metadata = { + title: "Favorites Sort | MHSF", + description: "See all of the servers on Minehut in order of favorites.", +}; export default function FavoritesSort() { return ( diff --git a/src/components/AfterServerView.tsx b/src/components/AfterServerView.tsx index 379b07d..5764e76 100644 --- a/src/components/AfterServerView.tsx +++ b/src/components/AfterServerView.tsx @@ -1,23 +1,48 @@ "use client"; -import { getCustomization } from "@/lib/api"; +import { getCommunityServerFavorites, getCustomization } from "@/lib/api"; import { useEffect, useState } from "react"; -import { Card, CardDescription, CardHeader, CardTitle } from "./ui/card"; +import { + Card, + CardContent, + CardDescription, + CardHeader, + CardTitle, +} from "./ui/card"; import Markdown from "react-markdown"; import { useTheme } from "next-themes"; import FadeIn from "react-fade-in/lib/FadeIn"; +import { Button } from "./ui/button"; +import { ServerResponse } from "@/lib/types/mh-server"; +import { Copy } from "lucide-react"; +import toast, { CheckmarkIcon } from "react-hot-toast"; +import { MHSF } from "@/lib/mhsf"; +import { Tooltip, TooltipContent, TooltipTrigger } from "./ui/tooltip"; export default function AfterServerView({ server }: { server: string }) { const [description, setDescription] = useState(""); const [discord, setDiscord] = useState(""); + const [mhsf, setMHSF] = useState(new MHSF()); const { resolvedTheme } = useTheme(); const [loading, setLoading] = useState(true); + const [view, setView] = useState("desc"); + const [serverObject, setServerObject] = useState( + undefined + ); + const [copied, setCopied] = useState(false); useEffect(() => { getCustomization(server).then((b) => { if (b != null) { setDescription(b.description == null ? "" : b.description); setDiscord(b.discord == null ? "" : b.discord); + mhsf.setCustomizations(b); + getCommunityServerFavorites(server).then((c) => { + mhsf.setFavorites(c); + }); } + fetch("https://api.minehut.com/server/" + server + "?byName=true").then( + (c) => c.json().then((n) => setServerObject(n.server)) + ); setLoading(false); }); }, []); @@ -26,34 +51,296 @@ export default function AfterServerView({ server }: { server: string }) { return ( <> -
- {description != "" && ( - - - {description} - - - )} - {discord != "" && ( - - - Discord Server - -