- Timestamp:
- 06/22/26 16:56:41 (2 weeks ago)
- Branches:
- master
- Children:
- 194c016
- Parents:
- 42da64d
- Location:
- frontend
- Files:
-
- 2 added
- 4 edited
-
index.html (modified) (1 diff)
-
public/favicon.png (added)
-
src/pages/Dashboard/pages/CustomCategory/components/TaskFormModal.jsx (added)
-
src/pages/Dashboard/pages/Discipline/DisciplineTracking.jsx (modified) (1 diff)
-
src/pages/Dashboard/pages/Finance/components/NewIncomeForm.jsx (modified) (1 diff)
-
src/pages/Dashboard/pages/Training/NewTrainingSession.jsx (modified) (5 diffs)
Legend:
- Unmodified
- Added
- Removed
-
frontend/index.html
r42da64d r447c39f 3 3 <head> 4 4 <meta charset="UTF-8" /> 5 <link rel="icon" type="image/svg+xml" href="/ vite.svg" />5 <link rel="icon" type="image/svg+xml" href="/favicon.png" /> 6 6 <meta name="viewport" content="width=device-width, initial-scale=1.0" /> 7 <title> frontend</title>7 <title>Trekr</title> 8 8 </head> 9 9 <body> -
frontend/src/pages/Dashboard/pages/Discipline/DisciplineTracking.jsx
r42da64d r447c39f 293 293 294 294 const isTodayClosed = useMemo(() => { 295 console.log('todayIso:', todayIso); 295 296 return (dailyCompletions ?? []).some((dc) => dc?.date === todayIso); 296 297 }, [dailyCompletions, todayIso]); -
frontend/src/pages/Dashboard/pages/Finance/components/NewIncomeForm.jsx
r42da64d r447c39f 4 4 const [date, setDate] = useState(() => { 5 5 const d = new Date(); 6 console.log('Date:', d); 6 7 return d.toISOString().slice(0, 10); 7 8 }); -
frontend/src/pages/Dashboard/pages/Training/NewTrainingSession.jsx
r42da64d r447c39f 18 18 const [autoCalculateCalories, setAutoCalculateCalories] = useState(true); 19 19 const [calories, setCalories] = useState(""); 20 const [date, setDate] = useState(() => new Date().toISOString().slice(0, 10)); 20 21 21 22 const [error, setError] = useState(""); … … 95 96 } 96 97 98 // Date must not be in the future (allow past or today) 99 const todayStr = new Date().toISOString().slice(0, 10); 100 if (!date || date > todayStr) { 101 setError("Date cannot be in the future."); 102 return; 103 } 104 97 105 const caloriesNum = calories === "" ? NaN : Number(calories); 98 106 if (!autoCalculateCalories) { … … 108 116 type, 109 117 durationMinutes: durationNum, 118 date, 110 119 autoCalculateCalories, 111 120 calories: autoCalculateCalories ? null : caloriesNum, … … 145 154 ) : null} 146 155 147 <div className="mt-4 grid grid-cols-1 gap-4 md:grid-cols- 2">156 <div className="mt-4 grid grid-cols-1 gap-4 md:grid-cols-3"> 148 157 <WorkoutTypeSelect 149 158 workoutTypes={workoutTypes} … … 165 174 disabled={isLoading} 166 175 /> 176 </div> 177 178 <div> 179 <label className="label">Date</label> 180 <input 181 type="date" 182 className="input input-bordered w-full" 183 value={date} 184 onChange={(e) => setDate(e.target.value)} 185 max={new Date().toISOString().slice(0, 10)} 186 required 187 disabled={isLoading} 188 /> 189 <p className="text-xs opacity-70 mt-1">Choose a past date or today (no future dates).</p> 167 190 </div> 168 191 </div>
Note:
See TracChangeset
for help on using the changeset viewer.
