/* global React, MZ, L */ const { useState, useEffect, useRef } = React; const ROLE_PL = { admin: 'administrator', moderator: 'moderator', trusted: 'zaufany', member: 'użytkownik' }; function Account({ userId, handle, setRoute, profile: myProfile, onToast }) { const [u, setU] = useState(null); const [videos, setVideos] = useState([]); const [tab, setTab] = useState('videos'); const [loading, setLoading] = useState(true); const isMe = myProfile?.id === (u?.id || userId); useEffect(() => { (async () => { setLoading(true); try { let prof; if (userId) prof = await MZ.getProfile(userId); else if (handle) { const { data } = await MZ.sb.from('profiles').select('*').eq('handle', handle).single(); prof = data; } if (!prof) throw new Error('not found'); const vids = await MZ.listUserVideos(prof.id); setU(prof); setVideos(vids); if (window.MZ_SEO) window.MZ_SEO.forAccount(prof.handle); } catch (e) { onToast('Nie znaleziono użytkownika'); } setLoading(false); })(); }, [userId, handle]); if (loading || !u) return
Ładowanie profilu…
Brak opublikowanych nagrań.
)} {tab === 'pending' && isMe && (Brak oczekujących nagrań.
: videos.filter(v=>v.status!=='published').map(v => (| Tytuł | Autor | Lokalizacja | Rodzaj | Głosy | Wyśw. | Akcje |
|---|---|---|---|---|---|---|
| { e.preventDefault(); setRoute({name:'video', id:v.id}); }}>{v.title} | @{v.author_profile?.handle || '—'} | {v.city || '—'} | {SEV_PL[v.severity] || v.severity} | +{fmt((v.up||0) - (v.down||0))} | {fmt(v.views)} |
{statusFilter === 'published' && }
{statusFilter !== 'published' && }
|
| Nagranie | Zgłaszający | Powód | Otwarte | Status | Akcje |
|---|---|---|---|---|---|
| Brak zgłoszeń. | |||||
| {r.video?.title || '—'} | @{r.reporter_profile?.handle || '—'} | {r.reason}{r.details ? ` — ${r.details}` : ''} | {fmtDate(r.created_at)} | {r.status} | |
| Nick | Imię | Rola | Dołączył | Karma | Akcje |
|---|---|---|---|---|---|
| { e.preventDefault(); setRoute({name:'account', id:u.id}); }} style={{borderBottom:'1px solid var(--line-2)'}} className="mono">@{u.handle} | {u.name || '—'} | {fmtDate(u.joined)} | {fmt(u.karma)} |