Lustige Raumnamen: Generator, Lobby-Anzeige + Würfel-Button
Build & Deploy / deploy (push) Successful in 19s

- Server: 3 Name-Muster (Adj+Tiere, Wort-Event, Action-im-Ort), rename-Endpunkt (Host, Lobby)
- Lobby: Raumname ueber Code, Host kann wuerfeln, Share-Text mit Name
This commit is contained in:
Kimi Work
2026-10-10 19:06:57 +02:00
parent 8cf4986b48
commit b1fb42fe7c
3 changed files with 75 additions and 2 deletions
+2
View File
@@ -24,6 +24,7 @@ export interface Ergebnis {
export interface RaumZustand {
code: string
raumname: string
status: RaumStatus
runde: number
anzahlRunden: number
@@ -110,6 +111,7 @@ export async function raumBeitreten(code: string, name: string): Promise<{ sessi
export const zustandLaden = (s: RaumSession) => anfrage('GET', `/${s.code}`, undefined, s.token)
export const readySetzen = (s: RaumSession, ready: boolean) => anfrage('POST', `/${s.code}/ready`, { ready }, s.token)
export const redModeSetzen = (s: RaumSession, redMode: boolean) => anfrage('POST', `/${s.code}/redmode`, { redMode }, s.token)
export const raumUmbenennen = (s: RaumSession) => anfrage('POST', `/${s.code}/rename`, {}, s.token)
export const frageStellen = (s: RaumSession, frage: string) => anfrage('POST', `/${s.code}/question`, { frage }, s.token)
export const rankingAbgeben = (s: RaumSession, reihenfolge: string[]) =>
anfrage('POST', `/${s.code}/ranking`, { reihenfolge }, s.token)
+17 -2
View File
@@ -3,6 +3,7 @@ import {
Check,
Copy,
Crown,
Dice5,
DoorOpen,
Eraser,
EyeOff,
@@ -24,6 +25,7 @@ import {
zustandLaden,
readySetzen,
redModeSetzen,
raumUmbenennen,
frageStellen,
rankingAbgeben,
naechstePhase,
@@ -265,7 +267,7 @@ function Lobby({
const teilen = async () => {
if (navigator.share) {
try {
await navigator.share({ title: '1 bis 8 Party', text: `Tritt meinem Spielraum ${z.code} bei!`, url: beitrittsUrl })
await navigator.share({ title: '1 bis 8 Party', text: `Tritt „${z.raumname}“ bei! Spielraum-Code: ${z.code}`, url: beitrittsUrl })
return
} catch {
/* User abgebrochen -> Copy Fallback */
@@ -294,7 +296,20 @@ function Lobby({
/>
)}
<div className="glass-card p-5 text-center">
<p className="text-xs font-extrabold uppercase tracking-[0.25em] text-violet-300">Spielraum-Code</p>
<p className="text-xs font-extrabold uppercase tracking-[0.25em] text-violet-300">Spielraum</p>
<div className="mt-1 flex items-center justify-center gap-2">
<p className="font-display text-2xl font-bold text-white">{z.raumname}</p>
{ich?.istHost && (
<button
onClick={() => onAct((s) => raumUmbenennen(s))}
title="Namen neu würfeln"
className="rounded-full border border-white/15 bg-white/[0.06] p-1.5 text-white/60 transition-all hover:bg-white/10 hover:text-white active:scale-90"
>
<Dice5 size={16} />
</button>
)}
</div>
<p className="mt-3 text-xs font-extrabold uppercase tracking-[0.25em] text-violet-300">Code</p>
<p className="mt-1 font-display text-5xl font-bold tracking-[0.25em] text-gradient">{z.code}</p>
<p className="mt-2 text-sm text-white/55">
Alle öffnen <span className="font-bold text-white/80">1bis.hocks.eu</span> auf dem Handy und