Seth0330 commited on
Commit
25874a8
·
verified ·
1 Parent(s): 01f53a6

Update frontend/src/components/admin/ClassForm.jsx

Browse files
frontend/src/components/admin/ClassForm.jsx CHANGED
@@ -17,6 +17,7 @@ export default function ClassForm({ classData, onSave, onCancel, isLoading }) {
17
  const [formData, setFormData] = useState({
18
  name: "",
19
  description: "",
 
20
  schedule: [{ day: "Monday", start_time: "", end_time: "" }],
21
  is_active: true,
22
  });
@@ -26,6 +27,7 @@ export default function ClassForm({ classData, onSave, onCancel, isLoading }) {
26
  setFormData({
27
  name: classData.name || "",
28
  description: classData.description || "",
 
29
  schedule:
30
  Array.isArray(classData.schedule) && classData.schedule.length > 0
31
  ? classData.schedule.map((slot) => ({
@@ -81,6 +83,7 @@ export default function ClassForm({ classData, onSave, onCancel, isLoading }) {
81
  const payload = {
82
  name: formData.name,
83
  description: formData.description,
 
84
  schedule: transformedSchedule,
85
  is_active: formData.is_active,
86
  };
@@ -126,6 +129,25 @@ export default function ClassForm({ classData, onSave, onCancel, isLoading }) {
126
  />
127
  </div>
128
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
129
  {/* Schedule */}
130
  <div>
131
  <div className="flex items-center justify-between mb-3">
 
17
  const [formData, setFormData] = useState({
18
  name: "",
19
  description: "",
20
+ coach_email: "",
21
  schedule: [{ day: "Monday", start_time: "", end_time: "" }],
22
  is_active: true,
23
  });
 
27
  setFormData({
28
  name: classData.name || "",
29
  description: classData.description || "",
30
+ coach_email: classData.coach_email || "",
31
  schedule:
32
  Array.isArray(classData.schedule) && classData.schedule.length > 0
33
  ? classData.schedule.map((slot) => ({
 
83
  const payload = {
84
  name: formData.name,
85
  description: formData.description,
86
+ coach_email: formData.coach_email || null,
87
  schedule: transformedSchedule,
88
  is_active: formData.is_active,
89
  };
 
129
  />
130
  </div>
131
 
132
+ {/* Coach Email */}
133
+ <div className="space-y-1">
134
+ <label className="block text-sm font-medium text-stone-800">
135
+ Coach Email (Optional)
136
+ </label>
137
+ <input
138
+ type="email"
139
+ className="w-full rounded-md border border-stone-300 px-3 py-2 text-sm focus:outline-none focus:ring-2 focus:ring-red-600"
140
+ value={formData.coach_email}
141
+ onChange={(e) =>
142
+ setFormData((prev) => ({ ...prev, coach_email: e.target.value }))
143
+ }
144
+ placeholder="coach@dojo.com"
145
+ />
146
+ <p className="text-xs text-stone-500 mt-1">
147
+ Assign a coach to this class. Coach can login with this email to manage attendance.
148
+ </p>
149
+ </div>
150
+
151
  {/* Schedule */}
152
  <div>
153
  <div className="flex items-center justify-between mb-3">