/* global React, Icon, Eyebrow, Badge, api */ const { useState: useStateCA, useEffect: useEffectCA } = React; function ClippersAdmin(){ const [profiles, setProfiles] = useStateCA([]); const [loading, setLoading] = useStateCA(true); const [search, setSearch] = useStateCA(""); useEffectCA(() => { let mounted = true; api.listAllProfiles().then(r => { if (!mounted) return; setProfiles(r.error ? [] : (r.data || []).filter(p => !p.is_admin)); setLoading(false); }); return () => { mounted = false; }; }, []); const filtered = search ? profiles.filter(p => { const q = search.toLowerCase(); const fields = [p.display_name, p.handle, p.country, p.paypal_email, JSON.stringify(p.social_accounts)].join(" ").toLowerCase(); return fields.includes(q); }) : profiles; const platformIcon = (p) => p === "youtube" ? "youtube" : p === "tiktok" ? "tiktok" : "link"; const platformColor = (p) => p === "youtube" ? "#FF0000" : p === "tiktok" ? "#0A0A0A" : p === "instagram" ? "#E1306C" : "#6E6D66"; return (
CLIPPERS
All accounts ({profiles.length})
setSearch(e.target.value)} placeholder="Search clippers…" style={{height:38,width:260,padding:"0 12px 0 34px",fontFamily:"Geist,sans-serif",fontSize:13,border:"1px solid #E8E6DF",borderRadius:10,background:"#fff",outline:"none"}}/>
{loading ?
Loading…
: filtered.length === 0 ? (
{search ? "No clippers match your search." : "No clippers have signed up yet."}
) : (
{filtered.map(p => { const accounts = Array.isArray(p.social_accounts) && p.social_accounts.length > 0 ? p.social_accounts : p.handle ? [{ platform: "tiktok", handle: p.handle }] : []; const joined = p.created_at ? new Date(p.created_at).toLocaleDateString(undefined, { month: "short", day: "numeric", year: "numeric" }) : "—"; return (
{(p.display_name || "?")[0].toUpperCase()}
{p.display_name || "Unnamed"} {p.country && {p.country}}
{accounts.length > 0 ? (
{accounts.map((a,i) => ( {a.platform} {a.handle} ))}
) : (
No accounts added yet
)}
Joined {joined} {p.payout_method && Payout: {p.payout_method}{p.payout_method === "paypal" && p.paypal_email ? ` (${p.paypal_email})` : ""}} {!p.payout_method && No payout method set}
); })}
)}
); } window.ClippersAdmin = ClippersAdmin;