Make remaining date inputs Safari-safe (uncontrolled)
Attendance filter, gradebook assignment date, and tuition entry date now use defaultValue (with a remount key where the field resets after submit). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -221,6 +221,7 @@ export function GradebookGrid({ classId, canEdit }: { classId: string; canEdit:
|
||||
});
|
||||
|
||||
const [na, setNa] = useState({ name: "", category_id: "", max_points: "100", date: "" });
|
||||
const [dateKey, setDateKey] = useState(0); // bump to remount the uncontrolled date input after adding
|
||||
const addAssignment = useMutation({
|
||||
mutationFn: async () => {
|
||||
if (!na.name.trim()) throw new Error("Assignment name required");
|
||||
@@ -231,7 +232,7 @@ export function GradebookGrid({ classId, canEdit }: { classId: string; canEdit:
|
||||
});
|
||||
if (error) throw error;
|
||||
},
|
||||
onSuccess: () => { setNa({ name: "", category_id: "", max_points: "100", date: "" }); qc.invalidateQueries({ queryKey: ["assignments", classId] }); toast.success("Assignment added"); },
|
||||
onSuccess: () => { setNa({ name: "", category_id: "", max_points: "100", date: "" }); setDateKey((k) => k + 1); qc.invalidateQueries({ queryKey: ["assignments", classId] }); toast.success("Assignment added"); },
|
||||
onError: (e: Error) => toast.error(e.message),
|
||||
});
|
||||
const delAssignment = useMutation({
|
||||
@@ -253,7 +254,7 @@ export function GradebookGrid({ classId, canEdit }: { classId: string; canEdit:
|
||||
<SelectContent>{cfg.categories.map((c) => <SelectItem key={c.id} value={c.id}>{c.name}</SelectItem>)}</SelectContent>
|
||||
</Select>
|
||||
<Input type="number" placeholder="Max pts" value={na.max_points} onChange={(e) => setNa({ ...na, max_points: e.target.value })} />
|
||||
<Input type="date" value={na.date} onChange={(e) => setNa({ ...na, date: e.target.value })} />
|
||||
<Input key={dateKey} type="date" defaultValue={na.date} onChange={(e) => setNa({ ...na, date: e.target.value })} />
|
||||
<Button onClick={() => addAssignment.mutate()} disabled={addAssignment.isPending}><Plus className="h-4 w-4 mr-1" /> Add</Button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user