Fix date input normalization

This commit is contained in:
gpt-engineer-app[bot]
2025-11-05 16:21:22 +00:00
parent 5a61a2b49e
commit c966b6c5ee
4 changed files with 19 additions and 23 deletions

View File

@@ -18,7 +18,7 @@ import { SlugField } from '@/components/ui/slug-field';
import { toast } from '@/hooks/use-toast';
import { handleError } from '@/lib/errorHandler';
import { MapPin, Save, X, Plus } from 'lucide-react';
import { toDateOnly, parseDateOnly } from '@/lib/dateUtils';
import { toDateOnly, parseDateOnly, toDateWithPrecision } from '@/lib/dateUtils';
import { Badge } from '@/components/ui/badge';
import { Combobox } from '@/components/ui/combobox';
import { Dialog, DialogContent, DialogDescription, DialogHeader, DialogTitle } from '@/components/ui/dialog';
@@ -37,9 +37,9 @@ const parkSchema = z.object({
description: z.string().optional(),
park_type: z.string().min(1, 'Park type is required'),
status: z.string().min(1, 'Status is required'),
opening_date: z.string().optional(),
opening_date: z.string().optional().transform(val => val || undefined),
opening_date_precision: z.enum(['day', 'month', 'year']).optional(),
closing_date: z.string().optional(),
closing_date: z.string().optional().transform(val => val || undefined),
closing_date_precision: z.enum(['day', 'month', 'year']).optional(),
location: z.object({
name: z.string(),
@@ -176,8 +176,8 @@ export function ParkForm({ onSubmit, onCancel, initialData, isEditing = false }:
description: initialData?.description || '',
park_type: initialData?.park_type || '',
status: initialData?.status || 'operating' as const, // Store DB value
opening_date: initialData?.opening_date || '',
closing_date: initialData?.closing_date || '',
opening_date: initialData?.opening_date || undefined,
closing_date: initialData?.closing_date || undefined,
location_id: initialData?.location_id || undefined,
website_url: initialData?.website_url || '',
phone: initialData?.phone || '',
@@ -380,7 +380,7 @@ export function ParkForm({ onSubmit, onCancel, initialData, isEditing = false }:
value={watch('opening_date') ? parseDateOnly(watch('opening_date')!) : undefined}
precision={(watch('opening_date_precision') as DatePrecision) || 'day'}
onChange={(date, precision) => {
setValue('opening_date', date ? toDateOnly(date) : undefined);
setValue('opening_date', date ? toDateWithPrecision(date, precision) : undefined);
setValue('opening_date_precision', precision);
}}
label="Opening Date"
@@ -393,7 +393,7 @@ export function ParkForm({ onSubmit, onCancel, initialData, isEditing = false }:
value={watch('closing_date') ? parseDateOnly(watch('closing_date')!) : undefined}
precision={(watch('closing_date_precision') as DatePrecision) || 'day'}
onChange={(date, precision) => {
setValue('closing_date', date ? toDateOnly(date) : undefined);
setValue('closing_date', date ? toDateWithPrecision(date, precision) : undefined);
setValue('closing_date_precision', precision);
}}
label="Closing Date (if applicable)"