feat: remove margin

This commit is contained in:
dvelo 2025-05-16 21:00:36 -05:00
parent cdcb83e449
commit 21d66742c6
3 changed files with 35 additions and 17 deletions

@ -1,5 +1,5 @@
"use client"; "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 IconDisplay from "../icons/minecraft-icon-display";
import { ServerPageTags } from "./server-page-tags"; import { ServerPageTags } from "./server-page-tags";
import { Separator } from "@/components/ui/separator"; import { Separator } from "@/components/ui/separator";
@ -13,9 +13,11 @@ import { Avatar, AvatarFallback, AvatarImage } from "@/components/ui/avatar";
export function ServerMainPage({ export function ServerMainPage({
server, server,
mhsfData, mhsfData,
onlineServer
}: { }: {
server: ServerResponse; server: ServerResponse;
mhsfData: ReturnType<typeof useMHSFServer>; mhsfData: ReturnType<typeof useMHSFServer>;
onlineServer?: OnlineServer;
}) { }) {
useEffect(() => { useEffect(() => {
if (mhsfData.server?.customizationData.colorMode !== null) { if (mhsfData.server?.customizationData.colorMode !== null) {
@ -52,21 +54,26 @@ export function ServerMainPage({
</div> </div>
<p className="w-full"> <p className="w-full">
<div className="lg:flex justify-between w-full"> <div className="lg:flex justify-between w-full">
<h1 className="text-2xl font-bold flex items-center gap-1 ml-2"> <h1 className="text-2xl font-bold flex items-center gap-1">
{server.name}
{onlineServer !== undefined && onlineServer?.author && (
<span className="text-muted-foreground flex items-center gap-2">
by{" "}
{mhsfData.server?.customizationData.userProfilePicture && ( {mhsfData.server?.customizationData.userProfilePicture && (
<Avatar className="h-[32px] w-[32px]"> <Avatar className="h-[16px] w-[16px]">
<AvatarImage <AvatarImage
src={ src={
mhsfData.server?.customizationData.userProfilePicture ?? mhsfData.server?.customizationData
"" .userProfilePicture ?? ""
} }
alt="Server Owner Image" alt="Server Owner Image"
/> />
<AvatarFallback>{server.name[0]}</AvatarFallback> <AvatarFallback>{onlineServer?.author[0]}</AvatarFallback>
</Avatar> </Avatar>
)} )}
{onlineServer?.author}
{server.name} </span>
)}
</h1> </h1>
<span> <span>
<ServerPageButtons server={server} mhsfData={mhsfData} /> <ServerPageButtons server={server} mhsfData={mhsfData} />

@ -14,7 +14,7 @@ import { ReportingProvider } from "./reporting/reporting-provider";
import { ServerEditorProvider } from "./server-editor/server-editor-provider"; import { ServerEditorProvider } from "./server-editor/server-editor-provider";
export function ServerProvider({ serverId }: { serverId: string }) { 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 settings = useSettingsStore();
const mhsf = useMHSFServer(serverId); const mhsf = useMHSFServer(serverId);
@ -77,6 +77,7 @@ export function ServerProvider({ serverId }: { serverId: string }) {
<ServerMainPage <ServerMainPage
server={server as ServerResponse} server={server as ServerResponse}
mhsfData={mhsf} mhsfData={mhsf}
onlineServer={onlineServer ?? undefined}
/> />
</ReportingProvider> </ReportingProvider>
</ServerEditorProvider> </ServerEditorProvider>

@ -6,6 +6,7 @@ export function useServer(serverSpecifier: { id?: string; name?: string }) {
const [loading, setLoading] = useState(true); const [loading, setLoading] = useState(true);
const [error, setError] = useState<string | null>(null); const [error, setError] = useState<string | null>(null);
const [server, setServer] = useState<ServerResponse | null>(null); const [server, setServer] = useState<ServerResponse | null>(null);
const [onlineServer, setOnlineServer] = useState<OnlineServer | null>(null);
useEffectOnce(() => { useEffectOnce(() => {
try { try {
@ -16,6 +17,15 @@ export function useServer(serverSpecifier: { id?: string; name?: string }) {
const json = await res.json(); const json = await res.json();
if (json.server === null) throw new Error("Server not found"); 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); setServer(json.server);
setLoading(false); setLoading(false);
})(); })();
@ -26,5 +36,5 @@ export function useServer(serverSpecifier: { id?: string; name?: string }) {
} }
}); });
return { loading, error, server }; return { loading, error, server, onlineServer };
} }