Cleanup and center the links in the navbar
Some checks failed
Deploy Frontend / docker (17, 3.8.5) (push) Has been cancelled
Some checks failed
Deploy Frontend / docker (17, 3.8.5) (push) Has been cancelled
This commit is contained in:
parent
4bccec1f5d
commit
1244b6d142
@ -5,6 +5,7 @@ import Link from "next/link";
|
|||||||
import { ReactElement } from "react";
|
import { ReactElement } from "react";
|
||||||
import {
|
import {
|
||||||
getMojangServerStatus,
|
getMojangServerStatus,
|
||||||
|
MojangServer,
|
||||||
MojangServerStatus,
|
MojangServerStatus,
|
||||||
MojangServerStatusResponse,
|
MojangServerStatusResponse,
|
||||||
} from "restfulmc-lib";
|
} from "restfulmc-lib";
|
||||||
@ -46,7 +47,8 @@ const MojangStatusPage = async (): Promise<ReactElement> => {
|
|||||||
|
|
||||||
{/* Server Statuses */}
|
{/* Server Statuses */}
|
||||||
<div className="w-[25rem] xs:w-[29rem] sm:w-[33.5rem] px-5 py-3.5 flex flex-col gap-2.5 bg-muted rounded-xl divide-y-2 divide-zinc-700/40 transition-all transform-gpu">
|
<div className="w-[25rem] xs:w-[29rem] sm:w-[33.5rem] px-5 py-3.5 flex flex-col gap-2.5 bg-muted rounded-xl divide-y-2 divide-zinc-700/40 transition-all transform-gpu">
|
||||||
{servers.map((server, index) => {
|
{servers.map(
|
||||||
|
(server: MojangServer, index: number): ReactElement => {
|
||||||
const status: MojangServerStatus = server.status; // The status of the server
|
const status: MojangServerStatus = server.status; // The status of the server
|
||||||
return (
|
return (
|
||||||
<div
|
<div
|
||||||
@ -81,7 +83,8 @@ const MojangStatusPage = async (): Promise<ReactElement> => {
|
|||||||
</h2>
|
</h2>
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
})}
|
}
|
||||||
|
)}
|
||||||
</div>
|
</div>
|
||||||
</main>
|
</main>
|
||||||
);
|
);
|
||||||
@ -90,7 +93,9 @@ const MojangStatusPage = async (): Promise<ReactElement> => {
|
|||||||
/**
|
/**
|
||||||
* The styles for each status.
|
* The styles for each status.
|
||||||
*/
|
*/
|
||||||
const statusStyles: any = {
|
const statusStyles: {
|
||||||
|
[status: string]: string;
|
||||||
|
} = {
|
||||||
ONLINE: "text-green-500",
|
ONLINE: "text-green-500",
|
||||||
DEGRADED: "text-yellow-500",
|
DEGRADED: "text-yellow-500",
|
||||||
OFFLINE: "text-red-500",
|
OFFLINE: "text-red-500",
|
||||||
|
@ -2,7 +2,7 @@ import FeaturedContent from "@/components/landing/featured-content";
|
|||||||
import Hero from "@/components/landing/hero";
|
import Hero from "@/components/landing/hero";
|
||||||
import StatisticCounters from "@/components/landing/statistic-counters";
|
import StatisticCounters from "@/components/landing/statistic-counters";
|
||||||
import { ReactElement } from "react";
|
import { ReactElement } from "react";
|
||||||
import HeroBackground from "../components/landing/background";
|
import HeroBackground from "@/components/landing/background";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The landing page.
|
* The landing page.
|
||||||
|
@ -12,6 +12,7 @@ type EmbedProps = {
|
|||||||
/**
|
/**
|
||||||
* The color of this embed, undefined
|
* The color of this embed, undefined
|
||||||
* for no custom color.
|
* for no custom color.
|
||||||
|
* // TODO: make this work lol
|
||||||
*/
|
*/
|
||||||
color?: string | undefined;
|
color?: string | undefined;
|
||||||
|
|
||||||
@ -52,7 +53,6 @@ const Embed = ({
|
|||||||
twitter: {
|
twitter: {
|
||||||
card: "summary",
|
card: "summary",
|
||||||
},
|
},
|
||||||
themeColor: color,
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
export default Embed;
|
export default Embed;
|
||||||
|
@ -6,6 +6,11 @@ import { minecrafter } from "@/font/fonts";
|
|||||||
import { cn } from "@/lib/utils";
|
import { cn } from "@/lib/utils";
|
||||||
import { FooterLinks } from "@/types/config";
|
import { FooterLinks } from "@/types/config";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The footer for the site.
|
||||||
|
*
|
||||||
|
* @returns the footer jsx
|
||||||
|
*/
|
||||||
const Footer = (): ReactElement => (
|
const Footer = (): ReactElement => (
|
||||||
<footer
|
<footer
|
||||||
className={cn(
|
className={cn(
|
||||||
|
@ -22,7 +22,7 @@ import {
|
|||||||
const GitHubStarButton = (): ReactElement => {
|
const GitHubStarButton = (): ReactElement => {
|
||||||
const [stars, setStars]: [
|
const [stars, setStars]: [
|
||||||
number | undefined,
|
number | undefined,
|
||||||
Dispatch<SetStateAction<number | undefined>>
|
Dispatch<SetStateAction<number | undefined>>,
|
||||||
] = useState<number | undefined>(undefined); // The stars of the repository
|
] = useState<number | undefined>(undefined); // The stars of the repository
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
|
@ -17,13 +17,12 @@ import { ReactElement } from "react";
|
|||||||
const Navbar = (): ReactElement => {
|
const Navbar = (): ReactElement => {
|
||||||
const path: string = usePathname(); // Get the current path
|
const path: string = usePathname(); // Get the current path
|
||||||
return (
|
return (
|
||||||
<nav className="fixed inset-x-0 flex h-16 px-5 sm:px-12 justify-center sm:justify-between items-center bg-navbar-background z-50">
|
<nav className="fixed inset-x-0 flex h-16 px-2.5 xs:px-5 sm:px-12 bg-navbar-background transition-all transform-gpu z-50">
|
||||||
{/* Left */}
|
<div className="relative w-full flex justify-between items-center">
|
||||||
<div className="flex gap-3 xs:gap-7 lg:gap-12 items-center transition-all transform-gpu">
|
{/* App Branding - Left */}
|
||||||
{/* App Branding */}
|
|
||||||
<Link
|
<Link
|
||||||
className={cn(
|
className={cn(
|
||||||
"text-3xl text-minecraft-green-3 hover:opacity-85 transition-all transform-gpu",
|
"text-3xl text-minecraft-green-3 hover:opacity-85 transition-all transform-gpu z-50",
|
||||||
minecrafter.className
|
minecrafter.className
|
||||||
)}
|
)}
|
||||||
href="/"
|
href="/"
|
||||||
@ -41,7 +40,8 @@ const Navbar = (): ReactElement => {
|
|||||||
<span className="hidden lg:flex">{config.siteName}</span>
|
<span className="hidden lg:flex">{config.siteName}</span>
|
||||||
</Link>
|
</Link>
|
||||||
|
|
||||||
{/* Links */}
|
{/* Center - Links */}
|
||||||
|
<div className="absolute inset-x-0 md:left-20 lg:left-0 flex justify-center md:justify-start lg:justify-center">
|
||||||
<div className="flex gap-7">
|
<div className="flex gap-7">
|
||||||
{Object.entries(config.navbarLinks).map(
|
{Object.entries(config.navbarLinks).map(
|
||||||
(link: [string, string], index: number) => {
|
(link: [string, string], index: number) => {
|
||||||
@ -69,6 +69,7 @@ const Navbar = (): ReactElement => {
|
|||||||
{/* Star on Github <3 */}
|
{/* Star on Github <3 */}
|
||||||
<GitHubStarButton />
|
<GitHubStarButton />
|
||||||
</div>
|
</div>
|
||||||
|
</div>
|
||||||
</nav>
|
</nav>
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
@ -101,7 +101,11 @@ const PlayerResult = ({
|
|||||||
part === SkinPart.FACE ||
|
part === SkinPart.FACE ||
|
||||||
part === SkinPart.BODY_FLAT
|
part === SkinPart.BODY_FLAT
|
||||||
)
|
)
|
||||||
.map(([part, url], index) => (
|
.map(
|
||||||
|
(
|
||||||
|
[part, url]: [string, string],
|
||||||
|
index: number
|
||||||
|
) => (
|
||||||
<Link
|
<Link
|
||||||
key={index}
|
key={index}
|
||||||
href={url}
|
href={url}
|
||||||
@ -113,7 +117,8 @@ const PlayerResult = ({
|
|||||||
alt={`${username}'s ${part}`}
|
alt={`${username}'s ${part}`}
|
||||||
/>
|
/>
|
||||||
</Link>
|
</Link>
|
||||||
))}
|
)
|
||||||
|
)}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -1,11 +1,11 @@
|
|||||||
import { cn } from "@/lib/utils";
|
import { cn } from "@/lib/utils";
|
||||||
import Image from "next/image";
|
import Image from "next/image";
|
||||||
import { ReactElement, ReactNode } from "react";
|
import { ReactElement } from "react";
|
||||||
import {
|
import {
|
||||||
CachedBedrockMinecraftServer,
|
CachedBedrockMinecraftServer,
|
||||||
CachedJavaMinecraftServer,
|
CachedJavaMinecraftServer,
|
||||||
} from "restfulmc-lib";
|
} from "restfulmc-lib";
|
||||||
import config from "../../config";
|
import config from "@/config";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The props for a server result.
|
* The props for a server result.
|
||||||
@ -25,7 +25,7 @@ type ServerResultProps = {
|
|||||||
*/
|
*/
|
||||||
const ServerResult = ({ server }: ServerResultProps): ReactElement => {
|
const ServerResult = ({ server }: ServerResultProps): ReactElement => {
|
||||||
const favicon: string | undefined = (server as CachedJavaMinecraftServer)
|
const favicon: string | undefined = (server as CachedJavaMinecraftServer)
|
||||||
.favicon?.url; // The favicon of the server (TODO: bedrock)
|
.favicon?.url; // The favicon of the server
|
||||||
return (
|
return (
|
||||||
<div
|
<div
|
||||||
className={cn(
|
className={cn(
|
||||||
|
@ -62,7 +62,10 @@ const ServerSearch = ({
|
|||||||
</SelectTrigger>
|
</SelectTrigger>
|
||||||
<SelectContent>
|
<SelectContent>
|
||||||
{Object.values(ServerPlatform).map(
|
{Object.values(ServerPlatform).map(
|
||||||
(platform, index) => (
|
(
|
||||||
|
platform: ServerPlatform,
|
||||||
|
index: number
|
||||||
|
): ReactElement => (
|
||||||
<SelectItem key={index} value={platform}>
|
<SelectItem key={index} value={platform}>
|
||||||
{capitialize(platform)}
|
{capitialize(platform)}
|
||||||
</SelectItem>
|
</SelectItem>
|
||||||
|
Loading…
Reference in New Issue
Block a user