@timardex/cluemart-shared 1.0.20 → 1.0.22
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/formFields/index.cjs +16 -13
- package/dist/formFields/index.cjs.map +1 -1
- package/dist/formFields/index.d.mts +4 -4
- package/dist/formFields/index.d.ts +4 -4
- package/dist/formFields/index.mjs +14 -11
- package/dist/formFields/index.mjs.map +1 -1
- package/dist/{global-Btu8jpCy.d.mts → global-B_4lAGhj.d.mts} +4 -6
- package/dist/{global-Dc8Nwfl1.d.ts → global-DRq1uIHw.d.ts} +4 -6
- package/dist/graphql/index.cjs +0 -2
- package/dist/graphql/index.cjs.map +1 -1
- package/dist/graphql/index.d.mts +1 -1
- package/dist/graphql/index.d.ts +1 -1
- package/dist/graphql/index.mjs +0 -2
- package/dist/graphql/index.mjs.map +1 -1
- package/dist/hooks/index.cjs +19 -15
- package/dist/hooks/index.cjs.map +1 -1
- package/dist/hooks/index.d.mts +1 -1
- package/dist/hooks/index.d.ts +1 -1
- package/dist/hooks/index.mjs +19 -15
- package/dist/hooks/index.mjs.map +1 -1
- package/dist/index.cjs +37 -32
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.mts +7 -9
- package/dist/index.d.ts +7 -9
- package/dist/index.mjs +35 -30
- package/dist/index.mjs.map +1 -1
- package/dist/types/index.d.mts +1 -1
- package/dist/types/index.d.ts +1 -1
- package/dist/utils/index.d.mts +1 -1
- package/dist/utils/index.d.ts +1 -1
- package/package.json +1 -1
package/dist/hooks/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/hooks/useLocationSearch.ts","../../src/hooks/stallholder/useStallholderForm.ts","../../src/yupSchema/global.ts","../../src/yupSchema/market.ts","../../src/yupSchema/stallholder.ts","../../src/yupSchema/user.ts","../../src/yupSchema/auth.ts","../../src/hooks/utils.ts","../../src/hooks/stallholder/useStallholderApplyForm.ts","../../src/hooks/market/useMarketForm.ts","../../src/hooks/market/useMarketInfoForm.ts","../../src/hooks/useUserForm.ts","../../src/hooks/auth/useLoginForm.ts","../../src/hooks/auth/useRegisterForm.ts","../../src/hooks/auth/useRequestPasswordResetForm.ts","../../src/hooks/auth/useValidateTokenForm.ts","../../src/hooks/auth/useResetPasswordForm.ts"],"sourcesContent":["/* eslint-disable camelcase */\nimport { LocationType } from \"../types/global\";\n\nexport interface PlacePrediction {\n place_id: string;\n description: string;\n}\n\ninterface PlaceDetails {\n address_components: {\n long_name: string;\n short_name: string;\n types: string[];\n }[];\n formatted_address: string;\n geometry: {\n location: {\n lat: number;\n lng: number;\n };\n };\n url: string;\n}\n\ninterface UseLocation {\n getPredictions: (text: string) => Promise<PlacePrediction[] | undefined>;\n getPlaceDetails: (placeId: string) => Promise<LocationType | undefined>;\n}\n\n/** Handles API request errors */\nconst handleApiError = (error: unknown, message: string) => {\n console.error(message, error);\n};\n\n/**\n * Custom hook to manage location search functionality.\n *\n * @returns {UseLocation} - The functions to get predictions and place details.\n */\nexport const useLocationSearch = (googleApi: string): UseLocation => {\n const getPredictions = async (\n text: string,\n ): Promise<PlacePrediction[] | undefined> => {\n try {\n const response = await fetch(\n `https://maps.googleapis.com/maps/api/place/autocomplete/json?input=${text}&components=country:nz&key=${googleApi}`,\n );\n\n if (!response.ok) {\n throw new Error(`HTTP error! Status: ${response.status}`);\n }\n\n const data = await response.json();\n return data.predictions;\n } catch (error) {\n console.error(\"Error fetching predictions:\", error);\n handleApiError(error, \"Failed to fetch address predictions.\");\n }\n };\n\n const getPlaceDetails = async (\n placeId: string,\n ): Promise<LocationType | undefined> => {\n try {\n const response = await fetch(\n `https://maps.googleapis.com/maps/api/place/details/json?place_id=${placeId}&key=${googleApi}`,\n );\n\n if (!response.ok) {\n throw new Error(`HTTP error! Status: ${response.status}`);\n }\n\n const data = (await response.json()) as { result: PlaceDetails };\n const { result } = data;\n const { lat, lng } = result.geometry.location;\n const { address_components, formatted_address } = result;\n\n const address = address_components.reduce((acc, item) => {\n if (item.types.includes(\"street_number\")) {\n return { ...acc, streetNumber: item.long_name };\n }\n if (item.types.includes(\"route\")) {\n return { ...acc, streetName: item.long_name };\n }\n if (item.types.includes(\"locality\")) {\n return { ...acc, city: item.long_name };\n }\n if (item.types.includes(\"administrative_area_level_1\")) {\n return { ...acc, region: item.long_name };\n }\n if (item.types.includes(\"country\")) {\n return { ...acc, country: item.long_name };\n }\n return acc;\n }, {} as LocationType);\n\n const newLocation = {\n city: address.city.toLowerCase(),\n coordinates: [lng, lat], // [longitude, latitude]\n country: address.country,\n fullAddress: formatted_address,\n latitude: lat,\n longitude: lng,\n region: address.region.replace(/ Region$/, \"\"), // Remove \" Region\" suffix\n type: \"Point\" as const, // Mongoose GeoJSON type\n };\n\n return newLocation;\n } catch (error) {\n handleApiError(error, \"Failed to fetch place details.\");\n }\n };\n\n return {\n getPlaceDetails,\n getPredictions,\n };\n};\n","import { yupResolver } from \"@hookform/resolvers/yup\";\nimport * as React from \"react\";\nimport { useForm } from \"react-hook-form\";\n\nimport {\n CreateStallholderFormData,\n StallholderFormData,\n} from \"../../types/stallholder\";\nimport { stallHolderSchema } from \"../../yupSchema\";\nimport { defaultStallholderFormValues } from \"../utils\";\n\n/**\n * Custom hook to manage the stallholder form state and validation.\n *\n * @param {StallholderFormData} data - The initial form data.\n * @returns {CreateStallholderFormData} - The form methods and state.\n */\nexport function useStallholderForm(\n data?: StallholderFormData,\n): CreateStallholderFormData {\n const {\n control,\n formState: { errors },\n getValues,\n handleSubmit,\n reset,\n setValue,\n watch,\n } = useForm<StallholderFormData>({\n defaultValues: defaultStallholderFormValues,\n resolver: yupResolver(stallHolderSchema),\n });\n\n React.useEffect(() => {\n if (data) {\n reset({\n _id: data._id,\n active: data.active,\n categories: data.categories,\n cover: data.cover,\n coverUpload: data.coverUpload,\n description: data.description,\n images: data.images,\n imagesUpload: data.imagesUpload,\n locations: data.locations,\n logo: data.logo,\n logoUpload: data.logoUpload,\n multiLocation: data.multiLocation,\n name: data.name,\n products: data.products,\n promoCode: data.promoCode,\n region: data.region,\n specialities: data.specialities,\n });\n } else {\n reset(defaultStallholderFormValues);\n }\n }, [data]);\n\n const {\n _id,\n active,\n categories,\n cover,\n coverUpload,\n description,\n images,\n imagesUpload,\n locations,\n logo,\n logoUpload,\n multiLocation,\n name,\n products,\n promoCode,\n region,\n specialities,\n } = getValues();\n\n return {\n control,\n fields: {\n _id,\n active,\n categories,\n cover,\n coverUpload,\n description,\n images,\n imagesUpload,\n locations,\n logo,\n logoUpload,\n multiLocation,\n name,\n products,\n promoCode,\n region,\n specialities,\n },\n formState: { errors },\n handleSubmit,\n reset,\n setValue,\n watch,\n };\n}\n","import dayjs, { extend } from \"dayjs\";\nimport customParseFormat from \"dayjs/plugin/customParseFormat\";\nimport isSameOrAfter from \"dayjs/plugin/isSameOrAfter\";\nimport * as yup from \"yup\";\nimport { TestFunction } from \"yup\";\n\nimport { dateFormat, timeFormat } from \"../utils\";\n\ntype NoLeadingZerosOptions = {\n allowDecimal?: boolean;\n};\n\nexport const noLeadingZeros = (\n fieldName: string,\n options: NoLeadingZerosOptions = {},\n): TestFunction<number | undefined> => {\n return function (value, context) {\n const original = context.originalValue?.toString() ?? \"\";\n\n const regex = options.allowDecimal\n ? /^0\\d+(\\.\\d+)?$/ // e.g. \"03\", \"03.5\", \"0002.75\"\n : /^0\\d+$/; // e.g. \"01\", \"0001\"\n\n if (regex.test(original)) {\n return context.createError({\n message: `${fieldName} must not have leading zeros`,\n });\n }\n\n return true;\n };\n};\n\nextend(isSameOrAfter);\nextend(customParseFormat);\n\nconst now = dayjs(); // Current date and time\n\n// DATE AND TIME SCHEMA\nexport const endDateNotInPastTest = yup\n .string()\n .test(\"not-in-past\", \"End date cannot be in the past\", (value) => {\n return value\n ? dayjs(value, dateFormat, true).isSameOrAfter(now, \"day\")\n : false;\n });\n\nexport const startDateNotInPastTest = yup\n .string()\n .test(\"not-in-past\", \"Start date cannot be in the past\", (value) => {\n return value\n ? dayjs(value, dateFormat, true).isSameOrAfter(now, \"day\")\n : false;\n });\n\nexport const endDateAfterStartDateTest = yup\n .string()\n .test(\n \"end-after-start\",\n \"End date cannot be before start date\",\n function (value) {\n const { startDate } = this.parent;\n if (!startDate || !value) return false;\n return dayjs(value, dateFormat, true).isSameOrAfter(\n dayjs(startDate, dateFormat, true),\n \"day\",\n );\n },\n );\n\nexport const endTimeMustBeAfterStartTimeTest = yup\n .string()\n .test(\n \"valid-end-time\",\n \"End time must be after start time\",\n function (value) {\n const { startDate, endDate, startTime } = this.parent;\n if (!startDate || !endDate || !startTime || !value) return false;\n\n const startDateTime = dayjs(\n `${startDate} ${startTime}`,\n `${dateFormat} ${timeFormat}`,\n true,\n );\n const endDateTime = dayjs(\n `${endDate} ${value}`,\n `${dateFormat} ${timeFormat}`,\n true,\n );\n\n return endDateTime.isAfter(startDateTime);\n },\n );\n\nexport const startTimeCannotBeInPastTest = yup\n .string()\n .test(\n \"valid-start-time\",\n \"Start time cannot be in the past\",\n function (value) {\n const { startDate } = this.parent;\n if (!startDate || !value) return false;\n const startDateTime = dayjs(\n `${startDate} ${value}`,\n `${dateFormat} ${timeFormat}`,\n true,\n );\n return startDateTime.isSameOrAfter(now);\n },\n );\n\nexport const dateTimeSchema = yup.object().shape({\n endDate: yup\n .string()\n .concat(endDateNotInPastTest)\n .concat(endDateAfterStartDateTest)\n .required(\"End date is required\"),\n endTime: yup\n .string()\n .concat(endTimeMustBeAfterStartTimeTest)\n .required(\"End time is required\"),\n startDate: yup\n .string()\n .concat(startDateNotInPastTest)\n .required(\"Start date is required\"),\n startTime: yup\n .string()\n .concat(startTimeCannotBeInPastTest)\n .required(\"Start time is required\"),\n});\n\nexport const dateTimeWithPriceSchema = dateTimeSchema.shape({\n marketPrice: yup\n .number()\n .typeError(\"Market price must be a number\")\n .min(0.1, \"Market price must be at least 0.1\")\n .required(\"Market price is required\")\n .test(\n \"no-leading-zeros\",\n \"\",\n noLeadingZeros(\"Market price\", { allowDecimal: true }),\n ),\n});\n\nexport const locationSchema = yup.object().shape({\n city: yup.string().required(\"City is required\"),\n coordinates: yup\n .array()\n .of(yup.number().required(\"Coordinates must be numbers\"))\n .length(\n 2,\n \"Coordinates must contain exactly two numbers (longitude, latitude)\",\n )\n .required(\"Coordinates are required\"),\n country: yup.string().required(\"Country is required\"),\n fullAddress: yup.string().required(\"Address is required\"),\n latitude: yup.number().required(\"Latitude is required\"),\n longitude: yup.number().required(\"Longitude is required\"),\n region: yup.string().required(\"Region is required\"),\n type: yup\n .string()\n .oneOf([\"Point\"], \"Type must be 'Point'\")\n .default(\"Point\")\n .required(\"Type is required\"),\n});\n\n// ✅ Reusable Email Schema\nexport const emailSchema = yup\n .string()\n .email(\"Invalid email address\")\n .required(\"Email is required\")\n .transform((value) =>\n typeof value === \"string\" ? value.toLowerCase() : value,\n );\n\n// ✅ Reusable Password Schema\nexport const passwordSchema = yup\n .string()\n .trim()\n .min(8, \"Password must be at least 8 characters long\")\n .required(\"Password is required\");\n\nexport const globalResourceSchema = yup.object().shape({\n active: yup.boolean().required(\"Active is required\"),\n cover: yup.object({\n source: yup.string().required(\"Cover is required\"),\n title: yup.string().required(\"Cover is required\"),\n }),\n description: yup.string().trim().min(3).required(\"Description is required\"),\n name: yup.string().trim().min(3).required(\"Name is required\"),\n region: yup.string().required(\"Region is required\"),\n});\n","import * as yup from \"yup\";\n\nimport { EnumPaymentMethod, EnumRejectionPolicy } from \"../enums\";\n\nimport {\n dateTimeSchema,\n dateTimeWithPriceSchema,\n globalResourceSchema,\n locationSchema,\n noLeadingZeros,\n} from \"./global\";\n\nconst nzBankAccountRegex = /^\\d{2}-\\d{4}-\\d{7}-\\d{2}$/;\n\nexport const marketSchema = globalResourceSchema.shape({\n dateTime: yup.array().of(dateTimeSchema).required(\"DateTime is required\"),\n location: locationSchema,\n provider: yup.string().trim().min(3).required(\"Provider is required\"),\n tags: yup.array().of(yup.string().defined()).nullable(),\n});\n\nexport const marketInfoSchema = yup.object().shape({\n active: yup.boolean().required(\"Active is required\"),\n applicationDeadlineHours: yup\n .number()\n .typeError(\"Application deadline hours must be a number\")\n .min(1, \"Application deadline hours must be at least 1\")\n .required(\"Application deadline hours is required\")\n .test(\"no-leading-zeros\", \"\", noLeadingZeros(\"Application deadline hours\")),\n dateTime: yup\n .array()\n .of(dateTimeWithPriceSchema)\n .required(\"DateTime is required\"),\n paymentDueHours: yup\n .number()\n .typeError(\"Payment due hours must be a number\")\n .min(1, \"Payment due hours must be at least 1\")\n .required(\"Payment due hours is required\")\n .test(\"no-leading-zeros\", \"\", noLeadingZeros(\"Payment due hours\")),\n paymentMethod: yup\n .mixed<EnumPaymentMethod>()\n .oneOf(Object.values(EnumPaymentMethod))\n .required(\"Please select a Payment method\"),\n paymentTarget: yup\n .object()\n .when(\"paymentMethod\", (paymentMethod: EnumPaymentMethod[], schema) => {\n const isBankTransfer = paymentMethod.includes(\n EnumPaymentMethod.BANK_TRANSFER,\n );\n if (!isBankTransfer) {\n return schema.shape({\n accountHolderName: yup.string().notRequired(),\n accountNumber: yup.string().notRequired(),\n link: yup\n .string()\n .trim()\n .required(\"Link is required for PayPal/Stripe\"),\n });\n } else if (isBankTransfer) {\n return schema.shape({\n accountHolderName: yup\n .string()\n .trim()\n .required(\"Account holder name is required for bank transfer\"),\n accountNumber: yup\n .string()\n .trim()\n .required(\"Account number is required for bank transfer\")\n .matches(\n nzBankAccountRegex,\n \"Account number must be in format: XX-XXXX-XXXXXXX-XX\",\n ),\n link: yup.string().notRequired(),\n });\n } else {\n return schema.shape({\n accountHolderName: yup.string().notRequired(),\n accountNumber: yup.string().notRequired(),\n link: yup.string().notRequired(),\n });\n }\n }),\n rejectionPolicy: yup\n .mixed<EnumRejectionPolicy>()\n .oneOf(Object.values(EnumRejectionPolicy))\n .required(\"Rejection policy is required\"),\n stallCapacity: yup\n .number()\n .typeError(\"Stall capacity must be a number\")\n .min(1, \"Stall capacity must be at least 1\")\n .integer(\"Stall capacity must be a whole number\")\n .required(\"Stall capacity is required\")\n .test(\"no-leading-zeros\", \"\", noLeadingZeros(\"Stall capacity\")),\n});\n","import * as yup from \"yup\";\n\nimport { EnumPaymentMethod } from \"../enums\";\n\nimport { globalResourceSchema } from \"./global\";\n\nexport const stallHolderSchema = globalResourceSchema.shape({\n categories: yup\n .array()\n .of(\n yup.object().shape({\n id: yup.string().required(\"Category id is required\"),\n name: yup.string().required(\"Category name is required\"),\n subcategories: yup\n .array()\n .of(\n yup.object().shape({\n id: yup.string().defined(),\n items: yup.array().of(yup.string().defined()).nullable(),\n name: yup.string().defined(),\n }),\n )\n .nullable(),\n }),\n )\n .min(1, \"Category list must contain at least one item\")\n .required(\"Categories are required\"),\n multiLocation: yup.boolean().required(\"Multi location is required\"),\n\n products: yup\n .array()\n .of(yup.string().defined())\n .min(1, \"Product list must contain at least one item\")\n .required(\"Products are required\"),\n});\n\nexport const stallholderApplyFormSchema = yup.object().shape({\n active: yup.boolean().required(\"Active is required\"),\n electricity: yup.object().shape({\n details: yup\n .string()\n .trim()\n .test(\"details-required\", \"Please add details\", function (value) {\n return !this.parent?.isRequired || (value?.trim().length ?? 0) > 0;\n })\n .nullable(),\n isRequired: yup.boolean().required(\"Electricity requirement is required\"),\n }),\n foodSafetyGradeFiles: yup.array().of(yup.string().defined()).nullable(),\n foodSafetyGradeFilesUpload: yup.array().of(yup.string().defined()).nullable(),\n gazebo: yup.object().shape({\n details: yup\n .string()\n .trim()\n .test(\"details-required\", \"Please add details\", function (value) {\n return !this.parent?.isRequired || (value?.trim().length ?? 0) > 0;\n })\n .nullable(),\n isRequired: yup.boolean().required(\"Gazebo requirement is required\"),\n }),\n packaging: yup\n .array()\n .of(yup.string().defined())\n .min(1, \"Packaging list must contain at least one item\")\n .required(\"Packaging is required\"),\n paymentMethod: yup\n .mixed<EnumPaymentMethod>()\n .oneOf(Object.values(EnumPaymentMethod))\n .required(\"Please select a Payment method\"),\n priceRange: yup.object().shape({\n max: yup\n .number()\n .min(1)\n .required(\"Max price is required\")\n .test(\n \"is-greater\",\n \"Max price must be greater than or equal to Min price\",\n function (max) {\n const { min } = this.parent;\n return max >= min;\n },\n ),\n min: yup.number().min(1).required(\"Min price is required\"),\n }),\n producedIn: yup\n .array()\n .of(yup.string().defined())\n .min(1, \"Produced in list must contain at least one item\")\n .required(\"Produced in is required\"),\n stallSize: yup.object().shape({\n depth: yup.number().min(1).required(\"Depth is required\"),\n width: yup.number().min(1).required(\"Width is required\"),\n }),\n table: yup.object().shape({\n details: yup\n .string()\n .trim()\n .test(\"details-required\", \"Please add details\", function (value) {\n return !this.parent?.isRequired || (value?.trim().length ?? 0) > 0;\n })\n .nullable(),\n isRequired: yup.boolean().required(\"Table requirement is required\"),\n }),\n});\n","import * as yup from \"yup\";\n\nimport { EnumUserRole } from \"../enums\";\n\nimport { emailSchema, passwordSchema } from \"./global\";\n\nexport const userSchema = yup.object().shape({\n active: yup.boolean().required(\"Active is required\"),\n email: emailSchema,\n firstName: yup.string().required(\"First name is required\"),\n lastName: yup.string().required(\"Last name is required\"),\n password: passwordSchema,\n preferredRegion: yup.string().required(\"Preferred region is required\"),\n // eslint-disable-next-line sort-keys\n confirmPassword: yup\n .string()\n .oneOf([yup.ref(\"password\")], \"Passwords must match\")\n .required(\"Confirm Password is required\"),\n role: yup\n .mixed<EnumUserRole>()\n .oneOf(Object.values(EnumUserRole))\n .required(\"Role is required\"),\n});\n","import * as yup from \"yup\";\n\nimport { EnumUserRole } from \"../enums\";\n\nimport { emailSchema, passwordSchema } from \"./global\";\n\nexport const loginSchema = yup.object().shape({\n email: emailSchema,\n password: passwordSchema,\n});\n\nexport const registerSchema = yup.object().shape({\n email: emailSchema,\n firstName: yup.string().required(\"First Name is required\"),\n lastName: yup.string().required(\"Last Name is required\"),\n password: passwordSchema,\n preferredRegion: yup.string().required(\"Preferred Region is required\"),\n role: yup\n .mixed<EnumUserRole>()\n .oneOf(Object.values(EnumUserRole))\n .required(\"Role is required\"),\n});\n\nexport const requestPasswordResetSchema = yup.object().shape({\n email: emailSchema,\n});\n\nexport const resetPasswordSchema = yup.object().shape({\n email: emailSchema,\n password: passwordSchema,\n // eslint-disable-next-line sort-keys\n confirmPassword: yup\n .string()\n .oneOf([yup.ref(\"password\")], \"Passwords must match\")\n .required(\"Confirm Password is required\"),\n});\n\nexport const validateTokenSchema = yup.object().shape({\n email: emailSchema,\n token: yup\n .string()\n .required(\"Verification code is required\")\n .matches(/^\\d{5}$/, \"Verification code must be exactly 5 digits\"),\n});\n","import { EnumPaymentMethod, EnumRejectionPolicy } from \"../enums\";\nimport {\n BaseResourceTypeFormData,\n MarketFormData,\n MarketInfoFormData,\n StallholderApplyFormFormData,\n StallholderFormData,\n} from \"../types\";\n\nexport const globalDefaultValues: BaseResourceTypeFormData = {\n active: false,\n cover: {\n source: \"\",\n title: \"\",\n },\n coverUpload: {\n source: \"\",\n title: \"\",\n },\n description:\n \"Lorem Ipsum is a placeholder text commonly used in design and publishing to represent the visual form of a document without relying on meaningful content. It's a jumbled Latin text, not intended to be read or understood, and is used to show the layout and typography before actual content is added.\",\n images: null,\n imagesUpload: null,\n logo: null,\n logoUpload: null,\n name: \"Resource name\",\n promoCode: \"\",\n region: \"\",\n};\n\nexport const defaultMarketFormValues: MarketFormData = {\n ...globalDefaultValues,\n dateTime: [\n {\n endDate: \"04-07-2025\",\n endTime: \"15:00\",\n startDate: \"04-07-2025\",\n startTime: \"09:00\",\n },\n {\n endDate: \"05-07-2025\",\n endTime: \"15:00\",\n startDate: \"05-07-2025\",\n startTime: \"09:00\",\n },\n ],\n location: {\n city: \"\",\n coordinates: [0, 0], // [longitude, latitude]\n country: \"\",\n fullAddress: \"\",\n latitude: 0,\n longitude: 0,\n region: \"\",\n type: \"Point\", // Default type for GeoJSON\n },\n provider: \"Provider name\",\n tags: null,\n};\n\nexport const defaultMarketInfoFormValues: MarketInfoFormData = {\n active: false,\n applicationDeadlineHours: 0,\n dateTime: [\n {\n endDate: \"04-05-2025\",\n endTime: \"15:00\",\n marketPrice: 0.0,\n startDate: \"04-05-2025\",\n startTime: \"09:00\",\n },\n {\n endDate: \"05-05-2025\",\n endTime: \"15:00\",\n marketPrice: 0.0,\n startDate: \"05-05-2025\",\n startTime: \"09:00\",\n },\n ],\n paymentDueHours: 0,\n paymentMethod: \"\" as EnumPaymentMethod,\n paymentTarget: {\n accountHolderName: \"\",\n accountNumber: \"\",\n link: \"\",\n },\n rejectionPolicy: EnumRejectionPolicy.MULTI_DATE_ALLOWED,\n stallCapacity: 0,\n};\n\nexport const defaultStallholderFormValues: StallholderFormData = {\n ...globalDefaultValues,\n categories: [],\n locations: null,\n multiLocation: false,\n products: [\"Prod uct 1\", \"Product 2\"],\n specialities: null,\n};\n\nexport const defaultStallholderApplyFormValues: StallholderApplyFormFormData = {\n active: false,\n electricity: { details: null, isRequired: false },\n foodSafetyGradeFiles: null,\n foodSafetyGradeFilesUpload: null,\n gazebo: { details: null, isRequired: false },\n packaging: [],\n paymentMethod: \"\" as EnumPaymentMethod,\n priceRange: { max: 0, min: 0 },\n producedIn: [],\n stallSize: { depth: 0, width: 0 },\n table: { details: null, isRequired: false },\n};\n","import { yupResolver } from \"@hookform/resolvers/yup\";\nimport * as React from \"react\";\nimport { useForm } from \"react-hook-form\";\n\nimport {\n CreateStallholderApplyFormFormData,\n StallholderApplyFormFormData,\n} from \"../../types/stallholder\";\nimport { stallholderApplyFormSchema } from \"../../yupSchema\";\nimport { defaultStallholderApplyFormValues } from \"../utils\";\n\n/**\n * Custom hook to manage the stallholder apply form state and validation.\n *\n * @param {StallholderApplyFormFormData} data - The initial form data.\n * @returns {CreateStallholderApplyFormFormData} - The form methods and state.\n */\nexport function useStallholderApplyForm(\n data?: StallholderApplyFormFormData,\n): CreateStallholderApplyFormFormData {\n const {\n control,\n formState: { errors },\n getValues,\n handleSubmit,\n reset,\n setValue,\n watch,\n } = useForm<StallholderApplyFormFormData>({\n defaultValues: defaultStallholderApplyFormValues,\n resolver: yupResolver(stallholderApplyFormSchema),\n });\n\n React.useEffect(() => {\n if (data) {\n reset({\n _id: data._id,\n active: data.active,\n electricity: data.electricity,\n foodSafetyGradeFiles: data.foodSafetyGradeFiles,\n foodSafetyGradeFilesUpload: data.foodSafetyGradeFilesUpload,\n gazebo: data.gazebo,\n packaging: data.packaging,\n paymentMethod: data.paymentMethod,\n priceRange: data.priceRange,\n producedIn: data.producedIn,\n stallSize: data.stallSize,\n table: data.table,\n });\n } else {\n reset(defaultStallholderApplyFormValues);\n }\n }, [data]);\n\n const {\n _id,\n active,\n electricity,\n foodSafetyGradeFiles,\n foodSafetyGradeFilesUpload,\n gazebo,\n packaging,\n paymentMethod,\n priceRange,\n producedIn,\n stallSize,\n table,\n } = getValues();\n\n return {\n control,\n fields: {\n _id,\n active,\n electricity,\n foodSafetyGradeFiles,\n foodSafetyGradeFilesUpload,\n gazebo,\n packaging,\n paymentMethod,\n priceRange,\n producedIn,\n stallSize,\n table,\n },\n formState: { errors },\n handleSubmit,\n reset,\n setValue,\n watch,\n };\n}\n","import { yupResolver } from \"@hookform/resolvers/yup\";\nimport * as React from \"react\";\nimport { useForm } from \"react-hook-form\";\n\nimport { CreateMarketFormData, MarketFormData } from \"../../types/market\";\nimport { marketSchema } from \"../../yupSchema\";\nimport { defaultMarketFormValues } from \"../utils\";\n\n/**\n * Custom hook to manage the market form state and validation.\n *\n * @param {MarketFormData} data - The initial form data.\n * @returns {CreateMarketFormData} - The form methods and state.\n */\nexport function useMarketForm(data?: MarketFormData): CreateMarketFormData {\n const {\n control,\n formState: { errors },\n getValues,\n handleSubmit,\n reset,\n setValue,\n watch,\n } = useForm<MarketFormData>({\n defaultValues: defaultMarketFormValues,\n resolver: yupResolver(marketSchema),\n });\n\n React.useEffect(() => {\n if (data) {\n reset({\n _id: data._id,\n active: data.active,\n cover: data.cover,\n coverUpload: data.coverUpload,\n dateTime: data.dateTime,\n description: data.description,\n images: data.images,\n imagesUpload: data.imagesUpload,\n location: data.location,\n logo: data.logo,\n logoUpload: data.logoUpload,\n name: data.name,\n promoCode: data.promoCode,\n provider: data.provider,\n region: data.region,\n tags: data.tags,\n });\n } else {\n reset(defaultMarketFormValues);\n }\n }, [data]);\n\n const {\n _id,\n active,\n cover,\n coverUpload,\n dateTime,\n description,\n images,\n imagesUpload,\n location,\n logo,\n logoUpload,\n name,\n provider,\n region,\n tags,\n } = getValues();\n\n return {\n control,\n fields: {\n _id,\n active,\n cover,\n coverUpload,\n dateTime,\n description,\n images,\n imagesUpload,\n location,\n logo,\n logoUpload,\n name,\n provider,\n region,\n tags,\n },\n formState: { errors },\n handleSubmit,\n reset,\n setValue,\n watch,\n };\n}\n","import { yupResolver } from \"@hookform/resolvers/yup\";\nimport * as React from \"react\";\nimport { useForm } from \"react-hook-form\";\n\nimport {\n CreateMarketInfoFormData,\n MarketInfoFormData,\n} from \"../../types/market\";\nimport { marketInfoSchema } from \"../../yupSchema\";\nimport { defaultMarketInfoFormValues } from \"../utils\";\n\n/**\n * Custom hook to manage the market form state and validation.\n *\n * @param {MarketInfoFormData} data - The initial form data.\n * @returns {CreateMarketInfoFormData} - The form methods and state.\n */\nexport function useMarketInfoForm(\n data?: MarketInfoFormData,\n): CreateMarketInfoFormData {\n const {\n control,\n formState: { errors },\n getValues,\n handleSubmit,\n reset,\n setValue,\n watch,\n } = useForm<MarketInfoFormData>({\n defaultValues: defaultMarketInfoFormValues,\n resolver: yupResolver(marketInfoSchema),\n });\n\n React.useEffect(() => {\n if (data) {\n reset({\n _id: data._id,\n active: data.active,\n applicationDeadlineHours: data.applicationDeadlineHours,\n dateTime: data.dateTime,\n paymentDueHours: data.paymentDueHours,\n paymentMethod: data.paymentMethod,\n paymentTarget: data.paymentTarget,\n rejectionPolicy: data.rejectionPolicy,\n stallCapacity: data.stallCapacity,\n });\n } else {\n reset(defaultMarketInfoFormValues);\n }\n }, [data]);\n\n const {\n _id,\n active,\n applicationDeadlineHours,\n dateTime,\n paymentDueHours,\n paymentMethod,\n paymentTarget,\n rejectionPolicy,\n stallCapacity,\n } = getValues();\n\n return {\n control,\n fields: {\n _id,\n active,\n applicationDeadlineHours,\n dateTime,\n paymentDueHours,\n paymentMethod,\n paymentTarget,\n rejectionPolicy,\n stallCapacity,\n },\n formState: { errors },\n handleSubmit,\n reset,\n setValue,\n watch,\n };\n}\n","import { yupResolver } from \"@hookform/resolvers/yup\";\nimport * as React from \"react\";\nimport { useForm } from \"react-hook-form\";\n\nimport { EnumUserRole } from \"../enums\";\nimport { CreateUserFormData, UserFormData } from \"../types/user\";\nimport { userSchema } from \"../yupSchema/user\";\n\nconst defaultValues: UserFormData = {\n active: false,\n avatar: null,\n avatarUpload: null,\n confirmPassword: \"\",\n email: \"\",\n firstName: \"\",\n lastName: \"\",\n password: \"\",\n preferredRegion: \"\",\n role: EnumUserRole.CUSTOMER,\n};\n\n/**\n * Custom hook to manage the user form state and validation.\n *\n * @param {UserFormData} data - The initial form data.\n * @returns {CreateUserFormData} - The form methods and state.\n */\nexport function useUserForm(data?: UserFormData): CreateUserFormData {\n const {\n control,\n formState: { errors },\n getValues,\n handleSubmit,\n reset,\n setValue,\n watch,\n } = useForm<UserFormData>({\n defaultValues,\n resolver: yupResolver(userSchema),\n });\n\n React.useEffect(() => {\n if (data) {\n reset({\n _id: data._id,\n active: data.active,\n avatar: data.avatar,\n avatarUpload: data.avatarUpload,\n confirmPassword: data.confirmPassword,\n email: data.email,\n firstName: data.firstName,\n lastName: data.lastName,\n password: data.password,\n preferredRegion: data.preferredRegion,\n role: data.role,\n });\n } else {\n reset(defaultValues);\n }\n }, [data]);\n\n const {\n _id,\n active,\n avatar,\n avatarUpload,\n confirmPassword,\n email,\n firstName,\n lastName,\n password,\n preferredRegion,\n role,\n } = getValues();\n\n return {\n control,\n fields: {\n _id,\n active,\n avatar,\n avatarUpload,\n confirmPassword,\n email,\n firstName,\n lastName,\n password,\n preferredRegion,\n role,\n },\n formState: { errors },\n handleSubmit,\n reset,\n setValue,\n watch,\n };\n}\n","import { yupResolver } from \"@hookform/resolvers/yup\";\nimport { useForm } from \"react-hook-form\";\n\nimport { CreateLoginFormData, LoginFormData } from \"../../types/auth\";\nimport { loginSchema } from \"../../yupSchema/auth\";\n\nconst defaultValues: LoginFormData = {\n email: \"\",\n password: \"\",\n};\n\n/**\n * Custom hook to manage the login form state and validation.\n *\n * @returns {CreateLoginFormData} - The form methods and state.\n */\nexport function useLoginForm(): CreateLoginFormData {\n const {\n control,\n formState: { errors },\n getValues,\n handleSubmit,\n reset,\n setValue,\n watch,\n } = useForm<LoginFormData>({\n defaultValues,\n resolver: yupResolver(loginSchema),\n });\n\n const { email, password } = getValues();\n\n return {\n control,\n fields: {\n email,\n password,\n },\n formState: { errors },\n handleSubmit,\n reset,\n setValue,\n watch,\n };\n}\n","import { yupResolver } from \"@hookform/resolvers/yup\";\nimport { useForm } from \"react-hook-form\";\n\nimport { EnumRegions, EnumUserRole } from \"../../enums\";\nimport { CreateRegisterFormData, RegisterFormData } from \"../../types/auth\";\nimport { registerSchema } from \"../../yupSchema/auth\";\n\nconst defaultValues: RegisterFormData = {\n email: \"\",\n firstName: \"\",\n lastName: \"\",\n password: \"\",\n preferredRegion: \"\",\n role: EnumUserRole.CUSTOMER,\n};\n\n/**\n * Custom hook to manage the register form state and validation.\n *\n * @returns {CreateRegisterFormData} - The form methods and state.\n */\nexport function useRegisterForm(): CreateRegisterFormData {\n const {\n control,\n formState: { errors },\n getValues,\n handleSubmit,\n reset,\n setValue,\n watch,\n } = useForm<RegisterFormData>({\n defaultValues,\n resolver: yupResolver(registerSchema),\n });\n\n const { email, firstName, lastName, password, preferredRegion, role } =\n getValues();\n\n return {\n control,\n fields: {\n email,\n firstName,\n lastName,\n password,\n preferredRegion,\n role,\n },\n formState: { errors },\n handleSubmit,\n reset,\n setValue,\n watch,\n };\n}\n","import { yupResolver } from \"@hookform/resolvers/yup\";\nimport { useForm } from \"react-hook-form\";\n\nimport {\n CreateRequestPasswordResetFormData,\n RequestPasswordResetFormData,\n} from \"../../types/auth\";\nimport { requestPasswordResetSchema } from \"../../yupSchema/auth\";\n\nconst defaultValues: RequestPasswordResetFormData = {\n email: \"\",\n};\n\nexport function useRequestPasswordResetForm(): CreateRequestPasswordResetFormData {\n const {\n control,\n formState: { errors },\n getValues,\n handleSubmit,\n reset,\n setValue,\n watch,\n } = useForm<RequestPasswordResetFormData>({\n defaultValues,\n resolver: yupResolver(requestPasswordResetSchema),\n });\n\n const { email } = getValues();\n\n return {\n control,\n fields: {\n email,\n },\n formState: { errors },\n handleSubmit,\n reset,\n setValue,\n watch,\n };\n}\n","import { yupResolver } from \"@hookform/resolvers/yup\";\nimport { useForm } from \"react-hook-form\";\n\nimport {\n CreateValidateTokenFormData,\n ValidateTokenFormData,\n} from \"../../types/auth\";\nimport { validateTokenSchema } from \"../../yupSchema/auth\";\n\nconst defaultValues: ValidateTokenFormData = {\n email: \"\",\n token: \"\",\n};\n\nexport function useValidateTokenForm(): CreateValidateTokenFormData {\n const {\n control,\n formState: { errors },\n getValues,\n handleSubmit,\n reset,\n setValue,\n watch,\n } = useForm<ValidateTokenFormData>({\n defaultValues,\n resolver: yupResolver(validateTokenSchema),\n });\n\n const { email, token } = getValues();\n\n return {\n control,\n fields: {\n email,\n token,\n },\n formState: { errors },\n handleSubmit,\n reset,\n setValue,\n watch,\n };\n}\n","import { yupResolver } from \"@hookform/resolvers/yup\";\nimport { useForm } from \"react-hook-form\";\n\nimport {\n CreateResetPasswordFormData,\n ResetPasswordFormData,\n} from \"../../types/auth\";\nimport { resetPasswordSchema } from \"../../yupSchema/auth\";\n\nconst defaultValues: ResetPasswordFormData = {\n confirmPassword: \"\",\n email: \"\",\n password: \"\",\n};\n\nexport function useResetPasswordForm(): CreateResetPasswordFormData {\n const {\n control,\n formState: { errors },\n getValues,\n handleSubmit,\n reset,\n setValue,\n watch,\n } = useForm<ResetPasswordFormData>({\n defaultValues,\n resolver: yupResolver(resetPasswordSchema),\n });\n\n const { confirmPassword, email, password } = getValues();\n\n return {\n control,\n fields: {\n confirmPassword,\n email,\n password,\n },\n formState: { errors },\n handleSubmit,\n reset,\n setValue,\n watch,\n };\n}\n"],"mappings":"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","names":["yup","yup","yup","yup","yupResolver","React","useForm","useForm","yupResolver","yupResolver","React","useForm","useForm","yupResolver","yupResolver","React","useForm","useForm","yupResolver","yupResolver","React","useForm","useForm","yupResolver","yupResolver","useForm","defaultValues","useForm","yupResolver","yupResolver","useForm","defaultValues","useForm","yupResolver","yupResolver","useForm","defaultValues","useForm","yupResolver","yupResolver","useForm","defaultValues","useForm","yupResolver","yupResolver","useForm","defaultValues","useForm","yupResolver"]}
|
|
1
|
+
{"version":3,"sources":["../../src/hooks/useLocationSearch.ts","../../src/hooks/stallholder/useStallholderForm.ts","../../src/yupSchema/global.ts","../../src/yupSchema/market.ts","../../src/yupSchema/stallholder.ts","../../src/yupSchema/user.ts","../../src/yupSchema/auth.ts","../../src/hooks/utils.ts","../../src/hooks/stallholder/useStallholderApplyForm.ts","../../src/hooks/market/useMarketForm.ts","../../src/hooks/market/useMarketInfoForm.ts","../../src/hooks/useUserForm.ts","../../src/hooks/auth/useLoginForm.ts","../../src/hooks/auth/useRegisterForm.ts","../../src/hooks/auth/useRequestPasswordResetForm.ts","../../src/hooks/auth/useValidateTokenForm.ts","../../src/hooks/auth/useResetPasswordForm.ts"],"sourcesContent":["/* eslint-disable camelcase */\nimport { LocationType } from \"../types/global\";\n\nexport interface PlacePrediction {\n place_id: string;\n description: string;\n}\n\ninterface PlaceDetails {\n address_components: {\n long_name: string;\n short_name: string;\n types: string[];\n }[];\n formatted_address: string;\n geometry: {\n location: {\n lat: number;\n lng: number;\n };\n };\n url: string;\n}\n\ninterface UseLocation {\n getPredictions: (text: string) => Promise<PlacePrediction[] | undefined>;\n getPlaceDetails: (placeId: string) => Promise<LocationType | undefined>;\n}\n\n/** Handles API request errors */\nconst handleApiError = (error: unknown, message: string) => {\n console.error(message, error);\n};\n\n/**\n * Custom hook to manage location search functionality.\n *\n * @returns {UseLocation} - The functions to get predictions and place details.\n */\nexport const useLocationSearch = (googleApi: string): UseLocation => {\n const getPredictions = async (\n text: string,\n ): Promise<PlacePrediction[] | undefined> => {\n try {\n const response = await fetch(\n `https://maps.googleapis.com/maps/api/place/autocomplete/json?input=${text}&components=country:nz&key=${googleApi}`,\n );\n\n if (!response.ok) {\n throw new Error(`HTTP error! Status: ${response.status}`);\n }\n\n const data = await response.json();\n return data.predictions;\n } catch (error) {\n console.error(\"Error fetching predictions:\", error);\n handleApiError(error, \"Failed to fetch address predictions.\");\n }\n };\n\n const getPlaceDetails = async (\n placeId: string,\n ): Promise<LocationType | undefined> => {\n try {\n const response = await fetch(\n `https://maps.googleapis.com/maps/api/place/details/json?place_id=${placeId}&key=${googleApi}`,\n );\n\n if (!response.ok) {\n throw new Error(`HTTP error! Status: ${response.status}`);\n }\n\n const data = (await response.json()) as { result: PlaceDetails };\n const { result } = data;\n const { lat, lng } = result.geometry.location;\n const { address_components, formatted_address } = result;\n\n const address = address_components.reduce((acc, item) => {\n if (item.types.includes(\"street_number\")) {\n return { ...acc, streetNumber: item.long_name };\n }\n if (item.types.includes(\"route\")) {\n return { ...acc, streetName: item.long_name };\n }\n if (item.types.includes(\"locality\")) {\n return { ...acc, city: item.long_name };\n }\n if (item.types.includes(\"administrative_area_level_1\")) {\n return { ...acc, region: item.long_name };\n }\n if (item.types.includes(\"country\")) {\n return { ...acc, country: item.long_name };\n }\n return acc;\n }, {} as LocationType);\n\n const newLocation = {\n city: address.city.toLowerCase(),\n coordinates: [lng, lat], // [longitude, latitude]\n country: address.country,\n fullAddress: formatted_address,\n latitude: lat,\n longitude: lng,\n region: address.region.replace(/ Region$/, \"\"), // Remove \" Region\" suffix\n type: \"Point\" as const, // Mongoose GeoJSON type\n };\n\n return newLocation;\n } catch (error) {\n handleApiError(error, \"Failed to fetch place details.\");\n }\n };\n\n return {\n getPlaceDetails,\n getPredictions,\n };\n};\n","import { yupResolver } from \"@hookform/resolvers/yup\";\nimport * as React from \"react\";\nimport { useForm } from \"react-hook-form\";\n\nimport {\n CreateStallholderFormData,\n StallholderFormData,\n} from \"../../types/stallholder\";\nimport { stallHolderSchema } from \"../../yupSchema\";\nimport { defaultStallholderFormValues } from \"../utils\";\n\n/**\n * Custom hook to manage the stallholder form state and validation.\n *\n * @param {StallholderFormData} data - The initial form data.\n * @returns {CreateStallholderFormData} - The form methods and state.\n */\nexport function useStallholderForm(\n data?: StallholderFormData,\n): CreateStallholderFormData {\n const {\n control,\n formState: { errors },\n getValues,\n handleSubmit,\n reset,\n setValue,\n watch,\n } = useForm<StallholderFormData>({\n defaultValues: defaultStallholderFormValues,\n resolver: yupResolver(stallHolderSchema),\n });\n\n React.useEffect(() => {\n if (data) {\n reset({\n _id: data._id,\n active: data.active,\n categories: data.categories,\n cover: data.cover,\n coverUpload: data.coverUpload,\n description: data.description,\n images: data.images,\n imagesUpload: data.imagesUpload,\n locations: data.locations,\n logo: data.logo,\n logoUpload: data.logoUpload,\n multiLocation: data.multiLocation,\n name: data.name,\n products: data.products,\n promoCode: data.promoCode,\n region: data.region,\n specialities: data.specialities,\n });\n } else {\n reset(defaultStallholderFormValues);\n }\n }, [data]);\n\n const {\n _id,\n active,\n categories,\n cover,\n coverUpload,\n description,\n images,\n imagesUpload,\n locations,\n logo,\n logoUpload,\n multiLocation,\n name,\n products,\n promoCode,\n region,\n specialities,\n } = getValues();\n\n return {\n control,\n fields: {\n _id,\n active,\n categories,\n cover,\n coverUpload,\n description,\n images,\n imagesUpload,\n locations,\n logo,\n logoUpload,\n multiLocation,\n name,\n products,\n promoCode,\n region,\n specialities,\n },\n formState: { errors },\n handleSubmit,\n reset,\n setValue,\n watch,\n };\n}\n","import dayjs, { extend } from \"dayjs\";\nimport customParseFormat from \"dayjs/plugin/customParseFormat\";\nimport isSameOrAfter from \"dayjs/plugin/isSameOrAfter\";\nimport * as yup from \"yup\";\nimport { TestFunction } from \"yup\";\n\nimport { dateFormat, timeFormat } from \"../utils\";\n\ntype NoLeadingZerosOptions = {\n allowDecimal?: boolean;\n};\n\nexport const noLeadingZeros = (\n fieldName: string,\n options: NoLeadingZerosOptions = {},\n): TestFunction<number | undefined> => {\n return function (value, context) {\n const original = context.originalValue?.toString() ?? \"\";\n\n const regex = options.allowDecimal\n ? /^0\\d+(\\.\\d+)?$/ // e.g. \"03\", \"03.5\", \"0002.75\"\n : /^0\\d+$/; // e.g. \"01\", \"0001\"\n\n if (regex.test(original)) {\n return context.createError({\n message: `${fieldName} must not have leading zeros`,\n });\n }\n\n return true;\n };\n};\n\nextend(isSameOrAfter);\nextend(customParseFormat);\n\nconst now = dayjs(); // Current date and time\n\n// DATE AND TIME SCHEMA\nexport const endDateNotInPastTest = yup\n .string()\n .test(\"not-in-past\", \"End date cannot be in the past\", (value) => {\n return value\n ? dayjs(value, dateFormat, true).isSameOrAfter(now, \"day\")\n : false;\n });\n\nexport const startDateNotInPastTest = yup\n .string()\n .test(\"not-in-past\", \"Start date cannot be in the past\", (value) => {\n return value\n ? dayjs(value, dateFormat, true).isSameOrAfter(now, \"day\")\n : false;\n });\n\nexport const endDateAfterStartDateTest = yup\n .string()\n .test(\n \"end-after-start\",\n \"End date cannot be before start date\",\n function (value) {\n const { startDate } = this.parent;\n if (!startDate || !value) return false;\n return dayjs(value, dateFormat, true).isSameOrAfter(\n dayjs(startDate, dateFormat, true),\n \"day\",\n );\n },\n );\n\nexport const endTimeMustBeAfterStartTimeTest = yup\n .string()\n .test(\n \"valid-end-time\",\n \"End time must be after start time\",\n function (value) {\n const { startDate, endDate, startTime } = this.parent;\n if (!startDate || !endDate || !startTime || !value) return false;\n\n const startDateTime = dayjs(\n `${startDate} ${startTime}`,\n `${dateFormat} ${timeFormat}`,\n true,\n );\n const endDateTime = dayjs(\n `${endDate} ${value}`,\n `${dateFormat} ${timeFormat}`,\n true,\n );\n\n return endDateTime.isAfter(startDateTime);\n },\n );\n\nexport const startTimeCannotBeInPastTest = yup\n .string()\n .test(\n \"valid-start-time\",\n \"Start time cannot be in the past\",\n function (value) {\n const { startDate } = this.parent;\n if (!startDate || !value) return false;\n const startDateTime = dayjs(\n `${startDate} ${value}`,\n `${dateFormat} ${timeFormat}`,\n true,\n );\n return startDateTime.isSameOrAfter(now);\n },\n );\n\nexport const dateTimeSchema = yup.object().shape({\n endDate: yup\n .string()\n .concat(endDateNotInPastTest)\n .concat(endDateAfterStartDateTest)\n .required(\"End date is required\"),\n endTime: yup\n .string()\n .concat(endTimeMustBeAfterStartTimeTest)\n .required(\"End time is required\"),\n startDate: yup\n .string()\n .concat(startDateNotInPastTest)\n .required(\"Start date is required\"),\n startTime: yup\n .string()\n .concat(startTimeCannotBeInPastTest)\n .required(\"Start time is required\"),\n});\n\nexport const dateTimeWithPriceSchema = dateTimeSchema.shape({\n marketPrice: yup\n .number()\n .typeError(\"Market price must be a number\")\n .min(0.1, \"Market price must be at least 0.1\")\n .required(\"Market price is required\")\n .test(\n \"no-leading-zeros\",\n \"\",\n noLeadingZeros(\"Market price\", { allowDecimal: true }),\n ),\n});\n\nexport const locationSchema = yup.object().shape({\n city: yup.string().required(\"City is required\"),\n coordinates: yup\n .array()\n .of(yup.number().required(\"Coordinates must be numbers\"))\n .length(\n 2,\n \"Coordinates must contain exactly two numbers (longitude, latitude)\",\n )\n .required(\"Coordinates are required\"),\n country: yup.string().required(\"Country is required\"),\n fullAddress: yup.string().required(\"Address is required\"),\n latitude: yup.number().required(\"Latitude is required\"),\n longitude: yup.number().required(\"Longitude is required\"),\n region: yup.string().required(\"Region is required\"),\n type: yup\n .string()\n .oneOf([\"Point\"], \"Type must be 'Point'\")\n .default(\"Point\")\n .required(\"Type is required\"),\n});\n\n// ✅ Reusable Email Schema\nexport const emailSchema = yup\n .string()\n .email(\"Invalid email address\")\n .required(\"Email is required\")\n .transform((value) =>\n typeof value === \"string\" ? value.toLowerCase() : value,\n );\n\n// ✅ Reusable Password Schema\nexport const passwordSchema = yup\n .string()\n .trim()\n .min(8, \"Password must be at least 8 characters long\")\n .required(\"Password is required\");\n\nexport const globalResourceSchema = yup.object().shape({\n active: yup.boolean().required(\"Active is required\"),\n cover: yup.object({\n source: yup.string().required(\"Cover is required\"),\n title: yup.string().required(\"Cover is required\"),\n }),\n description: yup.string().trim().min(3).required(\"Description is required\"),\n name: yup.string().trim().min(3).required(\"Name is required\"),\n region: yup.string().required(\"Region is required\"),\n});\n","import * as yup from \"yup\";\n\nimport { EnumPaymentMethod, EnumRejectionPolicy } from \"../enums\";\n\nimport {\n dateTimeSchema,\n dateTimeWithPriceSchema,\n globalResourceSchema,\n locationSchema,\n noLeadingZeros,\n} from \"./global\";\n\nconst nzBankAccountRegex = /^\\d{2}-\\d{4}-\\d{7}-\\d{2}$/;\n\nexport const marketSchema = globalResourceSchema.shape({\n dateTime: yup.array().of(dateTimeSchema).required(\"DateTime is required\"),\n location: locationSchema,\n provider: yup.string().trim().min(3).required(\"Provider is required\"),\n tags: yup\n .array()\n .of(yup.string().defined())\n .min(1, \"Tags are required\")\n .required(\"Tags are required\"),\n});\n\nexport const marketInfoSchema = yup.object().shape({\n applicationDeadlineHours: yup\n .number()\n .typeError(\"Application deadline hours must be a number\")\n .min(1, \"Application deadline hours must be at least 1\")\n .required(\"Application deadline hours is required\")\n .test(\"no-leading-zeros\", \"\", noLeadingZeros(\"Application deadline hours\")),\n dateTime: yup\n .array()\n .of(dateTimeWithPriceSchema)\n .required(\"DateTime is required\"),\n marketId: yup.string().trim().required(\"Market ID is required\"),\n paymentDueHours: yup\n .number()\n .typeError(\"Payment due hours must be a number\")\n .min(1, \"Payment due hours must be at least 1\")\n .required(\"Payment due hours is required\")\n .test(\"no-leading-zeros\", \"\", noLeadingZeros(\"Payment due hours\")),\n paymentMethod: yup\n .mixed<EnumPaymentMethod>()\n .oneOf(Object.values(EnumPaymentMethod))\n .required(\"Please select a Payment method\"),\n paymentTarget: yup\n .object()\n .when(\"paymentMethod\", (paymentMethod: EnumPaymentMethod[], schema) => {\n const isBankTransfer = paymentMethod.includes(\n EnumPaymentMethod.BANK_TRANSFER,\n );\n if (!isBankTransfer) {\n return schema.shape({\n accountHolderName: yup.string().notRequired(),\n accountNumber: yup.string().notRequired(),\n link: yup\n .string()\n .trim()\n .url(\"Link must be a valid URL\")\n .transform((value) =>\n typeof value === \"string\" ? value.toLowerCase() : value,\n )\n .required(\"Link is required for PayPal/Stripe\"),\n });\n } else if (isBankTransfer) {\n return schema.shape({\n accountHolderName: yup\n .string()\n .trim()\n .required(\"Account holder name is required for bank transfer\"),\n accountNumber: yup\n .string()\n .trim()\n .required(\"Account number is required for bank transfer\")\n .matches(\n nzBankAccountRegex,\n \"Account number must be in format: XX-XXXX-XXXXXXX-XX\",\n ),\n link: yup\n .string()\n .transform((value) =>\n typeof value === \"string\" ? value.toLowerCase() : value,\n )\n .notRequired(),\n });\n } else {\n return schema.shape({\n accountHolderName: yup.string().notRequired(),\n accountNumber: yup.string().notRequired(),\n link: yup.string().notRequired(),\n });\n }\n }),\n rejectionPolicy: yup\n .mixed<EnumRejectionPolicy>()\n .oneOf(Object.values(EnumRejectionPolicy))\n .required(\"Rejection policy is required\"),\n stallCapacity: yup\n .number()\n .typeError(\"Stall capacity must be a number\")\n .min(1, \"Stall capacity must be at least 1\")\n .integer(\"Stall capacity must be a whole number\")\n .required(\"Stall capacity is required\")\n .test(\"no-leading-zeros\", \"\", noLeadingZeros(\"Stall capacity\")),\n});\n","import * as yup from \"yup\";\n\nimport { EnumPaymentMethod } from \"../enums\";\n\nimport { globalResourceSchema } from \"./global\";\n\nexport const stallHolderSchema = globalResourceSchema.shape({\n categories: yup\n .array()\n .of(\n yup.object().shape({\n id: yup.string().required(\"Category id is required\"),\n name: yup.string().required(\"Category name is required\"),\n subcategories: yup\n .array()\n .of(\n yup.object().shape({\n id: yup.string().defined(),\n items: yup.array().of(yup.string().defined()).nullable(),\n name: yup.string().defined(),\n }),\n )\n .nullable(),\n }),\n )\n .min(1, \"Category list must contain at least one item\")\n .required(\"Categories are required\"),\n multiLocation: yup.boolean().required(\"Multi location is required\"),\n products: yup\n .array()\n .of(yup.string().defined())\n .min(1, \"Product list must contain at least one item\")\n .required(\"Products are required\"),\n});\n\nexport const stallholderApplyFormSchema = yup.object().shape({\n electricity: yup.object().shape({\n details: yup\n .string()\n .trim()\n .test(\"details-required\", \"Please add details\", function (value) {\n return !this.parent?.isRequired || (value?.trim().length ?? 0) > 0;\n })\n .nullable(),\n isRequired: yup.boolean().required(\"Electricity requirement is required\"),\n }),\n foodSafetyGradeFiles: yup.array().of(yup.string().defined()).nullable(),\n foodSafetyGradeFilesUpload: yup.array().of(yup.string().defined()).nullable(),\n gazebo: yup.object().shape({\n details: yup\n .string()\n .trim()\n .test(\"details-required\", \"Please add details\", function (value) {\n return !this.parent?.isRequired || (value?.trim().length ?? 0) > 0;\n })\n .nullable(),\n isRequired: yup.boolean().required(\"Gazebo requirement is required\"),\n }),\n packaging: yup\n .array()\n .of(yup.string().defined())\n .min(1, \"Packaging list must contain at least one item\")\n .required(\"Packaging is required\"),\n paymentMethod: yup\n .mixed<EnumPaymentMethod>()\n .oneOf(Object.values(EnumPaymentMethod))\n .required(\"Please select a Payment method\"),\n priceRange: yup.object().shape({\n max: yup\n .number()\n .min(1)\n .required(\"Max price is required\")\n .test(\n \"is-greater\",\n \"Max price must be greater than or equal to Min price\",\n function (max) {\n const { min } = this.parent;\n return max >= min;\n },\n ),\n min: yup.number().min(1).required(\"Min price is required\"),\n }),\n producedIn: yup\n .array()\n .of(yup.string().defined())\n .min(1, \"Produced in list must contain at least one item\")\n .required(\"Produced in is required\"),\n stallholderId: yup.string().trim().required(\"Stallholder ID is required\"),\n stallSize: yup.object().shape({\n depth: yup.number().min(1).required(\"Depth is required\"),\n width: yup.number().min(1).required(\"Width is required\"),\n }),\n table: yup.object().shape({\n details: yup\n .string()\n .trim()\n .test(\"details-required\", \"Please add details\", function (value) {\n return !this.parent?.isRequired || (value?.trim().length ?? 0) > 0;\n })\n .nullable(),\n isRequired: yup.boolean().required(\"Table requirement is required\"),\n }),\n});\n","import * as yup from \"yup\";\n\nimport { EnumUserRole } from \"../enums\";\n\nimport { emailSchema, passwordSchema } from \"./global\";\n\nexport const userSchema = yup.object().shape({\n active: yup.boolean().required(\"Active is required\"),\n email: emailSchema,\n firstName: yup.string().required(\"First name is required\"),\n lastName: yup.string().required(\"Last name is required\"),\n password: passwordSchema,\n preferredRegion: yup.string().required(\"Preferred region is required\"),\n // eslint-disable-next-line sort-keys\n confirmPassword: yup\n .string()\n .oneOf([yup.ref(\"password\")], \"Passwords must match\")\n .required(\"Confirm Password is required\"),\n role: yup\n .mixed<EnumUserRole>()\n .oneOf(Object.values(EnumUserRole))\n .required(\"Role is required\"),\n});\n","import * as yup from \"yup\";\n\nimport { EnumUserRole } from \"../enums\";\n\nimport { emailSchema, passwordSchema } from \"./global\";\n\nexport const loginSchema = yup.object().shape({\n email: emailSchema,\n password: passwordSchema,\n});\n\nexport const registerSchema = yup.object().shape({\n email: emailSchema,\n firstName: yup.string().required(\"First Name is required\"),\n lastName: yup.string().required(\"Last Name is required\"),\n password: passwordSchema,\n preferredRegion: yup.string().required(\"Preferred Region is required\"),\n role: yup\n .mixed<EnumUserRole>()\n .oneOf(Object.values(EnumUserRole))\n .required(\"Role is required\"),\n});\n\nexport const requestPasswordResetSchema = yup.object().shape({\n email: emailSchema,\n});\n\nexport const resetPasswordSchema = yup.object().shape({\n email: emailSchema,\n password: passwordSchema,\n // eslint-disable-next-line sort-keys\n confirmPassword: yup\n .string()\n .oneOf([yup.ref(\"password\")], \"Passwords must match\")\n .required(\"Confirm Password is required\"),\n});\n\nexport const validateTokenSchema = yup.object().shape({\n email: emailSchema,\n token: yup\n .string()\n .required(\"Verification code is required\")\n .matches(/^\\d{5}$/, \"Verification code must be exactly 5 digits\"),\n});\n","import { EnumPaymentMethod, EnumRejectionPolicy } from \"../enums\";\nimport {\n BaseResourceTypeFormData,\n MarketFormData,\n MarketInfoFormData,\n StallholderApplyFormFormData,\n StallholderFormData,\n} from \"../types\";\n\nexport const globalDefaultValues: BaseResourceTypeFormData = {\n active: false,\n cover: {\n source: \"\",\n title: \"\",\n },\n coverUpload: {\n source: \"\",\n title: \"\",\n },\n description:\n \"Lorem Ipsum is a placeholder text commonly used in design and publishing to represent the visual form of a document without relying on meaningful content. It's a jumbled Latin text, not intended to be read or understood, and is used to show the layout and typography before actual content is added.\",\n images: null,\n imagesUpload: null,\n logo: null,\n logoUpload: null,\n name: \"Resource name\",\n promoCode: \"\",\n region: \"\",\n};\n\nexport const defaultMarketFormValues: MarketFormData = {\n ...globalDefaultValues,\n dateTime: [\n {\n endDate: \"04-07-2025\",\n endTime: \"15:00\",\n startDate: \"04-07-2025\",\n startTime: \"09:00\",\n },\n {\n endDate: \"05-07-2025\",\n endTime: \"15:00\",\n startDate: \"05-07-2025\",\n startTime: \"09:00\",\n },\n ],\n location: {\n city: \"\",\n coordinates: [0, 0], // [longitude, latitude]\n country: \"\",\n fullAddress: \"\",\n latitude: 0,\n longitude: 0,\n region: \"\",\n type: \"Point\", // Default type for GeoJSON\n },\n provider: \"Provider name\",\n tags: [],\n};\n\nexport const defaultMarketInfoFormValues: MarketInfoFormData = {\n applicationDeadlineHours: 0,\n dateTime: [\n {\n endDate: \"04-05-2025\",\n endTime: \"15:00\",\n marketPrice: 0.0,\n startDate: \"04-05-2025\",\n startTime: \"09:00\",\n },\n {\n endDate: \"05-05-2025\",\n endTime: \"15:00\",\n marketPrice: 0.0,\n startDate: \"05-05-2025\",\n startTime: \"09:00\",\n },\n ],\n marketId: \"\",\n paymentDueHours: 0,\n paymentMethod: \"\" as EnumPaymentMethod,\n paymentTarget: {\n accountHolderName: \"\",\n accountNumber: \"\",\n link: \"\",\n },\n rejectionPolicy: EnumRejectionPolicy.MULTI_DATE_ALLOWED,\n stallCapacity: 0,\n};\n\nexport const defaultStallholderFormValues: StallholderFormData = {\n ...globalDefaultValues,\n categories: [],\n locations: null,\n multiLocation: false,\n products: [],\n specialities: null,\n};\n\nexport const defaultStallholderApplyFormValues: StallholderApplyFormFormData = {\n electricity: { details: null, isRequired: false },\n foodSafetyGradeFiles: null,\n foodSafetyGradeFilesUpload: null,\n gazebo: { details: null, isRequired: false },\n packaging: [],\n paymentMethod: \"\" as EnumPaymentMethod,\n priceRange: { max: 0, min: 0 },\n producedIn: [],\n stallholderId: \"\",\n stallSize: { depth: 0, width: 0 },\n table: { details: null, isRequired: false },\n};\n","import { yupResolver } from \"@hookform/resolvers/yup\";\nimport * as React from \"react\";\nimport { useForm } from \"react-hook-form\";\n\nimport {\n CreateStallholderApplyFormFormData,\n StallholderApplyFormFormData,\n} from \"../../types/stallholder\";\nimport { stallholderApplyFormSchema } from \"../../yupSchema\";\nimport { defaultStallholderApplyFormValues } from \"../utils\";\n\n/**\n * Custom hook to manage the stallholder apply form state and validation.\n *\n * @param {StallholderApplyFormFormData} data - The initial form data.\n * @returns {CreateStallholderApplyFormFormData} - The form methods and state.\n */\nexport function useStallholderApplyForm(\n data?: StallholderApplyFormFormData,\n): CreateStallholderApplyFormFormData {\n const {\n control,\n formState: { errors },\n getValues,\n handleSubmit,\n reset,\n setValue,\n watch,\n } = useForm<StallholderApplyFormFormData>({\n defaultValues: defaultStallholderApplyFormValues,\n resolver: yupResolver(stallholderApplyFormSchema),\n });\n\n React.useEffect(() => {\n if (data) {\n reset({\n _id: data._id,\n electricity: data.electricity,\n foodSafetyGradeFiles: data.foodSafetyGradeFiles,\n foodSafetyGradeFilesUpload: data.foodSafetyGradeFilesUpload,\n gazebo: data.gazebo,\n packaging: data.packaging,\n paymentMethod: data.paymentMethod,\n priceRange: data.priceRange,\n producedIn: data.producedIn,\n stallholderId: data.stallholderId,\n stallSize: data.stallSize,\n table: data.table,\n });\n } else {\n reset(defaultStallholderApplyFormValues);\n }\n }, [data]);\n\n const {\n _id,\n electricity,\n foodSafetyGradeFiles,\n foodSafetyGradeFilesUpload,\n gazebo,\n packaging,\n paymentMethod,\n priceRange,\n producedIn,\n stallholderId,\n stallSize,\n table,\n } = getValues();\n\n return {\n control,\n fields: {\n _id,\n electricity,\n foodSafetyGradeFiles,\n foodSafetyGradeFilesUpload,\n gazebo,\n packaging,\n paymentMethod,\n priceRange,\n producedIn,\n stallholderId,\n stallSize,\n table,\n },\n formState: { errors },\n handleSubmit,\n reset,\n setValue,\n watch,\n };\n}\n","import { yupResolver } from \"@hookform/resolvers/yup\";\nimport * as React from \"react\";\nimport { useForm } from \"react-hook-form\";\n\nimport { CreateMarketFormData, MarketFormData } from \"../../types/market\";\nimport { marketSchema } from \"../../yupSchema\";\nimport { defaultMarketFormValues } from \"../utils\";\n\n/**\n * Custom hook to manage the market form state and validation.\n *\n * @param {MarketFormData} data - The initial form data.\n * @returns {CreateMarketFormData} - The form methods and state.\n */\nexport function useMarketForm(data?: MarketFormData): CreateMarketFormData {\n const {\n control,\n formState: { errors },\n getValues,\n handleSubmit,\n reset,\n setValue,\n watch,\n } = useForm<MarketFormData>({\n defaultValues: defaultMarketFormValues,\n resolver: yupResolver(marketSchema),\n });\n\n React.useEffect(() => {\n if (data) {\n reset({\n _id: data._id,\n active: data.active,\n cover: data.cover,\n coverUpload: data.coverUpload,\n dateTime: data.dateTime,\n description: data.description,\n images: data.images,\n imagesUpload: data.imagesUpload,\n location: data.location,\n logo: data.logo,\n logoUpload: data.logoUpload,\n name: data.name,\n promoCode: data.promoCode,\n provider: data.provider,\n region: data.region,\n tags: data.tags,\n });\n } else {\n reset(defaultMarketFormValues);\n }\n }, [data]);\n\n const {\n _id,\n active,\n cover,\n coverUpload,\n dateTime,\n description,\n images,\n imagesUpload,\n location,\n logo,\n logoUpload,\n name,\n provider,\n region,\n tags,\n } = getValues();\n\n return {\n control,\n fields: {\n _id,\n active,\n cover,\n coverUpload,\n dateTime,\n description,\n images,\n imagesUpload,\n location,\n logo,\n logoUpload,\n name,\n provider,\n region,\n tags,\n },\n formState: { errors },\n handleSubmit,\n reset,\n setValue,\n watch,\n };\n}\n","import { yupResolver } from \"@hookform/resolvers/yup\";\nimport * as React from \"react\";\nimport { useForm } from \"react-hook-form\";\n\nimport {\n CreateMarketInfoFormData,\n MarketInfoFormData,\n} from \"../../types/market\";\nimport { marketInfoSchema } from \"../../yupSchema\";\nimport { defaultMarketInfoFormValues } from \"../utils\";\n\n/**\n * Custom hook to manage the market form state and validation.\n *\n * @param {MarketInfoFormData} data - The initial form data.\n * @returns {CreateMarketInfoFormData} - The form methods and state.\n */\nexport function useMarketInfoForm(\n data?: MarketInfoFormData,\n): CreateMarketInfoFormData {\n const {\n control,\n formState: { errors },\n getValues,\n handleSubmit,\n reset,\n setValue,\n watch,\n } = useForm<MarketInfoFormData>({\n defaultValues: defaultMarketInfoFormValues,\n resolver: yupResolver(marketInfoSchema),\n });\n\n React.useEffect(() => {\n if (data) {\n reset({\n _id: data._id,\n applicationDeadlineHours: data.applicationDeadlineHours,\n dateTime: data.dateTime,\n marketId: data.marketId,\n paymentDueHours: data.paymentDueHours,\n paymentMethod: data.paymentMethod,\n paymentTarget: data.paymentTarget,\n rejectionPolicy: data.rejectionPolicy,\n stallCapacity: data.stallCapacity,\n });\n } else {\n reset(defaultMarketInfoFormValues);\n }\n }, [data]);\n\n const {\n _id,\n applicationDeadlineHours,\n dateTime,\n marketId,\n paymentDueHours,\n paymentMethod,\n paymentTarget,\n rejectionPolicy,\n stallCapacity,\n } = getValues();\n\n return {\n control,\n fields: {\n _id,\n applicationDeadlineHours,\n dateTime,\n marketId,\n paymentDueHours,\n paymentMethod,\n paymentTarget,\n rejectionPolicy,\n stallCapacity,\n },\n formState: { errors },\n handleSubmit,\n reset,\n setValue,\n watch,\n };\n}\n","import { yupResolver } from \"@hookform/resolvers/yup\";\nimport * as React from \"react\";\nimport { useForm } from \"react-hook-form\";\n\nimport { EnumUserRole } from \"../enums\";\nimport { CreateUserFormData, UserFormData } from \"../types/user\";\nimport { userSchema } from \"../yupSchema/user\";\n\nconst defaultValues: UserFormData = {\n active: false,\n avatar: null,\n avatarUpload: null,\n confirmPassword: \"\",\n email: \"\",\n firstName: \"\",\n lastName: \"\",\n password: \"\",\n preferredRegion: \"\",\n role: EnumUserRole.CUSTOMER,\n};\n\n/**\n * Custom hook to manage the user form state and validation.\n *\n * @param {UserFormData} data - The initial form data.\n * @returns {CreateUserFormData} - The form methods and state.\n */\nexport function useUserForm(data?: UserFormData): CreateUserFormData {\n const {\n control,\n formState: { errors },\n getValues,\n handleSubmit,\n reset,\n setValue,\n watch,\n } = useForm<UserFormData>({\n defaultValues,\n resolver: yupResolver(userSchema),\n });\n\n React.useEffect(() => {\n if (data) {\n reset({\n _id: data._id,\n active: data.active,\n avatar: data.avatar,\n avatarUpload: data.avatarUpload,\n confirmPassword: data.confirmPassword,\n email: data.email,\n firstName: data.firstName,\n lastName: data.lastName,\n password: data.password,\n preferredRegion: data.preferredRegion,\n role: data.role,\n });\n } else {\n reset(defaultValues);\n }\n }, [data]);\n\n const {\n _id,\n active,\n avatar,\n avatarUpload,\n confirmPassword,\n email,\n firstName,\n lastName,\n password,\n preferredRegion,\n role,\n } = getValues();\n\n return {\n control,\n fields: {\n _id,\n active,\n avatar,\n avatarUpload,\n confirmPassword,\n email,\n firstName,\n lastName,\n password,\n preferredRegion,\n role,\n },\n formState: { errors },\n handleSubmit,\n reset,\n setValue,\n watch,\n };\n}\n","import { yupResolver } from \"@hookform/resolvers/yup\";\nimport { useForm } from \"react-hook-form\";\n\nimport { CreateLoginFormData, LoginFormData } from \"../../types/auth\";\nimport { loginSchema } from \"../../yupSchema/auth\";\n\nconst defaultValues: LoginFormData = {\n email: \"\",\n password: \"\",\n};\n\n/**\n * Custom hook to manage the login form state and validation.\n *\n * @returns {CreateLoginFormData} - The form methods and state.\n */\nexport function useLoginForm(): CreateLoginFormData {\n const {\n control,\n formState: { errors },\n getValues,\n handleSubmit,\n reset,\n setValue,\n watch,\n } = useForm<LoginFormData>({\n defaultValues,\n resolver: yupResolver(loginSchema),\n });\n\n const { email, password } = getValues();\n\n return {\n control,\n fields: {\n email,\n password,\n },\n formState: { errors },\n handleSubmit,\n reset,\n setValue,\n watch,\n };\n}\n","import { yupResolver } from \"@hookform/resolvers/yup\";\nimport { useForm } from \"react-hook-form\";\n\nimport { EnumRegions, EnumUserRole } from \"../../enums\";\nimport { CreateRegisterFormData, RegisterFormData } from \"../../types/auth\";\nimport { registerSchema } from \"../../yupSchema/auth\";\n\nconst defaultValues: RegisterFormData = {\n email: \"\",\n firstName: \"\",\n lastName: \"\",\n password: \"\",\n preferredRegion: \"\",\n role: EnumUserRole.CUSTOMER,\n};\n\n/**\n * Custom hook to manage the register form state and validation.\n *\n * @returns {CreateRegisterFormData} - The form methods and state.\n */\nexport function useRegisterForm(): CreateRegisterFormData {\n const {\n control,\n formState: { errors },\n getValues,\n handleSubmit,\n reset,\n setValue,\n watch,\n } = useForm<RegisterFormData>({\n defaultValues,\n resolver: yupResolver(registerSchema),\n });\n\n const { email, firstName, lastName, password, preferredRegion, role } =\n getValues();\n\n return {\n control,\n fields: {\n email,\n firstName,\n lastName,\n password,\n preferredRegion,\n role,\n },\n formState: { errors },\n handleSubmit,\n reset,\n setValue,\n watch,\n };\n}\n","import { yupResolver } from \"@hookform/resolvers/yup\";\nimport { useForm } from \"react-hook-form\";\n\nimport {\n CreateRequestPasswordResetFormData,\n RequestPasswordResetFormData,\n} from \"../../types/auth\";\nimport { requestPasswordResetSchema } from \"../../yupSchema/auth\";\n\nconst defaultValues: RequestPasswordResetFormData = {\n email: \"\",\n};\n\nexport function useRequestPasswordResetForm(): CreateRequestPasswordResetFormData {\n const {\n control,\n formState: { errors },\n getValues,\n handleSubmit,\n reset,\n setValue,\n watch,\n } = useForm<RequestPasswordResetFormData>({\n defaultValues,\n resolver: yupResolver(requestPasswordResetSchema),\n });\n\n const { email } = getValues();\n\n return {\n control,\n fields: {\n email,\n },\n formState: { errors },\n handleSubmit,\n reset,\n setValue,\n watch,\n };\n}\n","import { yupResolver } from \"@hookform/resolvers/yup\";\nimport { useForm } from \"react-hook-form\";\n\nimport {\n CreateValidateTokenFormData,\n ValidateTokenFormData,\n} from \"../../types/auth\";\nimport { validateTokenSchema } from \"../../yupSchema/auth\";\n\nconst defaultValues: ValidateTokenFormData = {\n email: \"\",\n token: \"\",\n};\n\nexport function useValidateTokenForm(): CreateValidateTokenFormData {\n const {\n control,\n formState: { errors },\n getValues,\n handleSubmit,\n reset,\n setValue,\n watch,\n } = useForm<ValidateTokenFormData>({\n defaultValues,\n resolver: yupResolver(validateTokenSchema),\n });\n\n const { email, token } = getValues();\n\n return {\n control,\n fields: {\n email,\n token,\n },\n formState: { errors },\n handleSubmit,\n reset,\n setValue,\n watch,\n };\n}\n","import { yupResolver } from \"@hookform/resolvers/yup\";\nimport { useForm } from \"react-hook-form\";\n\nimport {\n CreateResetPasswordFormData,\n ResetPasswordFormData,\n} from \"../../types/auth\";\nimport { resetPasswordSchema } from \"../../yupSchema/auth\";\n\nconst defaultValues: ResetPasswordFormData = {\n confirmPassword: \"\",\n email: \"\",\n password: \"\",\n};\n\nexport function useResetPasswordForm(): CreateResetPasswordFormData {\n const {\n control,\n formState: { errors },\n getValues,\n handleSubmit,\n reset,\n setValue,\n watch,\n } = useForm<ResetPasswordFormData>({\n defaultValues,\n resolver: yupResolver(resetPasswordSchema),\n });\n\n const { confirmPassword, email, password } = getValues();\n\n return {\n control,\n fields: {\n confirmPassword,\n email,\n password,\n },\n formState: { errors },\n handleSubmit,\n reset,\n setValue,\n watch,\n };\n}\n"],"mappings":"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","names":["yup","yup","yup","yup","yupResolver","React","useForm","useForm","yupResolver","yupResolver","React","useForm","useForm","yupResolver","yupResolver","React","useForm","useForm","yupResolver","yupResolver","React","useForm","useForm","yupResolver","yupResolver","useForm","defaultValues","useForm","yupResolver","yupResolver","useForm","defaultValues","useForm","yupResolver","yupResolver","useForm","defaultValues","useForm","yupResolver","yupResolver","useForm","defaultValues","useForm","yupResolver","yupResolver","useForm","defaultValues","useForm","yupResolver"]}
|
package/dist/index.cjs
CHANGED
|
@@ -63,6 +63,8 @@ __export(index_exports, {
|
|
|
63
63
|
mapArrayToOptions: () => mapArrayToOptions,
|
|
64
64
|
marketBasicInfoFields: () => marketBasicInfoFields,
|
|
65
65
|
marketEndDateFields: () => marketEndDateFields,
|
|
66
|
+
marketInfo: () => marketInfo,
|
|
67
|
+
marketInfoPaymentTarget: () => marketInfoPaymentTarget,
|
|
66
68
|
marketPriceByDateFields: () => marketPriceByDateFields,
|
|
67
69
|
marketStartDateFields: () => marketStartDateFields,
|
|
68
70
|
packagingOptions: () => packagingOptions,
|
|
@@ -75,8 +77,6 @@ __export(index_exports, {
|
|
|
75
77
|
requestPasswordResetFields: () => requestPasswordResetFields,
|
|
76
78
|
resetPasswordFields: () => resetPasswordFields,
|
|
77
79
|
sortDatesByProximity: () => sortDatesByProximity,
|
|
78
|
-
stallApplicationInfo: () => stallApplicationInfo,
|
|
79
|
-
stallApplicationInfoPaymentTarget: () => stallApplicationInfoPaymentTarget,
|
|
80
80
|
stallholderBasicInfoFields: () => stallholderBasicInfoFields,
|
|
81
81
|
stallholderElectricity: () => stallholderElectricity,
|
|
82
82
|
stallholderEndDateFields: () => stallholderEndDateFields,
|
|
@@ -557,12 +557,12 @@ var marketSchema = globalResourceSchema.shape({
|
|
|
557
557
|
dateTime: yup2.array().of(dateTimeSchema).required("DateTime is required"),
|
|
558
558
|
location: locationSchema,
|
|
559
559
|
provider: yup2.string().trim().min(3).required("Provider is required"),
|
|
560
|
-
tags: yup2.array().of(yup2.string().defined()).
|
|
560
|
+
tags: yup2.array().of(yup2.string().defined()).min(1, "Tags are required").required("Tags are required")
|
|
561
561
|
});
|
|
562
562
|
var marketInfoSchema = yup2.object().shape({
|
|
563
|
-
active: yup2.boolean().required("Active is required"),
|
|
564
563
|
applicationDeadlineHours: yup2.number().typeError("Application deadline hours must be a number").min(1, "Application deadline hours must be at least 1").required("Application deadline hours is required").test("no-leading-zeros", "", noLeadingZeros("Application deadline hours")),
|
|
565
564
|
dateTime: yup2.array().of(dateTimeWithPriceSchema).required("DateTime is required"),
|
|
565
|
+
marketId: yup2.string().trim().required("Market ID is required"),
|
|
566
566
|
paymentDueHours: yup2.number().typeError("Payment due hours must be a number").min(1, "Payment due hours must be at least 1").required("Payment due hours is required").test("no-leading-zeros", "", noLeadingZeros("Payment due hours")),
|
|
567
567
|
paymentMethod: yup2.mixed().oneOf(Object.values(EnumPaymentMethod)).required("Please select a Payment method"),
|
|
568
568
|
paymentTarget: yup2.object().when("paymentMethod", (paymentMethod, schema) => {
|
|
@@ -573,7 +573,9 @@ var marketInfoSchema = yup2.object().shape({
|
|
|
573
573
|
return schema.shape({
|
|
574
574
|
accountHolderName: yup2.string().notRequired(),
|
|
575
575
|
accountNumber: yup2.string().notRequired(),
|
|
576
|
-
link: yup2.string().trim().
|
|
576
|
+
link: yup2.string().trim().url("Link must be a valid URL").transform(
|
|
577
|
+
(value) => typeof value === "string" ? value.toLowerCase() : value
|
|
578
|
+
).required("Link is required for PayPal/Stripe")
|
|
577
579
|
});
|
|
578
580
|
} else if (isBankTransfer) {
|
|
579
581
|
return schema.shape({
|
|
@@ -582,7 +584,9 @@ var marketInfoSchema = yup2.object().shape({
|
|
|
582
584
|
nzBankAccountRegex,
|
|
583
585
|
"Account number must be in format: XX-XXXX-XXXXXXX-XX"
|
|
584
586
|
),
|
|
585
|
-
link: yup2.string().
|
|
587
|
+
link: yup2.string().transform(
|
|
588
|
+
(value) => typeof value === "string" ? value.toLowerCase() : value
|
|
589
|
+
).notRequired()
|
|
586
590
|
});
|
|
587
591
|
} else {
|
|
588
592
|
return schema.shape({
|
|
@@ -616,7 +620,6 @@ var stallHolderSchema = globalResourceSchema.shape({
|
|
|
616
620
|
products: yup3.array().of(yup3.string().defined()).min(1, "Product list must contain at least one item").required("Products are required")
|
|
617
621
|
});
|
|
618
622
|
var stallholderApplyFormSchema = yup3.object().shape({
|
|
619
|
-
active: yup3.boolean().required("Active is required"),
|
|
620
623
|
electricity: yup3.object().shape({
|
|
621
624
|
details: yup3.string().trim().test("details-required", "Please add details", function(value) {
|
|
622
625
|
return !this.parent?.isRequired || (value?.trim().length ?? 0) > 0;
|
|
@@ -645,6 +648,7 @@ var stallholderApplyFormSchema = yup3.object().shape({
|
|
|
645
648
|
min: yup3.number().min(1).required("Min price is required")
|
|
646
649
|
}),
|
|
647
650
|
producedIn: yup3.array().of(yup3.string().defined()).min(1, "Produced in list must contain at least one item").required("Produced in is required"),
|
|
651
|
+
stallholderId: yup3.string().trim().required("Stallholder ID is required"),
|
|
648
652
|
stallSize: yup3.object().shape({
|
|
649
653
|
depth: yup3.number().min(1).required("Depth is required"),
|
|
650
654
|
width: yup3.number().min(1).required("Width is required")
|
|
@@ -748,10 +752,9 @@ var defaultMarketFormValues = {
|
|
|
748
752
|
// Default type for GeoJSON
|
|
749
753
|
},
|
|
750
754
|
provider: "Provider name",
|
|
751
|
-
tags:
|
|
755
|
+
tags: []
|
|
752
756
|
};
|
|
753
757
|
var defaultMarketInfoFormValues = {
|
|
754
|
-
active: false,
|
|
755
758
|
applicationDeadlineHours: 0,
|
|
756
759
|
dateTime: [
|
|
757
760
|
{
|
|
@@ -769,6 +772,7 @@ var defaultMarketInfoFormValues = {
|
|
|
769
772
|
startTime: "09:00"
|
|
770
773
|
}
|
|
771
774
|
],
|
|
775
|
+
marketId: "",
|
|
772
776
|
paymentDueHours: 0,
|
|
773
777
|
paymentMethod: "",
|
|
774
778
|
paymentTarget: {
|
|
@@ -784,11 +788,10 @@ var defaultStallholderFormValues = {
|
|
|
784
788
|
categories: [],
|
|
785
789
|
locations: null,
|
|
786
790
|
multiLocation: false,
|
|
787
|
-
products: [
|
|
791
|
+
products: [],
|
|
788
792
|
specialities: null
|
|
789
793
|
};
|
|
790
794
|
var defaultStallholderApplyFormValues = {
|
|
791
|
-
active: false,
|
|
792
795
|
electricity: { details: null, isRequired: false },
|
|
793
796
|
foodSafetyGradeFiles: null,
|
|
794
797
|
foodSafetyGradeFilesUpload: null,
|
|
@@ -797,6 +800,7 @@ var defaultStallholderApplyFormValues = {
|
|
|
797
800
|
paymentMethod: "",
|
|
798
801
|
priceRange: { max: 0, min: 0 },
|
|
799
802
|
producedIn: [],
|
|
803
|
+
stallholderId: "",
|
|
800
804
|
stallSize: { depth: 0, width: 0 },
|
|
801
805
|
table: { details: null, isRequired: false }
|
|
802
806
|
};
|
|
@@ -909,7 +913,6 @@ function useStallholderApplyForm(data) {
|
|
|
909
913
|
if (data) {
|
|
910
914
|
reset({
|
|
911
915
|
_id: data._id,
|
|
912
|
-
active: data.active,
|
|
913
916
|
electricity: data.electricity,
|
|
914
917
|
foodSafetyGradeFiles: data.foodSafetyGradeFiles,
|
|
915
918
|
foodSafetyGradeFilesUpload: data.foodSafetyGradeFilesUpload,
|
|
@@ -918,6 +921,7 @@ function useStallholderApplyForm(data) {
|
|
|
918
921
|
paymentMethod: data.paymentMethod,
|
|
919
922
|
priceRange: data.priceRange,
|
|
920
923
|
producedIn: data.producedIn,
|
|
924
|
+
stallholderId: data.stallholderId,
|
|
921
925
|
stallSize: data.stallSize,
|
|
922
926
|
table: data.table
|
|
923
927
|
});
|
|
@@ -927,7 +931,6 @@ function useStallholderApplyForm(data) {
|
|
|
927
931
|
}, [data]);
|
|
928
932
|
const {
|
|
929
933
|
_id,
|
|
930
|
-
active,
|
|
931
934
|
electricity,
|
|
932
935
|
foodSafetyGradeFiles,
|
|
933
936
|
foodSafetyGradeFilesUpload,
|
|
@@ -936,6 +939,7 @@ function useStallholderApplyForm(data) {
|
|
|
936
939
|
paymentMethod,
|
|
937
940
|
priceRange,
|
|
938
941
|
producedIn,
|
|
942
|
+
stallholderId,
|
|
939
943
|
stallSize,
|
|
940
944
|
table
|
|
941
945
|
} = getValues();
|
|
@@ -943,7 +947,6 @@ function useStallholderApplyForm(data) {
|
|
|
943
947
|
control,
|
|
944
948
|
fields: {
|
|
945
949
|
_id,
|
|
946
|
-
active,
|
|
947
950
|
electricity,
|
|
948
951
|
foodSafetyGradeFiles,
|
|
949
952
|
foodSafetyGradeFilesUpload,
|
|
@@ -952,6 +955,7 @@ function useStallholderApplyForm(data) {
|
|
|
952
955
|
paymentMethod,
|
|
953
956
|
priceRange,
|
|
954
957
|
producedIn,
|
|
958
|
+
stallholderId,
|
|
955
959
|
stallSize,
|
|
956
960
|
table
|
|
957
961
|
},
|
|
@@ -1069,9 +1073,9 @@ function useMarketInfoForm(data) {
|
|
|
1069
1073
|
if (data) {
|
|
1070
1074
|
reset({
|
|
1071
1075
|
_id: data._id,
|
|
1072
|
-
active: data.active,
|
|
1073
1076
|
applicationDeadlineHours: data.applicationDeadlineHours,
|
|
1074
1077
|
dateTime: data.dateTime,
|
|
1078
|
+
marketId: data.marketId,
|
|
1075
1079
|
paymentDueHours: data.paymentDueHours,
|
|
1076
1080
|
paymentMethod: data.paymentMethod,
|
|
1077
1081
|
paymentTarget: data.paymentTarget,
|
|
@@ -1084,9 +1088,9 @@ function useMarketInfoForm(data) {
|
|
|
1084
1088
|
}, [data]);
|
|
1085
1089
|
const {
|
|
1086
1090
|
_id,
|
|
1087
|
-
active,
|
|
1088
1091
|
applicationDeadlineHours,
|
|
1089
1092
|
dateTime,
|
|
1093
|
+
marketId,
|
|
1090
1094
|
paymentDueHours,
|
|
1091
1095
|
paymentMethod,
|
|
1092
1096
|
paymentTarget,
|
|
@@ -1097,9 +1101,9 @@ function useMarketInfoForm(data) {
|
|
|
1097
1101
|
control,
|
|
1098
1102
|
fields: {
|
|
1099
1103
|
_id,
|
|
1100
|
-
active,
|
|
1101
1104
|
applicationDeadlineHours,
|
|
1102
1105
|
dateTime,
|
|
1106
|
+
marketId,
|
|
1103
1107
|
paymentDueHours,
|
|
1104
1108
|
paymentMethod,
|
|
1105
1109
|
paymentTarget,
|
|
@@ -1732,7 +1736,6 @@ var MARKET_LOCATION_FIELDS_FRAGMENT = import_client8.gql`
|
|
|
1732
1736
|
var MARKET_INFO = import_client8.gql`
|
|
1733
1737
|
fragment MarketInfoFields on MarketInfoType {
|
|
1734
1738
|
_id
|
|
1735
|
-
active
|
|
1736
1739
|
applicationDeadlineHours
|
|
1737
1740
|
dateTime {
|
|
1738
1741
|
endDate
|
|
@@ -1953,7 +1956,6 @@ var STALLHOLDER = import_client10.gql`
|
|
|
1953
1956
|
var STALLHOLDER_APPLY_FORM = import_client10.gql`
|
|
1954
1957
|
fragment StallholderApplyFormFields on StallholderApplyFormType {
|
|
1955
1958
|
_id
|
|
1956
|
-
active
|
|
1957
1959
|
electricity {
|
|
1958
1960
|
details
|
|
1959
1961
|
isRequired
|
|
@@ -2195,8 +2197,8 @@ var useGetMarketInfo = (marketId) => {
|
|
|
2195
2197
|
skip: !marketId,
|
|
2196
2198
|
variables: { marketId }
|
|
2197
2199
|
});
|
|
2198
|
-
const
|
|
2199
|
-
return { error, loading, marketInfo, refetch };
|
|
2200
|
+
const marketInfo2 = data?.marketInfo;
|
|
2201
|
+
return { error, loading, marketInfo: marketInfo2, refetch };
|
|
2200
2202
|
};
|
|
2201
2203
|
|
|
2202
2204
|
// src/graphql/hooks/poster.ts
|
|
@@ -3198,43 +3200,46 @@ var availableTagTypes = [
|
|
|
3198
3200
|
"Near Playground",
|
|
3199
3201
|
"Port Nearby"
|
|
3200
3202
|
];
|
|
3201
|
-
var tagOptions =
|
|
3203
|
+
var tagOptions = availableTagTypes.map((tag) => ({
|
|
3204
|
+
label: tag,
|
|
3205
|
+
value: tag
|
|
3206
|
+
}));
|
|
3202
3207
|
|
|
3203
3208
|
// src/formFields/market/marketInfo.ts
|
|
3204
|
-
var
|
|
3209
|
+
var marketInfo = [
|
|
3205
3210
|
{
|
|
3206
3211
|
helperText: "Application Deadline of the Market *",
|
|
3207
3212
|
keyboardType: "number-pad",
|
|
3208
|
-
name: "
|
|
3213
|
+
name: "applicationDeadlineHours",
|
|
3209
3214
|
placeholder: "Application Deadline Hours"
|
|
3210
3215
|
},
|
|
3211
3216
|
{
|
|
3212
3217
|
helperText: "Stall Capacity of the Market *",
|
|
3213
3218
|
keyboardType: "number-pad",
|
|
3214
|
-
name: "
|
|
3219
|
+
name: "stallCapacity",
|
|
3215
3220
|
placeholder: "Stall Capacity"
|
|
3216
3221
|
},
|
|
3217
3222
|
{
|
|
3218
3223
|
helperText: "Payment Due Hours of the Market *",
|
|
3219
3224
|
keyboardType: "number-pad",
|
|
3220
|
-
name: "
|
|
3225
|
+
name: "paymentDueHours",
|
|
3221
3226
|
placeholder: "Payment Due Hours"
|
|
3222
3227
|
}
|
|
3223
3228
|
];
|
|
3224
|
-
var
|
|
3229
|
+
var marketInfoPaymentTarget = [
|
|
3225
3230
|
{
|
|
3226
3231
|
helperText: "Account holder name *",
|
|
3227
|
-
name: "
|
|
3232
|
+
name: "paymentTarget.accountHolderName",
|
|
3228
3233
|
placeholder: "Account holder name"
|
|
3229
3234
|
},
|
|
3230
3235
|
{
|
|
3231
3236
|
helperText: "Account number *",
|
|
3232
|
-
name: "
|
|
3237
|
+
name: "paymentTarget.accountNumber",
|
|
3233
3238
|
placeholder: "Account number"
|
|
3234
3239
|
},
|
|
3235
3240
|
{
|
|
3236
3241
|
helperText: "Link to payment target *",
|
|
3237
|
-
name: "
|
|
3242
|
+
name: "paymentTarget.link",
|
|
3238
3243
|
placeholder: "Link to payment target"
|
|
3239
3244
|
}
|
|
3240
3245
|
];
|
|
@@ -3706,6 +3711,8 @@ var categoryColors = {
|
|
|
3706
3711
|
mapArrayToOptions,
|
|
3707
3712
|
marketBasicInfoFields,
|
|
3708
3713
|
marketEndDateFields,
|
|
3714
|
+
marketInfo,
|
|
3715
|
+
marketInfoPaymentTarget,
|
|
3709
3716
|
marketPriceByDateFields,
|
|
3710
3717
|
marketStartDateFields,
|
|
3711
3718
|
packagingOptions,
|
|
@@ -3718,8 +3725,6 @@ var categoryColors = {
|
|
|
3718
3725
|
requestPasswordResetFields,
|
|
3719
3726
|
resetPasswordFields,
|
|
3720
3727
|
sortDatesByProximity,
|
|
3721
|
-
stallApplicationInfo,
|
|
3722
|
-
stallApplicationInfoPaymentTarget,
|
|
3723
3728
|
stallholderBasicInfoFields,
|
|
3724
3729
|
stallholderElectricity,
|
|
3725
3730
|
stallholderEndDateFields,
|