/** * Trust-filter levels + filtering helper. Kept out of TrustFilter.tsx so that * component file exports only a component (React Fast Refresh). */ export type TrustFilterLevel = 'all' | 'verified' | 'trusted' | 'following'; /** * Filter items by the web-of-trust score of their author. * `verified` ≥ 90, `trusted` ≥ 60, `following` is the top of the source's graph. */ export function filterByTrustLevel( items: T[], level: TrustFilterLevel, getTrustScore: (pubkey: string) => number | undefined, ): T[] { if (level === 'all') return items; return items.filter((item) => { const score = getTrustScore(item.pubkey); if (score === undefined) return false; switch (level) { case 'verified': return score >= 90; case 'trusted': return score >= 60; case 'following': return score === 90 || score === 100; default: return true; } }); }