import { useEffect, useRef, useState } from 'react'; import { getNickname, setNickname } from '../lib/friendNicknames'; interface Props { open: boolean; userId: string; displayName: string; onClose: () => void; } export function NicknameDialog({ open, userId, displayName, onClose }: Props) { const [value, setValue] = useState(''); const inputRef = useRef(null); useEffect(() => { if (!open) return; setValue(getNickname(userId) ?? ''); setTimeout(() => inputRef.current?.focus(), 0); }, [open, userId]); useEffect(() => { if (!open) return; const onKey = (e: KeyboardEvent) => { if (e.key === 'Escape') onClose(); }; window.addEventListener('keydown', onKey); return () => window.removeEventListener('keydown', onKey); }, [open, onClose]); if (!open) return null; const submit = (): void => { setNickname(userId, value); onClose(); }; return (
e.stopPropagation()} className="w-full max-w-sm rounded-2xl border border-line bg-surface-2 p-5 shadow-xl" >

Spitzname für {displayName}

Nur du siehst diesen Namen. Leer lassen = den richtigen Namen verwenden.

setValue(e.target.value)} onKeyDown={(e) => { if (e.key === 'Enter') submit(); }} maxLength={32} placeholder={displayName} className="mt-4 w-full rounded-lg border border-line bg-surface-3 px-3 py-2 text-sm text-fg placeholder-fg-muted focus:border-accent focus:outline-none focus:ring-2 focus:ring-accent/30" />
); }