Lustige Raumnamen: Generator, Lobby-Anzeige + Würfel-Button
Build & Deploy / deploy (push) Successful in 19s
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:
@@ -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
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user