Skip to content

Commit 5462a9c

Browse files
authored
Merge pull request #5 from Awakno/feat/join-server
Ajout page /rejoindre avec l'IP du serveur
2 parents 11682b9 + 1592108 commit 5462a9c

File tree

4 files changed

+74
-5
lines changed

4 files changed

+74
-5
lines changed

.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,3 +39,5 @@ yarn-error.log*
3939
# typescript
4040
*.tsbuildinfo
4141
next-env.d.ts
42+
43+
yarn.lock

app/join/page.tsx

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
"use client";
2+
3+
import Link from "next/link";
4+
import Image from "next/image";
5+
import { useState } from "react";
6+
import Logo from "@/public/branding/logoomc.png";
7+
import { HomeIcon } from "lucide-react";
8+
9+
export default function Page() {
10+
const [copied, setCopied] = useState(false);
11+
const serverIP = "play.openmc.fr";
12+
13+
const handleCopy = () => {
14+
navigator.clipboard.writeText(serverIP).then(() => {
15+
setCopied(true);
16+
setTimeout(() => setCopied(false), 2000);
17+
});
18+
};
19+
20+
return (
21+
<div className="flex flex-col items-center justify-center min-h-screen px-4">
22+
<Image
23+
src={Logo}
24+
alt="Logo du serveur"
25+
width={120}
26+
height={120}
27+
className="mb-6"
28+
/>
29+
<h1 className="text-5xl font-extrabold text-center text-gray-800 dark:text-gray-100">
30+
Rejoindre le Serveur Minecraft
31+
</h1>
32+
<p className="mt-4 text-lg text-center text-gray-600 dark:text-gray-400">
33+
Connecte-toi et viens construire avec nous ! 🎮
34+
</p>
35+
36+
<div className="mt-8 bg-primary/70 dark:bg-primary/10 text-white rounded-xl shadow-2xl p-6 w-full max-w-md">
37+
<h2 className="text-2xl font-bold text-center mb-4">
38+
Adresse du serveur
39+
</h2>
40+
<div className="dark:bg-black bg-white rounded-md p-4 font-mono text-lg dark:text-white text-black text-left border border-gray-700 mb-4">
41+
{serverIP}
42+
</div>
43+
<button
44+
onClick={handleCopy}
45+
className="w-full bg-primary/100 hover:bg-primary/80 text-white font-semibold py-2 rounded transition"
46+
>
47+
{copied ? "Copié !" : "Copier l'IP"}
48+
</button>
49+
</div>
50+
51+
<Link
52+
href="/"
53+
className="mt-10 px-4 py-2 dark:bg-white bg-black dark:text-black text-white rounded dark:hover:bg-gray-100 hover:bg-gray-900 transition duration-200 flex items-center justify-center"
54+
>
55+
<HomeIcon className="inline-block mr-2" size={16} />
56+
Retour à l&apos;accueil
57+
</Link>
58+
</div>
59+
);
60+
}

components/home/header.tsx

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,16 @@
1+
"use client";
12
import Image from "next/image";
23
import { AnimatedShinyText } from "@/components/magicui/animated-shiny-text";
34
import { cn } from "@/lib/utils";
45
import { ArrowRightIcon } from "lucide-react";
56
import Link from "next/link";
67
import { DotPattern } from "@/components/magicui/dot-pattern";
78
import { Button } from "@/components/ui/button";
9+
import homePageImage from "@/public/placeholder/homepage.webp";
10+
import { useRouter } from "next/navigation";
811

912
export default function Header() {
13+
const router = useRouter();
1014
return (
1115
<div className="relative px-4 sm:px-6 lg:px-8">
1216
<DotPattern
@@ -38,7 +42,7 @@ export default function Header() {
3842
OpenMC est un projet communautaire open-source dédié à la création d&apos;un serveur Minecraft innovant et collaboratif.
3943
</p>
4044
<div className="mt-6 flex flex-col sm:flex-row gap-3 justify-center items-center">
41-
<Button className="group w-full sm:w-auto">
45+
<Button className="group w-full sm:w-auto" onClick={() => router.push("/join")}>
4246
Rejoindre le Serveur
4347
<ArrowRightIcon
4448
className="-me-1 opacity-60 transition-transform group-hover:translate-x-0.5"
@@ -71,7 +75,7 @@ export default function Header() {
7175

7276
<div className="mt-10 w-full max-w-5xl relative rounded-4xl overflow-hidden">
7377
<Image
74-
src={`./placeholder/homepage.webp`}
78+
src={homePageImage}
7579
alt="Placeholder"
7680
width={1280}
7781
height={720}

components/navigation/navbar.tsx

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,14 @@ import { Button } from "../ui/button";
66
import { ArrowRightIcon } from "lucide-react"
77
import { NAVBAR_LINKS } from "@/config";
88
import { useEffect, useState } from "react";
9+
import Logo from "@/public/branding/logo.webp";
10+
import { useRouter } from "next/navigation";
911

1012
export default function Navbar() {
1113

1214
const [isScrolled, setIsScrolled] = useState(false);
1315
const [menuOpen, setMenuOpen] = useState(false);
16+
const router = useRouter();
1417

1518
useEffect(() => {
1619
const handleScroll = () => setIsScrolled(window.scrollY > 20);
@@ -45,7 +48,7 @@ export default function Navbar() {
4548
>
4649
<div className="flex items-center gap-4">
4750
<Link href="/">
48-
<Image src={`./branding/logo.webp`} alt="Logo" width={200} height={50} />
51+
<Image src={Logo} alt="Logo" width={200} height={50} />
4952
</Link>
5053
</div>
5154
<div className="hidden md:flex flex-grow justify-center gap-4 items-center">
@@ -65,7 +68,7 @@ export default function Navbar() {
6568
))}
6669
</div>
6770
<div className="hidden md:flex">
68-
<Button className="group">
71+
<Button className="group" onClick={() => router.push("/join")}>
6972
Rejoindre le Serveur
7073
<ArrowRightIcon
7174
className="-me-1 opacity-60 transition-transform group-hover:translate-x-0.5"
@@ -118,7 +121,7 @@ export default function Navbar() {
118121
<Button
119122
className="w-full group py-6 text-base mt-2 bg-white/10 active:bg-white/20
120123
border border-white/20 active:border-white/30 transition-all duration-300"
121-
onClick={() => setMenuOpen(false)}
124+
onClick={() => { setMenuOpen(false); router.push("/join"); }}
122125
>
123126
Rejoindre le Serveur
124127
<ArrowRightIcon

0 commit comments

Comments
 (0)