diff --git a/app/tournaments.css b/app/tournaments.css
index f9ba830..8234ae3 100644
--- a/app/tournaments.css
+++ b/app/tournaments.css
@@ -2,6 +2,13 @@
max-width: 1180px;
min-height: 60vh;
}
+.start-panel .tournament-map-action {
+ margin-top: 12px;
+ border-color: var(--green);
+ color: var(--green);
+ text-align: center;
+ text-decoration: none;
+}
.tournament-page .eyebrow,
.tournament-server-clock,
.tournament-card p,
diff --git a/app/tournaments/page.tsx b/app/tournaments/page.tsx
index 135a611..07da7c9 100644
--- a/app/tournaments/page.tsx
+++ b/app/tournaments/page.tsx
@@ -2,13 +2,20 @@ import { Header, Footer } from "@/components/Shell";
import { TournamentIndex } from "@/components/TournamentLobby";
import { user } from "@/lib/supabase";
-export default async function TournamentsPage() {
+export default async function TournamentsPage({
+ searchParams,
+}: {
+ searchParams: Promise<{ map?: string | string[] }>;
+}) {
const account = await user();
+ const { map } = await searchParams;
+ const initialMapId =
+ typeof map === "string" && /^[0-9a-f-]{36}$/i.test(map) ? map : null;
return (
<>
-
+
>
diff --git a/components/StartGame.tsx b/components/StartGame.tsx
index 6981672..16480ba 100644
--- a/components/StartGame.tsx
+++ b/components/StartGame.tsx
@@ -4,7 +4,7 @@ import { useI18n } from "@/components/I18nProvider";
import { useEffect, useRef, useState, type FormEvent } from "react";
import Link from "next/link";
import { useRouter } from "next/navigation";
-import { ArrowRight, Timer, ZoomIn, Users } from "lucide-react";
+import { ArrowRight, Timer, ZoomIn, Users, Trophy } from "lucide-react";
import {
difficulties,
customDifficultySchema,
@@ -42,6 +42,7 @@ export function StartGame({
[loading, setLoading] = useState(false),
[error, setError] = useState("");
const router = useRouter();
+ const tournamentPath = `/tournaments?map=${encodeURIComponent(datasetId)}`;
const starting = useRef(false);
const savingPreset = useRef(false);
useEffect(() => {
@@ -147,6 +148,22 @@ export function StartGame({
{t("Multiplayer")}
+
+
+ {t(
+ hostName
+ ? "Create tournament with this map"
+ : "Log in to create a tournament",
+ )}
+
+
{options.map((option) => (