UNPKG

@ludiks/react

Version:

Complete React library for Ludiks gamification platform - includes SDK and ready-to-use components

38 lines (37 loc) 1.21 kB
import { useState, useEffect } from 'react'; import { fetchLeaderboard } from '../utils/ludiks-client'; export function useLeaderboard({ period = 'all', limit = 10, autoRefresh = false, refreshInterval = 30000, } = {}) { const [data, setData] = useState(null); const [loading, setLoading] = useState(true); const [error, setError] = useState(null); const fetchData = async () => { try { setLoading(true); setError(null); const result = await fetchLeaderboard(period, limit); setData(result); } catch (err) { setError(err instanceof Error ? err.message : 'Failed to fetch leaderboard'); setData(null); } finally { setLoading(false); } }; useEffect(() => { fetchData(); }, [period, limit]); useEffect(() => { if (autoRefresh && refreshInterval > 0) { const interval = setInterval(fetchData, refreshInterval); return () => clearInterval(interval); } }, [autoRefresh, refreshInterval, period, limit]); return { data, loading, error, refetch: fetchData, }; }