import React, { useEffect, useState } from 'react' import LevelBadge from '../../components/xp/LevelBadge' export default function RecommendedCreators() { const [items, setItems] = useState([]) const [loading, setLoading] = useState(true) const [error, setError] = useState('') const [busyId, setBusyId] = useState(null) useEffect(() => { let cancelled = false async function load() { try { const response = await window.axios.get('/api/dashboard/recommended-creators') if (!cancelled) { setItems(Array.isArray(response.data?.data) ? response.data.data : []) setError('') } } catch { if (!cancelled) { setError('Could not load creator recommendations right now.') } } finally { if (!cancelled) { setLoading(false) } } } load() return () => { cancelled = true } }, []) async function handleFollow(creator) { if (!creator?.username || busyId === creator.id) { return } setBusyId(creator.id) try { const response = await window.axios.post(`/@${creator.username}/follow`) const isFollowing = Boolean(response.data?.following) if (isFollowing) { setItems((current) => current.filter((item) => item.id !== creator.id)) } } catch { setError('Could not update follow state right now.') } finally { setBusyId(null) } } return (

Community

Recommended Creators

Strong accounts you are not following yet, selected to help you improve your feed and discover new audiences.

See all
{loading ?

Loading creators...

: null} {error ?

{error}

: null} {!loading && items.length === 0 ? (

No creator recommendations right now.

Browse the full creator directory to keep expanding your network.

) : null} {!loading && items.length > 0 ? (
{items.map((creator) => (
{creator.username

{creator.username ? `@${creator.username}` : creator.name}

Suggested
{Number(creator.followers_count || 0).toLocaleString()} followers {Number(creator.uploads_count || 0).toLocaleString()} uploads
View profile
))}
) : null}
) }