import { useState, useEffect } from 'react' import { api } from '../api' export default function Rewards() { const [rewards, setRewards] = useState([]) const [newName, setNewName] = useState('') const [newCost, setNewCost] = useState('100') const [status, setStatus] = useState(null) const [loading, setLoading] = useState(true) useEffect(() => { load() }, []) async function load() { try { const [r, s] = await Promise.all([api.listRewards(), api.today()]); setRewards(r); setStatus(s) } catch (err) { console.error(err) } finally { setLoading(false) } } async function handleCreate(e) { e.preventDefault() if (!newName.trim()) return try { await api.createReward({ name: newName, point_cost: parseInt(newCost) || 100 }); setNewName(''); setNewCost('100'); await load() } catch (err) { alert(err.message) } } async function handleRedeem(id) { try { await api.redeemReward(id); await load() } catch (err) { alert(err.message) } } if (loading) return
Loading...
return (

🎮 Rewards

{/* Status banner */} {status && (
{status.gate_passed ? ✨ Rewards Unlocked : 🔒 Earn {status.points_remaining} more pts }
{status.points_earned} / {status.daily_minimum} pts today
)} {/* Reward list */}
Your Rewards
{rewards.length === 0 &&
No rewards yet — add one below!
} {rewards.map(r => (
{r.name}
{r.point_cost} pts
))}
{/* Add reward */}
Add New Reward
setNewName(e.target.value)} placeholder="e.g. 1hr gaming" required /> setNewCost(e.target.value)} placeholder="pts" />
) }