@kadconsulting/dry
Version:
KAD Reusable Component Library
326 lines • 11.2 kB
JavaScript
"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