UNPKG

@kadconsulting/dry

Version:
326 lines 11.2 kB
"use strict"; // import { useEffect, useState } from 'react'; // import { useRouter } from 'next/navigation'; // // Types // import { // ClassData, // BookingAttributes, // EventData, // ClassSession, // IDiscount, // } from '../types/main'; // // Utils // import formatAddress from '@/utils/formatAddress'; // import { useAppSelector } from '../app/lib/hooks'; // import { RootState } from '../app/lib/store'; // import { useValidation } from './useValidation'; // import { useIntlPhoneNumber } from './useIntlPhoneNumber'; // interface IUseAppointmentFormProps { // isMembershipClass?: boolean; // booking?: BookingAttributes | null; // membershipClass?: ClassData | null; // session?: ClassSession | null; // event?: EventData | null; // classInfo?: ClassData | null; // } // export const useAppointmentForm = ({ // isMembershipClass, // booking, // membershipClass, // session, // event, // classInfo, // }: IUseAppointmentFormProps) => { // // ======================== // // Hooks // // ======================== // const router = useRouter(); // // ======================== // // State // // ======================== // const [fullName, setFullName] = useState(''); // const [serviceName, setServiceName] = useState(''); // const [serviceAddress, setServiceAddress] = useState(''); // const [serviceDescription, setServiceDescription] = useState<string[]>([]); // const [eventId, setEventId] = useState<number | null>(null); // const [amountOfCredits, setAmountOfCredits] = useState<number | null>(null); // const [sessionId, setSessionId] = useState<number | null>(null); // const [teeTimeId, setTeeTimeId] = useState<number | null>(null); // const [classId, setClassId] = useState<number | null>(null); // const [sku, setSku] = useState<string | null>(null); // const [stripeId, setStripeId] = useState<string | null>(null); // const [discount, setDiscount] = useState<IDiscount | null>(null); // const [email, setEmail] = useState(''); // const [message, setMessage] = useState(''); // const [step, setStep] = useState<number>(0); // const [firstName, setFirstName] = useState(''); // const [lastName, setLastName] = useState(''); // const [handedness, setHandedness] = useState(''); // const [zipCode, setZipCode] = useState(''); // const { region, phoneNumber, setPhoneNumber } = useIntlPhoneNumber(); // // New state variables for booking // const [serviceType, setServiceType] = useState< // 'service' | 'event' | 'class' | null // >(null); // const [bookingDate, setBookingDate] = useState(''); // const [bookingTime, setBookingTime] = useState(''); // const [bookingEndTime, setBookingEndTime] = useState(''); // const [bookingStartTime, setBookingStartTime] = useState(''); // const [simulatorBayId, setSimulatorBayId] = useState<number | string | null>( // null // ); // const [coachId, setCoachId] = useState<number | string>(''); // const [locationId, setLocationId] = useState<number | string>(''); // // New state variables for service duration and price // const [selectedServicePrice, setSelectedServicePrice] = useState<number>(0); // const nextStep = () => { // setStep(step + 1); // }; // const prevStep = () => { // setStep(step - 1); // }; // const handleChange = (key: string, input: string) => { // switch (key) { // case 'fullName': // setFullName(input); // break; // case 'email': // setEmail(input); // break; // case 'phoneNumber': // setPhoneNumber(input); // break; // case 'message': // setMessage(input); // break; // case 'firstName': // setFirstName(input); // break; // case 'lastName': // setLastName(input); // break; // case 'handedness': // setHandedness(input); // break; // case 'zipCode': // setZipCode(input); // break; // default: // break; // } // }; // const setSpecificStep = (newStep: number) => { // if (newStep >= 0 && newStep <= 6) { // setStep(newStep); // } // }; // const user = useAppSelector((state: RootState) => state.user.user); // const isAdmin = useAppSelector((state: RootState) => state.user.isAdmin); // const token = useAppSelector((state) => state.user.token); // const isGuest = useAppSelector((state) => state.user.isGuest); // const posUser = useAppSelector((state: RootState) => state.posUser.posUser); // const isPosGuest = useAppSelector((state) => state.posUser.isGuest); // useEffect(() => {}, [ // fullName, // email, // phoneNumber, // lastName, // zipCode, // handedness, // ]); // const { errors, errorsExist } = useValidation({ // rules: { // fullName: { // value: fullName, // type: 'non-empty-string', // }, // phoneNumber: { // value: phoneNumber, // type: 'phone-number', // region, // }, // email: { // value: email, // type: 'email', // }, // message: { // value: message, // type: 'non-empty-string', // }, // // HIDE FOR MVP // // agreedToPrivacyPolicy: { // // type: 'boolean', // // requiredValue: true, // // value: agreedToPrivacyPolicy, // // errorMessage: docText.about.section2.form.privacyPolicyError, // // }, // }, // }); // useEffect(() => { // if (isMembershipClass && booking && membershipClass) { // // const discount ={ // // amount: event?.attributes?.discount?.amount, // // discountType: event?.attributes?.discount?.discountType, // // discountValue: event?.attributes?.discount?.discountValue, // // id: event?.attributes?.discount?.id, // // name: event?.attributes?.discount?.name, // // type: event?.attributes?.discount?.type, // // } // // setDiscount(discount); // setServiceType('class'); // setBookingDate(booking?.startDateTime || ''); // setBookingTime(booking?.startDateTime || ''); // setSelectedServicePrice(membershipClass?.attributes?.price); // setAmountOfCredits(membershipClass?.attributes?.credits?.amountOfCredits); // setServiceDescription([ // membershipClass?.attributes?.membershipClass?.description || '', // ]); // setServiceAddress( // formatAddress( // membershipClass?.attributes?.location?.data?.attributes?.address // ) // ); // setServiceName(membershipClass?.attributes?.title || ''); // setBookingEndTime(booking?.endDateTime || ''); // setBookingStartTime(booking?.startDateTime || ''); // setSku(membershipClass?.attributes?.SKU); // setStripeId(membershipClass?.attributes?.stripePriceId); // } // }, [isMembershipClass, booking, membershipClass]); // useEffect(() => { // if (session && classInfo) { // // const discount ={ // // amount: event?.attributes?.discount?.amount, // // discountType: event?.attributes?.discount?.discountType, // // discountValue: event?.attributes?.discount?.discountValue, // // id: event?.attributes?.discount?.id, // // name: event?.attributes?.discount?.name, // // type: event?.attributes?.discount?.type, // // } // // setDiscount(discount); // setServiceType('class'); // setBookingDate(session?.startDateTime || ''); // setBookingTime(session?.startDateTime || ''); // setSelectedServicePrice(classInfo?.attributes?.price); // setAmountOfCredits(classInfo?.attributes?.credits?.amountOfCredits); // setServiceDescription([]); // setServiceAddress( // formatAddress( // classInfo?.attributes?.location?.data?.attributes?.address // ) // ); // setServiceName(classInfo?.attributes?.title || ''); // setSku(classInfo?.attributes?.SKU); // setStripeId(classInfo?.attributes?.stripePriceId); // } // }, [session, classInfo]); // useEffect(() => { // if (event) { // // const discount ={ // // amount: event?.attributes?.discount?.amount, // // discountType: event?.attributes?.discount?.discountType, // // discountValue: event?.attributes?.discount?.discountValue, // // id: event?.attributes?.discount?.id, // // name: event?.attributes?.discount?.name, // // type: event?.attributes?.discount?.type, // // } // // setDiscount(discount); // // TODO-p3: this type is not correct and should be updated // const startDateTime = // // @ts-ignore // event?.attributes?.booking?.data.attributes?.startDateTime || ''; // setServiceType('event'); // setBookingDate(startDateTime); // setBookingTime(startDateTime); // setSelectedServicePrice(event?.attributes?.price); // setAmountOfCredits(event?.attributes?.credits?.amountOfCredits); // setServiceDescription( // event?.attributes?.knowBefore?.map((know) => know.description) || [''] // ); // setServiceAddress( // formatAddress(event?.attributes?.location?.data?.attributes?.address) // ); // setServiceName(event?.attributes?.title || ''); // setEventId(event?.id); // setSku(event?.attributes?.SKU); // setStripeId(event?.attributes?.stripePriceId); // } // }, [event]); // useEffect(() => { // if (!user && !posUser) { // router.push('/login'); // } // }, []); // return { // step, // setStep, // nextStep, // prevStep, // handleChange, // setSpecificStep, // serviceType, // setServiceType, // bookingDate, // setBookingDate, // bookingTime, // setBookingTime, // bookingEndTime, // setBookingEndTime, // setBookingStartTime, // bookingStartTime, // simulatorBayId, // setSimulatorBayId, // coachId, // setCoachId, // locationId, // setLocationId, // selectedServicePrice, // setSelectedServicePrice, // fullName, // setFullName, // phoneNumber, // setPhoneNumber, // email, // setEmail, // // HIDE FOR MVP // // agreedToPrivacyPolicy, // // setAgreedToPrivacyPolicy, // errors, // errorsExist, // firstName, // setFirstName, // lastName, // setLastName, // handedness, // setHandedness, // zipCode, // setZipCode, // eventId, // setEventId, // sessionId, // setSessionId, // teeTimeId, // setTeeTimeId, // classId, // setClassId, // setAmountOfCredits, // amountOfCredits, // serviceAddress, // setServiceAddress, // serviceDescription, // setServiceDescription, // user, // token, // isGuest, // posUser, // isPosGuest, // serviceName, // setServiceName, // sku, // setSku, // stripeId, // setStripeId, // isAdmin, // }; // }; //# sourceMappingURL=useAppointmentForm.js.map