From b351354436c57838c9e29b2e109002b971bcac60 Mon Sep 17 00:00:00 2001 From: Leon Morival Date: Wed, 8 Jul 2026 18:39:10 +0200 Subject: [PATCH] feat: favicon and astroneer --- app/astroneer/page.tsx | 155 ++++++++++++++++++++++++ app/components/HomeElement.tsx | 47 +++++++- app/components/MinecraftStatus.tsx | 2 +- app/favicon.ico | Bin 25931 -> 32038 bytes app/globals.css | 185 +++++++++++++++++++++++++++-- app/layout.tsx | 13 ++ app/lib/server-config.ts | 7 ++ app/minecraft/page.tsx | 16 +-- app/page.tsx | 13 +- app/robots.ts | 10 ++ next.config.ts | 14 ++- public/file.svg | 1 - public/globe.svg | 1 - public/next.svg | 1 - public/vercel.svg | 1 - public/window.svg | 1 - 16 files changed, 440 insertions(+), 27 deletions(-) create mode 100644 app/astroneer/page.tsx create mode 100644 app/robots.ts delete mode 100644 public/file.svg delete mode 100644 public/globe.svg delete mode 100644 public/next.svg delete mode 100644 public/vercel.svg delete mode 100644 public/window.svg diff --git a/app/astroneer/page.tsx b/app/astroneer/page.tsx new file mode 100644 index 0000000..6cfa130 --- /dev/null +++ b/app/astroneer/page.tsx @@ -0,0 +1,155 @@ +import type { Metadata } from "next"; +import Link from "next/link"; +import CopyAddressButton from "../components/CopyAddressButton"; +import { astroneerServer } from "../lib/server-config"; + +const joinSteps = [ + { + number: "1", + title: "Lance Astroneer", + text: "Ouvre le jeu avec ton compte habituel et une version à jour.", + }, + { + number: "2", + title: "Ouvre le multijoueur", + text: "Va dans les serveurs dédiés depuis le menu de coopération.", + }, + { + number: "3", + title: "Ajoute l'adresse", + text: `Renseigne ${astroneerServer.address} dans la connexion serveur.`, + }, + { + number: "4", + title: "Rejoins la partie", + text: "Connecte-toi au serveur et retrouve la base partagée.", + }, +]; + +export const metadata: Metadata = { + title: "Astroneer | Le serveur de Leon", +}; + +export default function AstroneerPage() { + return ( +
+ + +
+ + +
+

Astroneer

+

Serveur dédié privé pour explorer, automatiser et construire entre amis.

+ +
+ + {astroneerServer.address} +
+ +
+ +
+
+
+ +
+
+
+

Infos serveur

+

Les informations utiles pour te connecter.

+
+ +
+ + + + +
+
+ +
+
+

Comment rejoindre

+

Quatre étapes pour entrer sur le serveur.

+
+ +
+ {joinSteps.map((step) => ( +
+ {step.number} +

{step.title}

+

{step.text}

+
+ ))} +
+
+ +
+ + + Retour accueil + +
+
+
+ ); +} + +type InfoItemProps = { + label: string; + value: string; +}; + +function InfoItem({ label, value }: InfoItemProps) { + return ( +
+ {label} + {value} +
+ ); +} + +function HomeIcon() { + return ( + + ); +} + +function PlanetIcon() { + return ( + + ); +} + +function ArrowLeftIcon() { + return ( + + ); +} diff --git a/app/components/HomeElement.tsx b/app/components/HomeElement.tsx index 03285d7..d0085b8 100644 --- a/app/components/HomeElement.tsx +++ b/app/components/HomeElement.tsx @@ -4,9 +4,9 @@ import type { ReactNode } from "react"; type HomeElementProps = { title: string; description: string; - href: string; + href?: string; actionLabel: string; - variant: "jellyfin" | "minecraft"; + variant: "jellyfin" | "minecraft" | "astroneer"; external?: boolean; children: ReactNode; }; @@ -29,14 +29,18 @@ export default function HomeElement({ {description} - {actionLabel} - + {actionLabel} + {href ? : } ); const className = `service-card service-card--${variant}`; + if (!href) { + return
{content}
; + } + if (external) { return ( @@ -94,6 +98,31 @@ export function MinecraftIcon() { ); } +export function AstroneerIcon() { + return ( + + ); +} + function ArrowIcon() { return ( ); } + +function SignalIcon() { + return ( + + ); +} diff --git a/app/components/MinecraftStatus.tsx b/app/components/MinecraftStatus.tsx index 3ee2a71..73b33d2 100644 --- a/app/components/MinecraftStatus.tsx +++ b/app/components/MinecraftStatus.tsx @@ -99,7 +99,7 @@ type StatusItemProps = { function StatusItem({ label, value, tone }: StatusItemProps) { return ( -
+
{label} {tone ?