// Pro Tareas: Home exercise assignment system function ProTareas() { const { players } = window.TData; const { tasks, completions, taskCategories } = window.TDataExt; const [view, setView] = React.useState("overview"); // overview | assign | player const [selectedPlayer, setSelectedPlayer] = React.useState(null); const [localComp, setLocalComp] = React.useState(completions); const [showForm, setShowForm] = React.useState(false); const [newTask, setNewTask] = React.useState({ title:"", category:"Técnica", desc:"", freq:"Diario", due:"", points:10 }); const [localTasks, setLocalTasks] = React.useState(tasks); const [filterCat, setFilterCat] = React.useState("Todas"); const getCatColor = cat => ({ "Técnica":"#2563eb","Físico":"#dc2626","Táctica":"#7c3aed","Recuperación":"#16a34a" }[cat]||T.accent); const getCompletion = (pid, tid) => localComp[pid]?.[tid] || false; const toggleComp = (pid, tid) => setLocalComp(prev=>({...prev,[pid]:{...prev[pid],[tid]:!prev[pid][tid]}})); const playerTaskPct = pid => { const done = localTasks.filter(t=>localComp[pid]?.[t.id]).length; return localTasks.length ? Math.round(done/localTasks.length*100) : 0; }; const taskCompPct = tid => { const done = players.filter(p=>localComp[p.id]?.[tid]).length; return Math.round(done/players.length*100); }; const addTask = () => { if (!newTask.title.trim()) return; const t = { ...newTask, id: Date.now(), assigned: new Date().toISOString().split("T")[0] }; setLocalTasks(prev=>[...prev, t]); setLocalComp(prev=>{ const n={...prev}; players.forEach(p=>{ n[p.id]={...n[p.id],[t.id]:false}; }); return n; }); setNewTask({ title:"", category:"Técnica", desc:"", freq:"Diario", due:"", points:10 }); setShowForm(false); }; const teamAvgPct = Math.round(players.reduce((s,p)=>s+playerTaskPct(p.id),0)/players.length); const filteredTasks = filterCat==="Todas" ? localTasks : localTasks.filter(t=>t.category===filterCat); if (selectedPlayer) { const p = selectedPlayer; const pct = playerTaskPct(p.id); const pctColor = pct>=80?T.green:pct>=60?T.yellow:T.red; return (
Ejercicios y actividades asignadas fuera del entrenamiento