From 21d66742c64093462de20985ba7ada2e236ee544 Mon Sep 17 00:00:00 2001 From: dvelo <52332868+DeveloLongScript@users.noreply.github.com> Date: Fri, 16 May 2025 21:00:36 -0500 Subject: [PATCH] feat: remove margin --- .../feat/server-page/server-page.tsx | 37 +++++++++++-------- .../feat/server-page/server-provider.tsx | 3 +- apps/www/src/lib/hooks/use-server.tsx | 12 +++++- 3 files changed, 35 insertions(+), 17 deletions(-) diff --git a/apps/www/src/components/feat/server-page/server-page.tsx b/apps/www/src/components/feat/server-page/server-page.tsx index e1e56e7..99a9eec 100644 --- a/apps/www/src/components/feat/server-page/server-page.tsx +++ b/apps/www/src/components/feat/server-page/server-page.tsx @@ -1,5 +1,5 @@ "use client"; -import type { ServerResponse } from "@/lib/types/mh-server"; +import type { OnlineServer, ServerResponse } from "@/lib/types/mh-server"; import IconDisplay from "../icons/minecraft-icon-display"; import { ServerPageTags } from "./server-page-tags"; import { Separator } from "@/components/ui/separator"; @@ -13,9 +13,11 @@ import { Avatar, AvatarFallback, AvatarImage } from "@/components/ui/avatar"; export function ServerMainPage({ server, mhsfData, + onlineServer }: { server: ServerResponse; mhsfData: ReturnType; + onlineServer?: OnlineServer; }) { useEffect(() => { if (mhsfData.server?.customizationData.colorMode !== null) { @@ -52,21 +54,26 @@ export function ServerMainPage({

-

- {mhsfData.server?.customizationData.userProfilePicture && ( - - - {server.name[0]} - - )} - +

{server.name} + {onlineServer !== undefined && onlineServer?.author && ( + + by{" "} + {mhsfData.server?.customizationData.userProfilePicture && ( + + + {onlineServer?.author[0]} + + )} + {onlineServer?.author} + + )}

diff --git a/apps/www/src/components/feat/server-page/server-provider.tsx b/apps/www/src/components/feat/server-page/server-provider.tsx index ee9bcff..2388b7d 100644 --- a/apps/www/src/components/feat/server-page/server-provider.tsx +++ b/apps/www/src/components/feat/server-page/server-provider.tsx @@ -14,7 +14,7 @@ import { ReportingProvider } from "./reporting/reporting-provider"; import { ServerEditorProvider } from "./server-editor/server-editor-provider"; export function ServerProvider({ serverId }: { serverId: string }) { - const { server, error, loading } = useServer({ id: serverId }); + const { server, error, loading, onlineServer } = useServer({ id: serverId }); const settings = useSettingsStore(); const mhsf = useMHSFServer(serverId); @@ -77,6 +77,7 @@ export function ServerProvider({ serverId }: { serverId: string }) { diff --git a/apps/www/src/lib/hooks/use-server.tsx b/apps/www/src/lib/hooks/use-server.tsx index 4fd7abc..e45b354 100644 --- a/apps/www/src/lib/hooks/use-server.tsx +++ b/apps/www/src/lib/hooks/use-server.tsx @@ -6,6 +6,7 @@ export function useServer(serverSpecifier: { id?: string; name?: string }) { const [loading, setLoading] = useState(true); const [error, setError] = useState(null); const [server, setServer] = useState(null); + const [onlineServer, setOnlineServer] = useState(null); useEffectOnce(() => { try { @@ -16,6 +17,15 @@ export function useServer(serverSpecifier: { id?: string; name?: string }) { const json = await res.json(); if (json.server === null) throw new Error("Server not found"); + if (server?.online) { + const res = await fetch("https://api.minehut.com/servers"); + const json = await res.json() as {servers: OnlineServer[]}; + const onlineServerData = json.servers.find((s) => s.staticInfo._id === server._id) ?? null; + if (onlineServerData) { + setOnlineServer(onlineServerData); + } + } + setServer(json.server); setLoading(false); })(); @@ -26,5 +36,5 @@ export function useServer(serverSpecifier: { id?: string; name?: string }) { } }); - return { loading, error, server }; + return { loading, error, server, onlineServer }; }