This commit is contained in:
Chris Chen
2026-05-28 15:25:31 -07:00
parent d79b1faa8f
commit a525c71baa
21 changed files with 484 additions and 126 deletions
@@ -26,7 +26,8 @@
<kendo-label text="Language"></kendo-label>
<kendo-dropdownlist
formControlName="languagePreference"
[data]="langOptions" textField="text" valueField="value">
[data]="langOptions" textField="text" valueField="value"
[valuePrimitive]="true">
</kendo-dropdownlist>
</kendo-formfield>
@@ -38,6 +38,7 @@
formControlName="gender"
[data]="genderOptions"
textField="text" valueField="value"
[valuePrimitive]="true"
[defaultItem]="{ text: '-- Select --', value: null }">
</kendo-dropdownlist>
</kendo-formfield>
@@ -57,7 +58,8 @@
<kendo-label text="Language"></kendo-label>
<kendo-dropdownlist
formControlName="languagePreference"
[data]="langOptions" textField="text" valueField="value">
[data]="langOptions" textField="text" valueField="value"
[valuePrimitive]="true">
</kendo-dropdownlist>
</kendo-formfield>
@@ -76,10 +76,28 @@ export class MemberFormDialogComponent implements OnInit {
onSubmit(): void {
if (this.form.invalid) { this.form.markAllAsTouched(); return; }
this.saved.emit(this.form.value as CreateMemberRequest);
const v = this.form.value;
const payload: CreateMemberRequest = {
...v,
dateOfBirth: toDateOnlyString(v.dateOfBirth),
baptismDate: toDateOnlyString(v.baptismDate),
joinDate: toDateOnlyString(v.joinDate),
};
this.saved.emit(payload);
}
onCancel(): void {
this.cancelled.emit();
}
}
// Kendo DatePicker emits a JS Date; the API expects DateOnly ("yyyy-MM-dd").
// Use local components so the date the user picked isn't shifted by UTC offset.
function toDateOnlyString(d: Date | string | null | undefined): string | null {
if (d == null || d === '') return null;
if (typeof d === 'string') return d.length >= 10 ? d.substring(0, 10) : d;
const y = d.getFullYear();
const m = String(d.getMonth() + 1).padStart(2, '0');
const day = String(d.getDate()).padStart(2, '0');
return `${y}-${m}-${day}`;
}