From 66fafd0d2e7876750e5cbf98f0647eae77a05822 Mon Sep 17 00:00:00 2001 From: fmtabbara Date: Fri, 6 Dec 2024 12:20:11 +0000 Subject: [PATCH] add time picker --- .../app/booking/actions/onSubmitAction.ts | 2 + .../components/BookingCard/BookingEntry.tsx | 2 + .../components/BookingForm/BookingForm.tsx | 4 + .../components/TimeSelect/TimeSelect.tsx | 44 +++++ .../booking/components/TimeSelect/times.ts | 18 +++ .../app/booking/schemas/newBookingForm.ts | 1 + suncityla/components/ui/select.tsx | 152 ++++++++++++++++++ suncityla/package-lock.json | 62 +++++++ suncityla/package.json | 1 + .../20241206115210_booking_time/migration.sql | 2 + suncityla/prisma/schema.prisma | 59 +++---- 11 files changed, 318 insertions(+), 29 deletions(-) create mode 100644 suncityla/app/booking/components/TimeSelect/TimeSelect.tsx create mode 100644 suncityla/app/booking/components/TimeSelect/times.ts create mode 100644 suncityla/components/ui/select.tsx create mode 100644 suncityla/prisma/migrations/20241206115210_booking_time/migration.sql diff --git a/suncityla/app/booking/actions/onSubmitAction.ts b/suncityla/app/booking/actions/onSubmitAction.ts index 5f16fc2..517747b 100644 --- a/suncityla/app/booking/actions/onSubmitAction.ts +++ b/suncityla/app/booking/actions/onSubmitAction.ts @@ -39,6 +39,7 @@ const onSubmitAction = async (prvState: FormState, data: FormData): Promise
{ Firstname Lastname Booking date + Booking time Address line 1 Address line 2 State @@ -40,6 +41,7 @@ const BookingEntry = ({ booking }: { booking: Booking }) => { {booking.firstname} {booking.lastname} {format(new Date(booking.bookingDate), 'yyyy-MM-dd')} + {booking.bookingTime} {booking.streetAddress} {booking.postalCode} {booking.state} diff --git a/suncityla/app/booking/components/BookingForm/BookingForm.tsx b/suncityla/app/booking/components/BookingForm/BookingForm.tsx index 06a1343..c154264 100644 --- a/suncityla/app/booking/components/BookingForm/BookingForm.tsx +++ b/suncityla/app/booking/components/BookingForm/BookingForm.tsx @@ -13,6 +13,8 @@ import LoadingModal from '@/components/modals/Loading'; import onSubmitAction from '@/app/booking/actions/onSubmitAction'; import { bookingFormSchema } from '../../schemas/newBookingForm'; import { Booking } from '@prisma/client'; +import TimeSelect from '../TimeSelect/TimeSelect'; +import availableTimes from '../TimeSelect/times'; export type BookingFormData = z.infer; @@ -33,6 +35,7 @@ export default function BookingForm({ booking }: { booking?: Booking | null }) { 'postal-code': booking?.postalCode ?? '', state: 'LA', bookingDate: booking?.bookingDate.toISOString() ?? new Date().toISOString(), + bookingTime: booking?.bookingTime || availableTimes[0].time, ...(state.fields ?? {}), }, }); @@ -76,6 +79,7 @@ export default function BookingForm({ booking }: { booking?: Booking | null }) { +