@timardex/cluemart-shared 1.5.704 → 1.5.706

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/index.mjs CHANGED
@@ -32,13 +32,13 @@ var EnumPaymentMethod = /* @__PURE__ */ ((EnumPaymentMethod2) => {
32
32
  EnumPaymentMethod2["STRIPE"] = "stripe";
33
33
  return EnumPaymentMethod2;
34
34
  })(EnumPaymentMethod || {});
35
- var EnumFoodFlavor = /* @__PURE__ */ ((EnumFoodFlavor3) => {
36
- EnumFoodFlavor3["SALTY"] = "Salty";
37
- EnumFoodFlavor3["SAVOURY"] = "Savoury";
38
- EnumFoodFlavor3["SPICY"] = "Spicy";
39
- EnumFoodFlavor3["SWEET"] = "Sweet";
40
- EnumFoodFlavor3["OTHER"] = "Not_Applicable";
41
- return EnumFoodFlavor3;
35
+ var EnumFoodFlavor = /* @__PURE__ */ ((EnumFoodFlavor2) => {
36
+ EnumFoodFlavor2["SALTY"] = "Salty";
37
+ EnumFoodFlavor2["SAVOURY"] = "Savoury";
38
+ EnumFoodFlavor2["SPICY"] = "Spicy";
39
+ EnumFoodFlavor2["SWEET"] = "Sweet";
40
+ EnumFoodFlavor2["OTHER"] = "Not_Applicable";
41
+ return EnumFoodFlavor2;
42
42
  })(EnumFoodFlavor || {});
43
43
  var EnumFoodType = /* @__PURE__ */ ((EnumFoodType2) => {
44
44
  EnumFoodType2["ADDITIVE_FREE"] = "Additive_Free";
@@ -84,23 +84,23 @@ var EnumResourceType = /* @__PURE__ */ ((EnumResourceType2) => {
84
84
  EnumResourceType2["PARTNER"] = "partner";
85
85
  return EnumResourceType2;
86
86
  })(EnumResourceType || {});
87
- var EnumEventType = /* @__PURE__ */ ((EnumEventType3) => {
88
- EnumEventType3["MARKET"] = "Market";
89
- EnumEventType3["EXPO"] = "Expo";
90
- EnumEventType3["FAIR"] = "Fair";
91
- EnumEventType3["FESTIVAL"] = "Festival";
92
- return EnumEventType3;
87
+ var EnumEventType = /* @__PURE__ */ ((EnumEventType2) => {
88
+ EnumEventType2["MARKET"] = "Market";
89
+ EnumEventType2["EXPO"] = "Expo";
90
+ EnumEventType2["FAIR"] = "Fair";
91
+ EnumEventType2["FESTIVAL"] = "Festival";
92
+ return EnumEventType2;
93
93
  })(EnumEventType || {});
94
94
  var EnumVendorType = /* @__PURE__ */ ((EnumVendorType2) => {
95
95
  EnumVendorType2["STALLHOLDER"] = "Stallholder";
96
96
  EnumVendorType2["SHOP"] = "Shop";
97
97
  return EnumVendorType2;
98
98
  })(EnumVendorType || {});
99
- var EnumPartnerType = /* @__PURE__ */ ((EnumPartnerType3) => {
100
- EnumPartnerType3["CHARITY_PARTNER"] = "Charity_Partner";
101
- EnumPartnerType3["MEDIA_PARTNER"] = "Media_Partner";
102
- EnumPartnerType3["SUPPORTING_PARTNER"] = "Supporting_Partner";
103
- return EnumPartnerType3;
99
+ var EnumPartnerType = /* @__PURE__ */ ((EnumPartnerType2) => {
100
+ EnumPartnerType2["CHARITY_PARTNER"] = "Charity_Partner";
101
+ EnumPartnerType2["MEDIA_PARTNER"] = "Media_Partner";
102
+ EnumPartnerType2["SUPPORTING_PARTNER"] = "Supporting_Partner";
103
+ return EnumPartnerType2;
104
104
  })(EnumPartnerType || {});
105
105
  var EnumOSPlatform = /* @__PURE__ */ ((EnumOSPlatform2) => {
106
106
  EnumOSPlatform2["ANDROID"] = "android";
@@ -553,8 +553,8 @@ dayjs.extend(utc);
553
553
  dayjs.extend(timezone);
554
554
  dayjs.extend(isSameOrAfter);
555
555
  var NZ_TZ = "Pacific/Auckland";
556
- function toNZTime(date3) {
557
- return date3 ? dayjs(date3).tz(NZ_TZ) : dayjs().tz(NZ_TZ);
556
+ function toNZTime(date) {
557
+ return date ? dayjs(date).tz(NZ_TZ) : dayjs().tz(NZ_TZ);
558
558
  }
559
559
  function nzStartOfDay(input) {
560
560
  if (input == null) {
@@ -588,10 +588,10 @@ var getCurrentAndFutureDates = (dates) => {
588
588
  return dateTime.isSameOrAfter(now);
589
589
  });
590
590
  };
591
- var isFutureDatesBeforeThreshold = (date3, minHoursFromNow) => {
591
+ var isFutureDatesBeforeThreshold = (date, minHoursFromNow) => {
592
592
  const threshold = minHoursFromNow ? dayjs().add(minHoursFromNow, "hour") : dayjs().startOf("day");
593
593
  const dateTime = dayjs(
594
- `${date3.startDate} ${date3.startTime}`,
594
+ `${date.startDate} ${date.startTime}`,
595
595
  `${dateFormat} ${timeFormat}`
596
596
  );
597
597
  return dateTime.isSameOrAfter(threshold);
@@ -634,9 +634,9 @@ function hashStringToNumber(seed) {
634
634
  }
635
635
  return hash >>> 0;
636
636
  }
637
- function seededShuffle(array7, seed) {
637
+ function seededShuffle(array, seed) {
638
638
  const rng = createSeededRng(hashStringToNumber(seed));
639
- const result = [...array7];
639
+ const result = [...array];
640
640
  for (let i = result.length - 1; i > 0; i--) {
641
641
  const j = Math.floor(rng() * (i + 1));
642
642
  [result[i], result[j]] = [result[j], result[i]];
@@ -6188,8 +6188,18 @@ var LEAVE_GAME_MUTATION = gql34`
6188
6188
  }
6189
6189
  `;
6190
6190
  var UPDATE_DAILY_CLUE_MUTATION = gql34`
6191
- mutation updateDailyClueGame($_id: ID!, $foundLetter: String!) {
6192
- updateDailyClueGame(_id: $_id, foundLetter: $foundLetter) {
6191
+ mutation updateDailyClueGame(
6192
+ $_id: ID!
6193
+ $foundLetter: String!
6194
+ $gameType: GameTypeEnumType!
6195
+ $gameTypeId: ID!
6196
+ ) {
6197
+ updateDailyClueGame(
6198
+ _id: $_id
6199
+ foundLetter: $foundLetter
6200
+ gameType: $gameType
6201
+ gameTypeId: $gameTypeId
6202
+ ) {
6193
6203
  ...GameDocFields
6194
6204
  }
6195
6205
  }
@@ -6503,1949 +6513,6 @@ var useGetSchool = (_id) => {
6503
6513
  };
6504
6514
  };
6505
6515
 
6506
- // src/hooks/useLocationSearch.ts
6507
- var handleApiError = (error, message) => {
6508
- console.error(message, error);
6509
- };
6510
- var useLocationSearch = (googleApi) => {
6511
- const getPredictions = async (text) => {
6512
- try {
6513
- const response = await fetch(
6514
- "https://places.googleapis.com/v1/places:autocomplete",
6515
- {
6516
- body: JSON.stringify({
6517
- input: `${text} New Zealand`,
6518
- languageCode: "en",
6519
- regionCode: "nz"
6520
- }),
6521
- headers: {
6522
- "Content-Type": "application/json",
6523
- "X-Goog-Api-Key": googleApi,
6524
- "X-Goog-FieldMask": "suggestions.placePrediction.placeId,suggestions.placePrediction.text.text"
6525
- },
6526
- method: "POST"
6527
- }
6528
- );
6529
- if (!response.ok) {
6530
- throw new Error(`HTTP error! Status: ${response.status}`);
6531
- }
6532
- const data = await response.json();
6533
- const suggestions = data.suggestions ?? [];
6534
- const predictions = suggestions.map((suggestion) => suggestion.placePrediction).filter(Boolean).map((prediction) => ({
6535
- description: prediction?.text?.text || "",
6536
- place_id: prediction?.placeId || ""
6537
- })).filter((prediction) => prediction.place_id && prediction.description);
6538
- return predictions;
6539
- } catch (error) {
6540
- console.error("Error fetching predictions:", error);
6541
- handleApiError(error, "Failed to fetch address predictions.");
6542
- }
6543
- };
6544
- const getPlaceDetails = async (placeId) => {
6545
- try {
6546
- const response = await fetch(
6547
- `https://places.googleapis.com/v1/places/${placeId}`,
6548
- {
6549
- headers: {
6550
- "X-Goog-Api-Key": googleApi,
6551
- "X-Goog-FieldMask": "addressComponents,formattedAddress,location"
6552
- }
6553
- }
6554
- );
6555
- if (!response.ok) {
6556
- throw new Error(`HTTP error! Status: ${response.status}`);
6557
- }
6558
- const result = await response.json();
6559
- const { latitude, longitude } = result.location;
6560
- const { addressComponents, formattedAddress } = result;
6561
- const address = addressComponents.reduce((acc, item) => {
6562
- if (!Array.isArray(item.types)) return acc;
6563
- if (item.types.includes("street_number")) {
6564
- return { ...acc, streetNumber: item.longText };
6565
- }
6566
- if (item.types.includes("route")) {
6567
- return { ...acc, streetName: item.longText };
6568
- }
6569
- if (item.types.includes("locality")) {
6570
- return { ...acc, city: item.longText };
6571
- }
6572
- if (item.types.includes("administrative_area_level_1")) {
6573
- return { ...acc, region: item.longText };
6574
- }
6575
- if (item.types.includes("country")) {
6576
- return { ...acc, country: item.longText };
6577
- }
6578
- return acc;
6579
- }, {});
6580
- const newLocation = {
6581
- city: address.city ? address.city.toLowerCase() : "",
6582
- country: address.country,
6583
- fullAddress: formattedAddress,
6584
- geo: {
6585
- coordinates: [longitude, latitude],
6586
- // [longitude, latitude]
6587
- type: "Point"
6588
- // Mongoose GeoJSON type
6589
- },
6590
- latitude,
6591
- longitude,
6592
- region: address.region ? address.region.replace(/ Region$/, "") : ""
6593
- // Remove " Region" suffix
6594
- };
6595
- return newLocation;
6596
- } catch (error) {
6597
- handleApiError(error, "Failed to fetch place details.");
6598
- }
6599
- };
6600
- return {
6601
- getPlaceDetails,
6602
- getPredictions
6603
- };
6604
- };
6605
-
6606
- // src/hooks/vendor/useVendorForm.ts
6607
- import { yupResolver } from "@hookform/resolvers/yup";
6608
- import * as React from "react";
6609
- import { useForm } from "react-hook-form";
6610
-
6611
- // src/yupSchema/global.ts
6612
- import dayjs2 from "dayjs";
6613
- import customParseFormat2 from "dayjs/plugin/customParseFormat.js";
6614
- import isSameOrAfter2 from "dayjs/plugin/isSameOrAfter.js";
6615
- import * as yup from "yup";
6616
- var nzBankAccountRegex = /^\d{2}-\d{4}-\d{7}-\d{2}$/;
6617
- var nzbnRegex = /^94\d{11}$/;
6618
- var normalizedUrlTransform = () => yup.string().trim().transform(
6619
- (value) => typeof value === "string" ? value.toLowerCase() : value
6620
- ).transform(
6621
- (value) => typeof value === "string" ? normalizeUrl(value) : value
6622
- );
6623
- var noLeadingZeros = (fieldName, options = {}) => {
6624
- return function(value, context) {
6625
- const original = context.originalValue;
6626
- if (typeof original !== "string") {
6627
- return true;
6628
- }
6629
- if (original === "") {
6630
- return true;
6631
- }
6632
- const regex = options.allowDecimal ? /^0\d+(\.\d+)?$/ : /^0\d+$/;
6633
- if (regex.test(original)) {
6634
- return context.createError({
6635
- message: `${fieldName} must not have leading zeros`
6636
- });
6637
- }
6638
- return true;
6639
- };
6640
- };
6641
- var toOptionalNumber = (originalValue) => {
6642
- if (originalValue === "" || originalValue === null || originalValue === void 0) {
6643
- return void 0;
6644
- }
6645
- let parsed;
6646
- if (typeof originalValue === "number") {
6647
- parsed = originalValue;
6648
- } else if (typeof originalValue === "string") {
6649
- parsed = Number(originalValue.replace(",", "."));
6650
- } else {
6651
- parsed = void 0;
6652
- }
6653
- return Number.isNaN(parsed) ? void 0 : parsed;
6654
- };
6655
- dayjs2.extend(isSameOrAfter2);
6656
- dayjs2.extend(customParseFormat2);
6657
- var emailRequiredSchema = yup.string().email("Invalid email address").required("Email is required").label("Email").transform(
6658
- (value) => typeof value === "string" ? value.trim().toLowerCase() : value
6659
- );
6660
- var emailOptionalSchema = yup.string().nullable().notRequired().transform(
6661
- (value) => typeof value === "string" ? value.trim().toLowerCase() : value
6662
- ).test(
6663
- "is-valid-email",
6664
- "Invalid email address",
6665
- (value) => !value || yup.string().email().isValidSync(value)
6666
- ).label("Email");
6667
- var mobileRegex = /^02\d{7,9}$/;
6668
- var landlineRegex = /^0[34679]\d{7}$/;
6669
- var mobilePhoneSchema = yup.string().label("Mobile Phone").nullable().notRequired().test(
6670
- "mobile-phone",
6671
- "Mobile must start with 02 and be 9\u201311 digits",
6672
- (value) => !value || mobileRegex.test(value)
6673
- // skip empty values
6674
- );
6675
- var landlinePhoneSchema = yup.string().label("Landline Phone").nullable().notRequired().test(
6676
- "landline-phone",
6677
- "Landline must start with 03, 04, 06, 07, or 09 (not 090) and have 7 digits after area code",
6678
- (value) => !value || landlineRegex.test(value)
6679
- // skip empty values
6680
- );
6681
- var contactDetailsSchema = yup.object({
6682
- email: emailOptionalSchema,
6683
- mobilePhone: mobilePhoneSchema,
6684
- landlinePhone: landlinePhoneSchema
6685
- }).nullable().default(void 0);
6686
- var endDateNotInPastTest = yup.string().test("not-in-past", "End date cannot be in the past", (value) => {
6687
- const now = dayjs2();
6688
- return value ? dayjs2(value, dateFormat, true).isSameOrAfter(now, "day") : false;
6689
- });
6690
- var startDateNotInPastTest = yup.string().test("not-in-past", "Start date cannot be in the past", (value) => {
6691
- const now = dayjs2();
6692
- return value ? dayjs2(value, dateFormat, true).isSameOrAfter(now, "day") : false;
6693
- });
6694
- var endDateAfterStartDateTest = yup.string().test(
6695
- "end-after-start",
6696
- "End date cannot be before start date",
6697
- function(value) {
6698
- const { startDate } = this.parent;
6699
- if (!startDate || !value) return false;
6700
- return dayjs2(value, dateFormat, true).isSameOrAfter(
6701
- dayjs2(startDate, dateFormat, true),
6702
- "day"
6703
- );
6704
- }
6705
- );
6706
- var endTimeMustBeAfterStartTimeTest = yup.string().test(
6707
- "valid-end-time",
6708
- "End time must be after start time",
6709
- function(value) {
6710
- const { startDate, endDate, startTime } = this.parent;
6711
- if (!startDate || !endDate || !startTime || !value) return false;
6712
- const startDateTime = dayjs2(
6713
- `${startDate} ${startTime}`,
6714
- `${dateFormat} ${timeFormat}`,
6715
- true
6716
- );
6717
- const endDateTime = dayjs2(
6718
- `${endDate} ${value}`,
6719
- `${dateFormat} ${timeFormat}`,
6720
- true
6721
- );
6722
- return endDateTime.isAfter(startDateTime);
6723
- }
6724
- );
6725
- var startTimeCannotBeInPastTest = yup.string().test(
6726
- "valid-start-time",
6727
- "Start time cannot be in the past",
6728
- function(value) {
6729
- const now = dayjs2();
6730
- const { startDate } = this.parent;
6731
- if (!startDate || !value) return false;
6732
- const startDateTime = dayjs2(
6733
- `${startDate} ${value}`,
6734
- `${dateFormat} ${timeFormat}`,
6735
- true
6736
- );
6737
- return startDateTime.isSameOrAfter(now);
6738
- }
6739
- );
6740
- var dateTimeSchema = yup.object().shape({
6741
- dateStatus: yup.mixed().oneOf(Object.values(EnumEventDateStatus)).required("Date status is required"),
6742
- endDate: yup.string().label("End Date").concat(endDateNotInPastTest).concat(endDateAfterStartDateTest).required("End date is required"),
6743
- endTime: yup.string().label("End Time").concat(endTimeMustBeAfterStartTimeTest).required("End time is required"),
6744
- startDate: yup.string().label("Start Date").concat(startDateNotInPastTest).required("Start date is required"),
6745
- startTime: yup.string().label("Start Time").concat(startTimeCannotBeInPastTest).required("Start time is required")
6746
- });
6747
- var stallTypesSchema = yup.object({
6748
- label: yup.string().trim().label("Stall Type").required("Stall type is required"),
6749
- price: yup.number().transform((_, originalValue) => toOptionalNumber(originalValue)).label("Stall Price").min(0.1, "Stall price must be at least 0.1").required("Stall price is required").test(
6750
- "no-leading-zeros",
6751
- "",
6752
- noLeadingZeros("Stall price", { allowDecimal: true })
6753
- ),
6754
- stallCapacity: yup.number().transform((_, originalValue) => toOptionalNumber(originalValue)).label("Stall Capacity").typeError("Stall capacity must be a number").min(0, "Stall capacity cannot be negative").integer("Stall capacity must be a whole number").required("Stall capacity is required").test("no-leading-zeros", "", noLeadingZeros("Stall capacity"))
6755
- });
6756
- var dateTimeWithPriceSchema = dateTimeSchema.shape({
6757
- stallTypes: yup.array().of(stallTypesSchema).min(1, "At least one stall type is required").required("Stall types are required")
6758
- });
6759
- var locationSchema = yup.object().shape({
6760
- city: yup.string().label("City").required("City is required"),
6761
- country: yup.string().label("Country").required("Country is required"),
6762
- fullAddress: yup.string().label("Address").required("Address is required"),
6763
- geo: yup.object().shape({
6764
- coordinates: yup.array().of(yup.number().required("Coordinates must be numbers")).length(
6765
- 2,
6766
- "Coordinates must contain exactly two numbers (longitude, latitude)"
6767
- ).required("Coordinates are required"),
6768
- type: yup.string().oneOf(["Point"], "Type must be 'Point'").default("Point").required("Type is required")
6769
- }),
6770
- latitude: yup.number().label("Latitude").required("Latitude is required"),
6771
- longitude: yup.number().label("Longitude").required("Longitude is required"),
6772
- region: yup.string().label("Region").required("Region is required")
6773
- });
6774
- var passwordSchema = yup.string().trim().label("Password").min(8, "Password must be at least 8 characters long").required("Password is required");
6775
- var socialMediaSchema = yup.object({
6776
- name: yup.mixed().oneOf(Object.values(EnumSocialMedia)).label("Social Media Name").optional(),
6777
- link: yup.string().when("name", {
6778
- is: (name) => !!name,
6779
- // If name has a value
6780
- then: () => normalizedUrlTransform().required("Link is required when name is set").url("Link must be a valid URL").label("Social Media Link"),
6781
- otherwise: (schema) => schema.notRequired()
6782
- })
6783
- });
6784
- var globalResourceSchema = yup.object().shape({
6785
- active: yup.boolean().required("Active is required"),
6786
- cover: yup.object({
6787
- source: yup.string().label("Cover").required("Cover Image is required"),
6788
- title: yup.string().label("Cover Title").required("Cover Title is required")
6789
- }),
6790
- contactDetails: contactDetailsSchema,
6791
- description: yup.string().label("Description").trim().min(50).required("Description is required"),
6792
- name: yup.string().label("Name").trim().min(3).required("Name is required"),
6793
- region: yup.string().label("Region").required("Region is required"),
6794
- socialMedia: yup.array().of(socialMediaSchema).nullable().default(null),
6795
- associates: yup.array().of(
6796
- yup.object().shape({
6797
- email: emailRequiredSchema,
6798
- resourceId: yup.string().label("Resource ID").required("Resource ID is required"),
6799
- resourceType: yup.mixed().oneOf(Object.values(EnumResourceType)).label("Resource Type").required("Resource Type is required"),
6800
- licence: yup.object({
6801
- expiryDate: yup.date().required("Expiry Date is required"),
6802
- issuedDate: yup.date().required("Issued Date is required"),
6803
- licenceType: yup.mixed().oneOf(Object.values(EnumUserLicence)).label("Licence Type").required("Licence Type is required")
6804
- })
6805
- })
6806
- ).nullable().default(null)
6807
- });
6808
- var categorySchema = yup.array().of(
6809
- yup.object().shape({
6810
- id: yup.string().required("Category id is required"),
6811
- name: yup.string().required("Category name is required"),
6812
- subcategories: yup.array().of(
6813
- yup.object().shape({
6814
- id: yup.string().defined(),
6815
- items: yup.array().of(
6816
- yup.object().shape({
6817
- id: yup.string().defined(),
6818
- name: yup.string().defined()
6819
- })
6820
- ).nullable(),
6821
- name: yup.string().defined()
6822
- })
6823
- ).min(1, "At least one subcategory is required").required("Subcategories are required")
6824
- })
6825
- );
6826
-
6827
- // src/yupSchema/event.ts
6828
- import * as yup2 from "yup";
6829
- var eventSchema = globalResourceSchema.shape({
6830
- dateTime: yup2.array().of(dateTimeSchema).min(1, "At least one Event date required").max(50, "You can only add up to 50 Event dates").required("DateTime is required").test(
6831
- "unique-start-date-time",
6832
- "Start Date and Start Time must be unique",
6833
- function(value) {
6834
- if (!value) return true;
6835
- const seen = /* @__PURE__ */ new Set();
6836
- for (const item of value) {
6837
- if (!item.startDate || !item.startTime) continue;
6838
- const key = `${item.startDate}_${item.startTime}`;
6839
- if (seen.has(key)) {
6840
- return false;
6841
- }
6842
- seen.add(key);
6843
- }
6844
- return true;
6845
- }
6846
- ),
6847
- eventType: yup2.mixed().oneOf(Object.values(EnumEventType), "Please select a valid Event type").required("Please select an Event type"),
6848
- location: locationSchema,
6849
- nzbn: yup2.string().required("NZBN is required").matches(nzbnRegex, "NZBN must be 13 digits and start with 94"),
6850
- rainOrShine: yup2.boolean().label("Rain or Shine").required("Please specify if the event is rain or shine"),
6851
- tags: yup2.array().of(yup2.string().defined()).min(1, "Tags are required").required("Tags are required")
6852
- });
6853
- var paymentInfoSchema = yup2.object({
6854
- paymentMethod: yup2.mixed().oneOf(
6855
- Object.values(EnumPaymentMethod),
6856
- "Please select a valid Payment method"
6857
- ).required("Please select a Payment method"),
6858
- accountHolderName: yup2.string().when("paymentMethod", {
6859
- is: "bank_transfer" /* BANK_TRANSFER */,
6860
- then: (schema) => schema.required("Account holder name is required for bank transfer").trim(),
6861
- otherwise: (schema) => schema.notRequired()
6862
- }),
6863
- accountNumber: yup2.string().when("paymentMethod", {
6864
- is: "bank_transfer" /* BANK_TRANSFER */,
6865
- then: (schema) => schema.required("Account number is required for bank transfer").matches(
6866
- nzBankAccountRegex,
6867
- "Account number must be in format: XX-XXXX-XXXXXXX-XX"
6868
- ).trim(),
6869
- otherwise: (schema) => schema.notRequired()
6870
- }),
6871
- link: yup2.string().when("paymentMethod", {
6872
- is: (val) => val === "paypal" /* PAYPAL */ || val === "stripe" /* STRIPE */,
6873
- then: () => normalizedUrlTransform().url("Link must be a valid URL").required("Link is required for PayPal/Stripe"),
6874
- otherwise: (schema) => schema.notRequired()
6875
- })
6876
- });
6877
- var eventInfoSchema = yup2.object().shape({
6878
- applicationDeadlineHours: yup2.number().label("Application Deadline Hours").nullable().transform((value, originalValue) => originalValue === "" ? null : value).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")),
6879
- dateTime: yup2.array().of(dateTimeWithPriceSchema).required("DateTime is required"),
6880
- eventId: yup2.string().trim().required("Event ID is required"),
6881
- packInTime: yup2.number().transform((_, originalValue) => toOptionalNumber(originalValue)).label("Pack In Time").typeError("Pack in time must be a number").min(1, "Pack in time must be at least 1").required("Pack in time is required").test("no-leading-zeros", "", noLeadingZeros("Pack in time")),
6882
- paymentDueHours: yup2.number().transform((_, originalValue) => toOptionalNumber(originalValue)).label("Payment Due Hours").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")).test(
6883
- "payment-before-deadline",
6884
- "Payment due hours must be less than application deadline hours",
6885
- function(value) {
6886
- const { applicationDeadlineHours } = this.parent;
6887
- return value < applicationDeadlineHours;
6888
- }
6889
- ),
6890
- paymentInfo: yup2.array().of(paymentInfoSchema).min(1, "At least one payment method is required").required("Payment info is required"),
6891
- refundPolicy: yup2.array().of(
6892
- yup2.object({
6893
- category: yup2.mixed().required("Category is required"),
6894
- label: yup2.string().required("Label is required"),
6895
- value: yup2.boolean().required("Value is required")
6896
- })
6897
- ).min(1, "At least one refund policy item is required").test(
6898
- "at-least-one-true",
6899
- "At least one refund policy option must be selected",
6900
- (value) => {
6901
- if (!value) return false;
6902
- return value.some((item) => item.value === true);
6903
- }
6904
- ).required("Refund policy is required")
6905
- });
6906
-
6907
- // src/yupSchema/vendor.ts
6908
- import * as yup3 from "yup";
6909
- var vendorMenuSchema = yup3.object({
6910
- description: yup3.string().nullable().optional(),
6911
- name: yup3.string().nullable().required("Product name is required"),
6912
- price: yup3.number().transform((v, o) => o === "" ? null : v).min(1, "Product price must be greater than 0").required("Product price is required"),
6913
- priceUnit: yup3.string().required("Product unit is required")
6914
- });
6915
- var vendorSchema = globalResourceSchema.shape({
6916
- categories: categorySchema.min(1, "Category list must contain at least one item").required("Categories are required"),
6917
- foodTruck: yup3.boolean().label("Food Truck").required("Please specify if the vendor is a food truck"),
6918
- products: yup3.object().shape({
6919
- active: yup3.boolean().nullable().optional(),
6920
- productsList: yup3.array().of(vendorMenuSchema).nullable().optional()
6921
- }).nullable().optional(),
6922
- vendorType: yup3.mixed().oneOf(Object.values(EnumVendorType)).required("Please select a Vendor type")
6923
- });
6924
- var unregisteredVendorSchema = yup3.object().shape({
6925
- categoryIds: yup3.array().of(yup3.string().defined()).min(1, "Category list must contain at least one item").required("Categories are required"),
6926
- dateTime: yup3.array().of(dateTimeSchema).min(1, "DateTime list must contain at least one item").required("DateTime is required"),
6927
- email: emailOptionalSchema,
6928
- inviterId: yup3.string().required("Inviter ID is required"),
6929
- name: yup3.string().label("Stallholder Name").trim().min(3, "Name must be at least 3 characters").required("Name is required"),
6930
- region: yup3.string().label("Region").required("Region is required")
6931
- });
6932
- var vendorInfoSchema = yup3.object().shape({
6933
- product: yup3.object().shape({
6934
- foodFlavors: yup3.array().of(
6935
- yup3.mixed().oneOf(Object.values(EnumFoodFlavor), "Invalid flavor selected").required("Flavor is required")
6936
- ).min(1, "Food flavors list must contain at least one item").required("Food flavors are required"),
6937
- packaging: yup3.array().of(yup3.string().defined()).min(1, "Packaging list must contain at least one item").required("Packaging is required"),
6938
- priceRange: yup3.object().shape({
6939
- max: yup3.string().required("Max price is required").test(
6940
- "is-number",
6941
- "Max price must be a valid number",
6942
- (value) => value !== void 0 && value !== "" && !isNaN(Number(value))
6943
- ).test(
6944
- "is-greater",
6945
- "Max price must be greater than or equal to Min price",
6946
- function(max) {
6947
- const { min } = this.parent;
6948
- if (!max || !min) return true;
6949
- const maxNum = Number(max);
6950
- const minNum = Number(min);
6951
- if (isNaN(maxNum) || isNaN(minNum)) return true;
6952
- return maxNum >= minNum;
6953
- }
6954
- ),
6955
- min: yup3.string().required("Min price is required").test(
6956
- "is-number",
6957
- "Min price must be a valid number",
6958
- (value) => value !== void 0 && value !== "" && !isNaN(Number(value))
6959
- )
6960
- }),
6961
- producedIn: yup3.array().of(yup3.string().defined()).min(1, "Produced in list must contain at least one item").required("Produced in is required")
6962
- }),
6963
- requirements: yup3.object().shape({
6964
- electricity: yup3.object().shape({
6965
- details: yup3.string().trim().test(
6966
- "details-required",
6967
- "Please add electricity details",
6968
- function(value) {
6969
- return !this.parent?.isRequired || (value?.trim().length ?? 0) > 0;
6970
- }
6971
- ).nullable(),
6972
- isRequired: yup3.boolean().required("Electricity requirement is required")
6973
- }),
6974
- gazebo: yup3.object().shape({
6975
- details: yup3.string().trim().test(
6976
- "details-required",
6977
- "Please add gazebo details",
6978
- function(value) {
6979
- return !this.parent?.isRequired || (value?.trim().length ?? 0) > 0;
6980
- }
6981
- ).nullable(),
6982
- isRequired: yup3.boolean().required("Gazebo requirement is required")
6983
- }),
6984
- table: yup3.object().shape({
6985
- details: yup3.string().trim().test(
6986
- "details-required",
6987
- "Please add table details",
6988
- function(value) {
6989
- return !this.parent?.isRequired || (value?.trim().length ?? 0) > 0;
6990
- }
6991
- ).nullable(),
6992
- isRequired: yup3.boolean().required("Table requirement is required")
6993
- })
6994
- }).optional(),
6995
- stallInfo: yup3.object().shape({
6996
- size: yup3.object().shape({
6997
- depth: yup3.string().required("Depth is required").test(
6998
- "is-number",
6999
- "Depth must be a valid number",
7000
- (value) => value !== void 0 && value !== "" && !isNaN(Number(value))
7001
- ).test(
7002
- "is-positive",
7003
- "Depth must be greater than 0",
7004
- (value) => value !== void 0 && value !== "" && Number(value) > 0
7005
- ),
7006
- width: yup3.string().required("Width is required").test(
7007
- "is-number",
7008
- "Width must be a valid number",
7009
- (value) => value !== void 0 && value !== "" && !isNaN(Number(value))
7010
- ).test(
7011
- "is-positive",
7012
- "Width must be greater than 0",
7013
- (value) => value !== void 0 && value !== "" && Number(value) > 0
7014
- )
7015
- })
7016
- }),
7017
- vendorId: yup3.string().trim().required("Vendor ID is required")
7018
- });
7019
-
7020
- // src/yupSchema/user.ts
7021
- import * as yup4 from "yup";
7022
- var userSchema = yup4.object().shape({
7023
- active: yup4.boolean().required("Active is required"),
7024
- email: emailRequiredSchema,
7025
- firstName: yup4.string().label("First Name").trim().required("First name is required"),
7026
- lastName: yup4.string().label("Last Name").trim().required("Last name is required"),
7027
- isTester: yup4.boolean().required("Tester status is required"),
7028
- password: yup4.string().nullable().trim().label("Password").min(8, "Password must be at least 8 characters long").notRequired(),
7029
- preferredRegion: yup4.string().label("Preferred Region").required("Preferred region is required"),
7030
- confirmPassword: yup4.string().nullable().trim().label("Confirm Password").when("password", {
7031
- is: (val) => !!val,
7032
- // only necessary if password typed
7033
- then: (schema) => schema.required("Confirm Password is required").oneOf([yup4.ref("password")], "Passwords must match"),
7034
- otherwise: (schema) => schema.notRequired()
7035
- }),
7036
- role: yup4.mixed().oneOf(Object.values(EnumUserRole)).required("Role is required")
7037
- });
7038
-
7039
- // src/yupSchema/auth.ts
7040
- import * as yup5 from "yup";
7041
- var loginSchema = yup5.object().shape({
7042
- email: emailRequiredSchema,
7043
- password: passwordSchema
7044
- });
7045
- var registerSchema = yup5.object().shape({
7046
- email: emailRequiredSchema,
7047
- firstName: yup5.string().label("First Name").required("First Name is required"),
7048
- lastName: yup5.string().label("Last Name").required("Last Name is required"),
7049
- password: passwordSchema,
7050
- preferredRegion: yup5.string().label("Preferred Region").required("Preferred Region is required")
7051
- });
7052
- var requestPasswordResetSchema = yup5.object().shape({
7053
- email: emailRequiredSchema
7054
- });
7055
- var resetPasswordSchema = yup5.object().shape({
7056
- email: emailRequiredSchema,
7057
- password: passwordSchema,
7058
- // eslint-disable-next-line sort-keys
7059
- confirmPassword: yup5.string().oneOf([yup5.ref("password")], "Passwords must match").required("Confirm Password is required")
7060
- });
7061
- var validateVerificationTokenSchema = yup5.object().shape({
7062
- email: emailRequiredSchema,
7063
- verificationToken: yup5.string().required("Verification code is required").matches(/^\d{6}$/, "Verification code must be exactly 6 digits")
7064
- });
7065
-
7066
- // src/yupSchema/ad.ts
7067
- import * as yup6 from "yup";
7068
-
7069
- // src/types/ad.ts
7070
- var EnumAdShowOn = /* @__PURE__ */ ((EnumAdShowOn2) => {
7071
- EnumAdShowOn2["EVENTS_PAGE"] = "Events_page";
7072
- EnumAdShowOn2["FRONT_PAGE"] = "Front_page";
7073
- EnumAdShowOn2["PARTNERS_PAGE"] = "Partners_page";
7074
- EnumAdShowOn2["VENDORS_PAGE"] = "Vendors_page";
7075
- return EnumAdShowOn2;
7076
- })(EnumAdShowOn || {});
7077
- var EnumAdStatus = /* @__PURE__ */ ((EnumAdStatus2) => {
7078
- EnumAdStatus2["ACTIVE"] = "Active";
7079
- EnumAdStatus2["PAUSED"] = "Paused";
7080
- EnumAdStatus2["EXPIRED"] = "Expired";
7081
- return EnumAdStatus2;
7082
- })(EnumAdStatus || {});
7083
- var EnumAdType = /* @__PURE__ */ ((EnumAdType2) => {
7084
- EnumAdType2["SPONSORED"] = "Sponsored";
7085
- EnumAdType2["FREE"] = "Free";
7086
- return EnumAdType2;
7087
- })(EnumAdType || {});
7088
- var EnumAdStyle = /* @__PURE__ */ ((EnumAdStyle2) => {
7089
- EnumAdStyle2["BLOOM"] = "Bloom";
7090
- EnumAdStyle2["RISE"] = "Rise";
7091
- return EnumAdStyle2;
7092
- })(EnumAdStyle || {});
7093
-
7094
- // src/yupSchema/ad.ts
7095
- var adResourceSchema = yup6.object({
7096
- adDescription: yup6.string().trim().required("Ad description is required").max(150, "Ad description must be at most 150 characters"),
7097
- adImage: yup6.string().required("Ad image is required"),
7098
- adStyle: yup6.mixed().oneOf(Object.values(EnumAdStyle), "Please select a valid ad style").required("Ad style is required"),
7099
- adTitle: yup6.string().trim().required("Ad title is required").max(30, "Ad title must be at most 30 characters"),
7100
- adType: yup6.mixed().oneOf(Object.values(EnumAdType), "Please select a valid ad type").required("Ad type is required"),
7101
- resourceId: yup6.string().required("Resource ID is required"),
7102
- resourceName: yup6.string().required("Resource name is required"),
7103
- resourceRegion: yup6.string().required("Resource region is required"),
7104
- resourceType: yup6.mixed().oneOf(Object.values(EnumResourceType), "Please select Event or Vendor").required("Resource type is required")
7105
- });
7106
- var adSchema = yup6.object().shape({
7107
- active: yup6.boolean().required("Active status is required"),
7108
- end: yup6.date().required("End date is required").test("is-future-date", "End date must be in the future", (value) => {
7109
- if (!value) return false;
7110
- const endDate = new Date(value);
7111
- const now = /* @__PURE__ */ new Date();
7112
- return endDate > now;
7113
- }).when("start", {
7114
- is: (val) => val && val.length > 0,
7115
- then: (schema) => schema.test(
7116
- "is-after-start",
7117
- "End date must be after start date",
7118
- function(value) {
7119
- const { start } = this.parent;
7120
- if (!value || !start) return false;
7121
- return new Date(value) > new Date(start);
7122
- }
7123
- )
7124
- }),
7125
- resource: adResourceSchema.required("Resource information is required"),
7126
- showOn: yup6.array().of(yup6.mixed().oneOf(Object.values(EnumAdShowOn)).required()).min(1, "At least one display location is required").required("Display location is required"),
7127
- status: yup6.mixed().oneOf(Object.values(EnumAdStatus)).required("Ad status is required"),
7128
- start: yup6.date().when("status", {
7129
- is: (status) => status !== "Active" /* ACTIVE */,
7130
- then: () => yup6.date().required("Start date is required").test("is-future-date", "Start date must be in the future", (value) => {
7131
- if (!value) return false;
7132
- return value > /* @__PURE__ */ new Date();
7133
- }),
7134
- // Keep `start` optional (not null) when ACTIVE to match TS type `start?: Date`.
7135
- otherwise: () => yup6.date().notRequired()
7136
- }),
7137
- targetRegion: yup6.array().of(yup6.string().required()).min(1, "At least one target region is required").required("Target region is required")
7138
- });
7139
-
7140
- // src/yupSchema/partner.ts
7141
- import * as yup7 from "yup";
7142
- var partnerSchema = globalResourceSchema.shape({
7143
- location: locationSchema,
7144
- nzbn: yup7.string().required("NZBN is required").matches(nzbnRegex, "NZBN must be 13 digits and start with 94"),
7145
- partnerType: yup7.mixed().oneOf(Object.values(EnumPartnerType), "Please select a valid Partner type").required("Please select a Partner type")
7146
- });
7147
-
7148
- // src/yupSchema/post.ts
7149
- import * as yup8 from "yup";
7150
-
7151
- // src/types/post.ts
7152
- var EnumPostType = /* @__PURE__ */ ((EnumPostType2) => {
7153
- EnumPostType2["DAILY_MEETS"] = "daily_meets";
7154
- EnumPostType2["DAILY_TIPS"] = "daily_tips";
7155
- EnumPostType2["DAILY_GAMES"] = "daily_games";
7156
- return EnumPostType2;
7157
- })(EnumPostType || {});
7158
- var EnumPostContentType = /* @__PURE__ */ ((EnumPostContentType2) => {
7159
- EnumPostContentType2["GAME"] = "game";
7160
- EnumPostContentType2["IMAGE"] = "image";
7161
- EnumPostContentType2["LIST"] = "list";
7162
- EnumPostContentType2["TEXTAREA"] = "textarea";
7163
- EnumPostContentType2["VIDEO"] = "video";
7164
- return EnumPostContentType2;
7165
- })(EnumPostContentType || {});
7166
-
7167
- // src/yupSchema/post.ts
7168
- var postContentSchema = yup8.object().shape({
7169
- contentData: yup8.mixed().optional().nullable(),
7170
- contentOrder: yup8.number().nullable(),
7171
- contentType: yup8.mixed().oneOf(Object.values(EnumPostContentType)).nullable()
7172
- });
7173
- var postSchema = yup8.object().shape({
7174
- active: yup8.boolean().required(),
7175
- caption: yup8.string().required(),
7176
- content: yup8.array().of(postContentSchema).required(),
7177
- postType: yup8.mixed().oneOf(Object.values(EnumPostType)).required(),
7178
- resource: yup8.object({
7179
- resourceId: yup8.string().required(),
7180
- resourceRegion: yup8.string().required(),
7181
- resourceType: yup8.mixed().oneOf(Object.values(EnumResourceType)).required()
7182
- }).nullable().optional(),
7183
- tags: yup8.array().of(yup8.string().required()).nullable().optional(),
7184
- title: yup8.string().required()
7185
- });
7186
-
7187
- // src/yupSchema/appSettings.ts
7188
- import * as yup9 from "yup";
7189
- var appSettingsSchema = yup9.object({
7190
- appVersion: yup9.string().trim().label("App Version").matches(
7191
- /^\d+\.\d+\.\d+$/,
7192
- "App Version must be in the format X.Y.Z (e.g. 1.12.50)"
7193
- ).required("App Version is required"),
7194
- isOfflineMode: yup9.boolean().label("Is Offline Mode").required("Is Offline Mode is required")
7195
- });
7196
-
7197
- // src/hooks/utils.ts
7198
- var defaultLocation = {
7199
- city: "",
7200
- country: "",
7201
- fullAddress: "",
7202
- geo: {
7203
- coordinates: [0, 0],
7204
- // [longitude, latitude]
7205
- type: "Point"
7206
- },
7207
- latitude: 0,
7208
- longitude: 0,
7209
- region: ""
7210
- };
7211
- var globalDefaultValues = {
7212
- active: false,
7213
- associates: null,
7214
- contactDetails: {
7215
- email: null,
7216
- landlinePhone: null,
7217
- mobilePhone: null
7218
- },
7219
- cover: {
7220
- active: true,
7221
- source: "",
7222
- title: ""
7223
- },
7224
- coverUpload: {
7225
- active: true,
7226
- source: "",
7227
- title: ""
7228
- },
7229
- description: "",
7230
- images: null,
7231
- imagesUpload: null,
7232
- logo: null,
7233
- logoUpload: null,
7234
- name: "",
7235
- promoCodes: [],
7236
- region: "",
7237
- socialMedia: []
7238
- };
7239
- var defaultPartnerFormValues = {
7240
- ...globalDefaultValues,
7241
- location: defaultLocation,
7242
- nzbn: "",
7243
- partnerType: ""
7244
- };
7245
- var defaultEventFormValues = {
7246
- ...globalDefaultValues,
7247
- claimed: true,
7248
- dateTime: [],
7249
- eventType: "",
7250
- googlePlaceId: null,
7251
- location: defaultLocation,
7252
- nzbn: "",
7253
- provider: null,
7254
- rainOrShine: false,
7255
- tags: []
7256
- };
7257
- var defaultEventInfoFormValues = {
7258
- applicationDeadlineHours: 24,
7259
- dateTime: [],
7260
- eventId: "",
7261
- packInTime: 2,
7262
- // e.g., 2 hours before event opens
7263
- paymentDueHours: 12,
7264
- paymentInfo: [],
7265
- refundPolicy: [],
7266
- requirements: []
7267
- };
7268
- var defaultVendorFormValues = {
7269
- ...globalDefaultValues,
7270
- availability: {
7271
- corporate: false,
7272
- private: false,
7273
- school: false
7274
- },
7275
- categories: [],
7276
- claimed: true,
7277
- foodTruck: false,
7278
- products: null,
7279
- unregisteredVendorId: null,
7280
- vendorType: "Stallholder" /* STALLHOLDER */
7281
- };
7282
- var defaultUnregisteredVendorFormValues = {
7283
- categoryIds: [],
7284
- dateTime: [],
7285
- email: null,
7286
- inviterId: "",
7287
- name: "",
7288
- region: ""
7289
- };
7290
- var defaultVendorInfoFormValues = {
7291
- compliance: { foodBeverageLicense: false, liabilityInsurance: false },
7292
- documents: null,
7293
- documentsUpload: null,
7294
- product: {
7295
- foodFlavors: [],
7296
- packaging: [],
7297
- priceRange: { max: "", min: "" },
7298
- producedIn: []
7299
- },
7300
- requirements: {
7301
- electricity: { details: null, isRequired: false },
7302
- gazebo: { details: null, isRequired: false },
7303
- table: { details: null, isRequired: false }
7304
- },
7305
- stallInfo: {
7306
- size: { depth: "", width: "" }
7307
- },
7308
- vendorId: ""
7309
- };
7310
- function mapBaseResourceTypeToFormData(data) {
7311
- return {
7312
- _id: data._id,
7313
- active: data.active,
7314
- associates: data.associates,
7315
- contactDetails: data.contactDetails,
7316
- cover: data.cover,
7317
- coverUpload: data.coverUpload,
7318
- description: data.description,
7319
- images: data.images,
7320
- imagesUpload: data.imagesUpload,
7321
- logo: data.logo,
7322
- logoUpload: data.logoUpload,
7323
- name: data.name,
7324
- owner: data.owner,
7325
- promoCodes: data.promoCodes,
7326
- region: data.region,
7327
- socialMedia: data.socialMedia,
7328
- termsAgreement: data.termsAgreement
7329
- };
7330
- }
7331
-
7332
- // src/hooks/vendor/useVendorForm.ts
7333
- function useVendorForm(data) {
7334
- const {
7335
- control,
7336
- formState,
7337
- getValues,
7338
- handleSubmit,
7339
- reset,
7340
- setValue,
7341
- watch
7342
- } = useForm({
7343
- defaultValues: defaultVendorFormValues,
7344
- resolver: yupResolver(vendorSchema)
7345
- });
7346
- React.useEffect(() => {
7347
- if (data) {
7348
- reset({
7349
- ...mapBaseResourceTypeToFormData(data),
7350
- availability: data.availability,
7351
- calendar: data.calendar,
7352
- categories: data.categories,
7353
- claimed: data.claimed ?? false,
7354
- foodTruck: data.foodTruck,
7355
- products: data.products,
7356
- unregisteredVendorId: data.unregisteredVendorId,
7357
- vendorType: data.vendorType
7358
- });
7359
- } else {
7360
- reset(defaultVendorFormValues);
7361
- }
7362
- }, [data]);
7363
- const {
7364
- _id,
7365
- active,
7366
- associates,
7367
- availability,
7368
- calendar,
7369
- categories,
7370
- claimed,
7371
- contactDetails,
7372
- cover,
7373
- coverUpload,
7374
- description,
7375
- foodTruck,
7376
- images,
7377
- imagesUpload,
7378
- logo,
7379
- logoUpload,
7380
- name,
7381
- owner,
7382
- products,
7383
- promoCodes,
7384
- region,
7385
- socialMedia: socialMedia2,
7386
- termsAgreement,
7387
- unregisteredVendorId,
7388
- vendorType
7389
- } = getValues();
7390
- return {
7391
- control,
7392
- fields: {
7393
- _id,
7394
- active,
7395
- associates,
7396
- availability,
7397
- calendar,
7398
- categories,
7399
- claimed,
7400
- contactDetails,
7401
- cover,
7402
- coverUpload,
7403
- description,
7404
- foodTruck,
7405
- images,
7406
- imagesUpload,
7407
- logo,
7408
- logoUpload,
7409
- name,
7410
- owner,
7411
- products,
7412
- promoCodes,
7413
- region,
7414
- socialMedia: socialMedia2,
7415
- termsAgreement,
7416
- unregisteredVendorId,
7417
- vendorType
7418
- },
7419
- formState,
7420
- getValues,
7421
- handleSubmit,
7422
- reset,
7423
- setValue,
7424
- watch
7425
- };
7426
- }
7427
-
7428
- // src/hooks/vendor/useVendorInfoForm.ts
7429
- import { yupResolver as yupResolver2 } from "@hookform/resolvers/yup";
7430
- import * as React2 from "react";
7431
- import { useForm as useForm2 } from "react-hook-form";
7432
- function useVendorInfoForm(data) {
7433
- const {
7434
- control,
7435
- formState,
7436
- getValues,
7437
- handleSubmit,
7438
- reset,
7439
- setValue,
7440
- watch
7441
- } = useForm2({
7442
- defaultValues: defaultVendorInfoFormValues,
7443
- resolver: yupResolver2(vendorInfoSchema)
7444
- });
7445
- React2.useEffect(() => {
7446
- if (data) {
7447
- reset({
7448
- _id: data._id,
7449
- compliance: data.compliance,
7450
- documents: data.documents,
7451
- documentsUpload: data.documentsUpload,
7452
- product: data.product,
7453
- requirements: data.requirements,
7454
- stallInfo: data.stallInfo,
7455
- vendorId: data.vendorId
7456
- });
7457
- } else {
7458
- reset(defaultVendorInfoFormValues);
7459
- }
7460
- }, [data]);
7461
- const {
7462
- _id,
7463
- compliance,
7464
- documents,
7465
- documentsUpload,
7466
- product,
7467
- requirements,
7468
- stallInfo,
7469
- vendorId
7470
- } = getValues();
7471
- return {
7472
- control,
7473
- fields: {
7474
- _id,
7475
- compliance,
7476
- documents,
7477
- documentsUpload,
7478
- product,
7479
- requirements,
7480
- stallInfo,
7481
- vendorId
7482
- },
7483
- formState,
7484
- getValues,
7485
- handleSubmit,
7486
- reset,
7487
- setValue,
7488
- watch
7489
- };
7490
- }
7491
-
7492
- // src/hooks/vendor/useUnregisteredVendorForm.ts
7493
- import { yupResolver as yupResolver3 } from "@hookform/resolvers/yup";
7494
- import * as React3 from "react";
7495
- import { useForm as useForm3 } from "react-hook-form";
7496
- function useUnregisteredVendorForm(data) {
7497
- const {
7498
- control,
7499
- formState,
7500
- getValues,
7501
- handleSubmit,
7502
- reset,
7503
- setValue,
7504
- watch
7505
- } = useForm3({
7506
- defaultValues: defaultUnregisteredVendorFormValues,
7507
- resolver: yupResolver3(unregisteredVendorSchema)
7508
- });
7509
- React3.useEffect(() => {
7510
- if (data) {
7511
- reset({
7512
- categoryIds: data.categoryIds,
7513
- dateTime: data.dateTime,
7514
- email: data.email,
7515
- inviterId: data.inviterId,
7516
- name: data.name,
7517
- region: data.region
7518
- });
7519
- } else {
7520
- reset(defaultUnregisteredVendorFormValues);
7521
- }
7522
- }, [data]);
7523
- const { categoryIds, dateTime, email, inviterId, name, region } = getValues();
7524
- return {
7525
- control,
7526
- fields: {
7527
- categoryIds,
7528
- dateTime,
7529
- email,
7530
- inviterId,
7531
- name,
7532
- region
7533
- },
7534
- formState,
7535
- getValues,
7536
- handleSubmit,
7537
- reset,
7538
- setValue,
7539
- watch
7540
- };
7541
- }
7542
-
7543
- // src/hooks/event/useEventForm.ts
7544
- import { yupResolver as yupResolver4 } from "@hookform/resolvers/yup";
7545
- import * as React4 from "react";
7546
- import { useForm as useForm4 } from "react-hook-form";
7547
- function useEventForm(data) {
7548
- const {
7549
- control,
7550
- formState,
7551
- getValues,
7552
- handleSubmit,
7553
- reset,
7554
- setValue,
7555
- watch
7556
- } = useForm4({
7557
- defaultValues: defaultEventFormValues,
7558
- resolver: yupResolver4(eventSchema)
7559
- });
7560
- React4.useEffect(() => {
7561
- if (data) {
7562
- reset({
7563
- ...mapBaseResourceTypeToFormData(data),
7564
- claimed: data.claimed ?? false,
7565
- dateTime: data.dateTime,
7566
- eventType: data.eventType,
7567
- googlePlaceId: data.googlePlaceId,
7568
- location: data.location,
7569
- nzbn: data.nzbn,
7570
- provider: data.provider,
7571
- rainOrShine: data.rainOrShine,
7572
- tags: data.tags
7573
- });
7574
- } else {
7575
- reset(defaultEventFormValues);
7576
- }
7577
- }, [data]);
7578
- const {
7579
- _id,
7580
- active,
7581
- associates,
7582
- claimed,
7583
- contactDetails,
7584
- cover,
7585
- coverUpload,
7586
- dateTime,
7587
- description,
7588
- eventType,
7589
- googlePlaceId,
7590
- images,
7591
- imagesUpload,
7592
- location,
7593
- logo,
7594
- logoUpload,
7595
- name,
7596
- nzbn,
7597
- owner,
7598
- promoCodes,
7599
- provider,
7600
- rainOrShine,
7601
- region,
7602
- socialMedia: socialMedia2,
7603
- tags,
7604
- termsAgreement
7605
- } = getValues();
7606
- return {
7607
- control,
7608
- fields: {
7609
- _id,
7610
- active,
7611
- associates,
7612
- claimed,
7613
- contactDetails,
7614
- cover,
7615
- coverUpload,
7616
- dateTime,
7617
- description,
7618
- eventType,
7619
- googlePlaceId,
7620
- images,
7621
- imagesUpload,
7622
- location,
7623
- logo,
7624
- logoUpload,
7625
- name,
7626
- nzbn,
7627
- owner,
7628
- promoCodes,
7629
- provider,
7630
- rainOrShine,
7631
- region,
7632
- socialMedia: socialMedia2,
7633
- tags,
7634
- termsAgreement
7635
- },
7636
- formState,
7637
- getValues,
7638
- handleSubmit,
7639
- reset,
7640
- setValue,
7641
- watch
7642
- };
7643
- }
7644
-
7645
- // src/hooks/event/useEventInfoForm.ts
7646
- import { yupResolver as yupResolver5 } from "@hookform/resolvers/yup";
7647
- import * as React5 from "react";
7648
- import { useForm as useForm5 } from "react-hook-form";
7649
- function useEventInfoForm(data) {
7650
- const {
7651
- control,
7652
- formState,
7653
- getValues,
7654
- handleSubmit,
7655
- reset,
7656
- setValue,
7657
- watch
7658
- } = useForm5({
7659
- defaultValues: defaultEventInfoFormValues,
7660
- resolver: yupResolver5(eventInfoSchema)
7661
- });
7662
- React5.useEffect(() => {
7663
- if (data) {
7664
- reset({
7665
- _id: data._id,
7666
- applicationDeadlineHours: data.applicationDeadlineHours,
7667
- dateTime: data.dateTime,
7668
- eventId: data.eventId,
7669
- packInTime: data.packInTime,
7670
- paymentDueHours: data.paymentDueHours,
7671
- paymentInfo: data.paymentInfo,
7672
- refundPolicy: data.refundPolicy,
7673
- requirements: data.requirements
7674
- });
7675
- } else {
7676
- reset(defaultEventInfoFormValues);
7677
- }
7678
- }, [data]);
7679
- const {
7680
- _id,
7681
- applicationDeadlineHours,
7682
- dateTime,
7683
- eventId,
7684
- packInTime,
7685
- paymentDueHours,
7686
- paymentInfo,
7687
- refundPolicy,
7688
- requirements
7689
- } = getValues();
7690
- return {
7691
- control,
7692
- fields: {
7693
- _id,
7694
- applicationDeadlineHours,
7695
- dateTime,
7696
- eventId,
7697
- packInTime,
7698
- paymentDueHours,
7699
- paymentInfo,
7700
- refundPolicy,
7701
- requirements
7702
- },
7703
- formState,
7704
- getValues,
7705
- handleSubmit,
7706
- reset,
7707
- setValue,
7708
- watch
7709
- };
7710
- }
7711
-
7712
- // src/hooks/useUserForm.ts
7713
- import { yupResolver as yupResolver6 } from "@hookform/resolvers/yup";
7714
- import * as React6 from "react";
7715
- import { useForm as useForm6 } from "react-hook-form";
7716
- var defaultValues = {
7717
- active: false,
7718
- avatar: null,
7719
- avatarUpload: null,
7720
- confirmPassword: "",
7721
- email: "",
7722
- firstName: "",
7723
- isTester: false,
7724
- lastName: "",
7725
- password: null,
7726
- preferredRegion: "",
7727
- role: "customer" /* CUSTOMER */
7728
- };
7729
- function useUserForm(data) {
7730
- const {
7731
- control,
7732
- formState,
7733
- getValues,
7734
- handleSubmit,
7735
- reset,
7736
- setValue,
7737
- watch
7738
- } = useForm6({
7739
- defaultValues,
7740
- resolver: yupResolver6(userSchema)
7741
- });
7742
- React6.useEffect(() => {
7743
- if (data) {
7744
- reset({
7745
- _id: data._id,
7746
- active: data.active,
7747
- avatar: data.avatar,
7748
- avatarUpload: data.avatarUpload,
7749
- email: data.email,
7750
- firstName: data.firstName,
7751
- isTester: data.isTester,
7752
- lastName: data.lastName,
7753
- password: data.password,
7754
- preferredRegion: data.preferredRegion,
7755
- role: data.role,
7756
- termsAgreement: data.termsAgreement
7757
- });
7758
- } else {
7759
- reset(defaultValues);
7760
- }
7761
- }, [data]);
7762
- const {
7763
- _id,
7764
- active,
7765
- avatar,
7766
- avatarUpload,
7767
- email,
7768
- firstName,
7769
- isTester,
7770
- lastName,
7771
- password,
7772
- preferredRegion,
7773
- role,
7774
- termsAgreement
7775
- } = getValues();
7776
- return {
7777
- control,
7778
- fields: {
7779
- _id,
7780
- active,
7781
- avatar,
7782
- avatarUpload,
7783
- email,
7784
- firstName,
7785
- isTester,
7786
- lastName,
7787
- password,
7788
- preferredRegion,
7789
- role,
7790
- termsAgreement
7791
- },
7792
- formState,
7793
- getValues,
7794
- handleSubmit,
7795
- reset,
7796
- setValue,
7797
- watch
7798
- };
7799
- }
7800
-
7801
- // src/hooks/auth/useLoginForm.ts
7802
- import { yupResolver as yupResolver7 } from "@hookform/resolvers/yup";
7803
- import { useForm as useForm7 } from "react-hook-form";
7804
- var defaultValues2 = {
7805
- email: "",
7806
- password: ""
7807
- };
7808
- function useLoginForm() {
7809
- const {
7810
- control,
7811
- formState,
7812
- getValues,
7813
- handleSubmit,
7814
- reset,
7815
- setValue,
7816
- watch
7817
- } = useForm7({
7818
- defaultValues: defaultValues2,
7819
- resolver: yupResolver7(loginSchema)
7820
- });
7821
- const { email, password } = getValues();
7822
- return {
7823
- control,
7824
- fields: {
7825
- email,
7826
- password
7827
- },
7828
- formState,
7829
- getValues,
7830
- handleSubmit,
7831
- reset,
7832
- setValue,
7833
- watch
7834
- };
7835
- }
7836
-
7837
- // src/hooks/auth/useRegisterForm.ts
7838
- import { yupResolver as yupResolver8 } from "@hookform/resolvers/yup";
7839
- import { useForm as useForm8 } from "react-hook-form";
7840
- var defaultValues3 = {
7841
- email: "",
7842
- firstName: "",
7843
- lastName: "",
7844
- password: "",
7845
- preferredRegion: "",
7846
- promoCode: null,
7847
- termsAgreement: null
7848
- };
7849
- function useRegisterForm() {
7850
- const {
7851
- control,
7852
- formState,
7853
- getValues,
7854
- handleSubmit,
7855
- reset,
7856
- setValue,
7857
- watch
7858
- } = useForm8({
7859
- defaultValues: defaultValues3,
7860
- resolver: yupResolver8(registerSchema)
7861
- });
7862
- const {
7863
- email,
7864
- firstName,
7865
- lastName,
7866
- password,
7867
- preferredRegion,
7868
- promoCode,
7869
- termsAgreement
7870
- } = getValues();
7871
- return {
7872
- control,
7873
- fields: {
7874
- email,
7875
- firstName,
7876
- lastName,
7877
- password,
7878
- preferredRegion,
7879
- promoCode,
7880
- termsAgreement
7881
- },
7882
- formState,
7883
- getValues,
7884
- handleSubmit,
7885
- reset,
7886
- setValue,
7887
- watch
7888
- };
7889
- }
7890
-
7891
- // src/hooks/auth/useRequestPasswordResetForm.ts
7892
- import { yupResolver as yupResolver9 } from "@hookform/resolvers/yup";
7893
- import { useForm as useForm9 } from "react-hook-form";
7894
- var defaultValues4 = {
7895
- email: ""
7896
- };
7897
- function useRequestPasswordResetForm() {
7898
- const {
7899
- control,
7900
- formState,
7901
- getValues,
7902
- handleSubmit,
7903
- reset,
7904
- setValue,
7905
- watch
7906
- } = useForm9({
7907
- defaultValues: defaultValues4,
7908
- resolver: yupResolver9(requestPasswordResetSchema)
7909
- });
7910
- const { email } = getValues();
7911
- return {
7912
- control,
7913
- fields: {
7914
- email
7915
- },
7916
- formState,
7917
- getValues,
7918
- handleSubmit,
7919
- reset,
7920
- setValue,
7921
- watch
7922
- };
7923
- }
7924
-
7925
- // src/hooks/auth/useValidateVerificationTokenForm.ts
7926
- import { yupResolver as yupResolver10 } from "@hookform/resolvers/yup";
7927
- import { useForm as useForm10 } from "react-hook-form";
7928
- var defaultValues5 = {
7929
- email: "",
7930
- verificationToken: ""
7931
- };
7932
- function useValidateVerificationTokenForm() {
7933
- const {
7934
- control,
7935
- formState,
7936
- getValues,
7937
- handleSubmit,
7938
- reset,
7939
- setValue,
7940
- watch
7941
- } = useForm10({
7942
- defaultValues: defaultValues5,
7943
- resolver: yupResolver10(validateVerificationTokenSchema)
7944
- });
7945
- const { email, verificationToken } = getValues();
7946
- return {
7947
- control,
7948
- fields: {
7949
- email,
7950
- verificationToken
7951
- },
7952
- formState,
7953
- getValues,
7954
- handleSubmit,
7955
- reset,
7956
- setValue,
7957
- watch
7958
- };
7959
- }
7960
-
7961
- // src/hooks/auth/useResetPasswordForm.ts
7962
- import { yupResolver as yupResolver11 } from "@hookform/resolvers/yup";
7963
- import { useForm as useForm11 } from "react-hook-form";
7964
- var defaultValues6 = {
7965
- confirmPassword: "",
7966
- email: "",
7967
- password: ""
7968
- };
7969
- function useResetPasswordForm() {
7970
- const {
7971
- control,
7972
- formState,
7973
- getValues,
7974
- handleSubmit,
7975
- reset,
7976
- setValue,
7977
- watch
7978
- } = useForm11({
7979
- defaultValues: defaultValues6,
7980
- resolver: yupResolver11(resetPasswordSchema)
7981
- });
7982
- const { confirmPassword, email, password } = getValues();
7983
- return {
7984
- control,
7985
- fields: {
7986
- confirmPassword,
7987
- email,
7988
- password
7989
- },
7990
- formState,
7991
- getValues,
7992
- handleSubmit,
7993
- reset,
7994
- setValue,
7995
- watch
7996
- };
7997
- }
7998
-
7999
- // src/hooks/useContactUsForm.ts
8000
- import { yupResolver as yupResolver12 } from "@hookform/resolvers/yup";
8001
- import React7 from "react";
8002
- import { useForm as useForm12 } from "react-hook-form";
8003
-
8004
- // src/yupSchema/contactUs.ts
8005
- import * as yup10 from "yup";
8006
- var contactUsSchema = yup10.object().shape({
8007
- email: emailRequiredSchema,
8008
- firstName: yup10.string().label("First Name").required("First name is required"),
8009
- lastName: yup10.string().label("Last Name").required("Last name is required"),
8010
- message: yup10.string().label("Message").required("Message is required")
8011
- });
8012
-
8013
- // src/hooks/useContactUsForm.ts
8014
- var defaultValues7 = {
8015
- email: "",
8016
- firstName: "",
8017
- lastName: "",
8018
- message: ""
8019
- };
8020
- function useContactUsForm(data) {
8021
- const {
8022
- control,
8023
- formState,
8024
- getValues,
8025
- handleSubmit,
8026
- reset,
8027
- setValue,
8028
- watch
8029
- } = useForm12({
8030
- defaultValues: defaultValues7,
8031
- resolver: yupResolver12(contactUsSchema)
8032
- });
8033
- React7.useEffect(() => {
8034
- if (data) {
8035
- reset({
8036
- email: data.email,
8037
- firstName: data.firstName,
8038
- lastName: data.lastName,
8039
- message: data.message
8040
- });
8041
- } else {
8042
- reset(defaultValues7);
8043
- }
8044
- }, [data]);
8045
- const { email, firstName, lastName, message } = getValues();
8046
- return {
8047
- control,
8048
- fields: {
8049
- email,
8050
- firstName,
8051
- lastName,
8052
- message
8053
- },
8054
- formState,
8055
- getValues,
8056
- handleSubmit,
8057
- reset,
8058
- setValue,
8059
- watch
8060
- };
8061
- }
8062
-
8063
- // src/hooks/useAdForm.ts
8064
- import { yupResolver as yupResolver13 } from "@hookform/resolvers/yup";
8065
- import React8 from "react";
8066
- import { useForm as useForm13 } from "react-hook-form";
8067
- var defaultValues8 = {
8068
- active: true,
8069
- // Use a future default so yup "future date" rules pass on first submit.
8070
- end: new Date(Date.now() + 7 * 24 * 60 * 60 * 1e3),
8071
- resource: {
8072
- adDescription: "",
8073
- adImage: "",
8074
- adStyle: "Bloom" /* BLOOM */,
8075
- adTitle: "",
8076
- adType: "Sponsored" /* SPONSORED */,
8077
- resourceId: "",
8078
- resourceName: "",
8079
- resourceRegion: "",
8080
- resourceType: "event" /* EVENT */
8081
- },
8082
- showOn: ["Front_page" /* FRONT_PAGE */],
8083
- // `start` is only required (and must be future) when status !== ACTIVE.
8084
- start: void 0,
8085
- status: "Active" /* ACTIVE */,
8086
- targetRegion: []
8087
- };
8088
- function useAdForm(data) {
8089
- const {
8090
- control,
8091
- formState,
8092
- getValues,
8093
- handleSubmit,
8094
- reset,
8095
- setValue,
8096
- watch
8097
- } = useForm13({
8098
- defaultValues: defaultValues8,
8099
- resolver: yupResolver13(adSchema)
8100
- });
8101
- React8.useEffect(() => {
8102
- if (data) {
8103
- reset({
8104
- active: data.active,
8105
- end: data.end,
8106
- resource: data.resource,
8107
- showOn: data.showOn,
8108
- start: data.start,
8109
- status: data.status,
8110
- targetRegion: data.targetRegion
8111
- });
8112
- } else {
8113
- reset(defaultValues8);
8114
- }
8115
- }, [data]);
8116
- const { active, end, resource, showOn, start, status, targetRegion } = getValues();
8117
- return {
8118
- control,
8119
- fields: {
8120
- active,
8121
- end,
8122
- resource,
8123
- showOn,
8124
- start,
8125
- status,
8126
- targetRegion
8127
- },
8128
- formState,
8129
- getValues,
8130
- handleSubmit,
8131
- reset,
8132
- setValue,
8133
- watch
8134
- };
8135
- }
8136
-
8137
- // src/hooks/partner/usePartnerForm.ts
8138
- import { yupResolver as yupResolver14 } from "@hookform/resolvers/yup";
8139
- import * as React9 from "react";
8140
- import { useForm as useForm14 } from "react-hook-form";
8141
- function usePartnerForm(data) {
8142
- const {
8143
- control,
8144
- formState,
8145
- getValues,
8146
- handleSubmit,
8147
- reset,
8148
- setValue,
8149
- watch
8150
- } = useForm14({
8151
- defaultValues: defaultPartnerFormValues,
8152
- resolver: yupResolver14(partnerSchema)
8153
- });
8154
- React9.useEffect(() => {
8155
- if (data) {
8156
- reset({
8157
- ...mapBaseResourceTypeToFormData(data),
8158
- location: data.location,
8159
- nzbn: data.nzbn,
8160
- partnerType: data.partnerType
8161
- });
8162
- } else {
8163
- reset(defaultPartnerFormValues);
8164
- }
8165
- }, [data]);
8166
- const {
8167
- _id,
8168
- active,
8169
- associates,
8170
- contactDetails,
8171
- cover,
8172
- coverUpload,
8173
- description,
8174
- images,
8175
- imagesUpload,
8176
- location,
8177
- logo,
8178
- logoUpload,
8179
- name,
8180
- nzbn,
8181
- owner,
8182
- partnerType,
8183
- promoCodes,
8184
- region,
8185
- socialMedia: socialMedia2,
8186
- termsAgreement
8187
- } = getValues();
8188
- return {
8189
- control,
8190
- fields: {
8191
- _id,
8192
- active,
8193
- associates,
8194
- contactDetails,
8195
- cover,
8196
- coverUpload,
8197
- description,
8198
- images,
8199
- imagesUpload,
8200
- location,
8201
- logo,
8202
- logoUpload,
8203
- name,
8204
- nzbn,
8205
- owner,
8206
- partnerType,
8207
- promoCodes,
8208
- region,
8209
- socialMedia: socialMedia2,
8210
- termsAgreement
8211
- },
8212
- formState,
8213
- getValues,
8214
- handleSubmit,
8215
- reset,
8216
- setValue,
8217
- watch
8218
- };
8219
- }
8220
-
8221
- // src/hooks/usePostForm.ts
8222
- import { yupResolver as yupResolver15 } from "@hookform/resolvers/yup";
8223
- import React10 from "react";
8224
- import { useForm as useForm15 } from "react-hook-form";
8225
- var defaultValues9 = {
8226
- active: true,
8227
- caption: "",
8228
- content: [],
8229
- cover: null,
8230
- coverUpload: null,
8231
- postType: "",
8232
- resource: null,
8233
- tags: [],
8234
- title: ""
8235
- };
8236
- function usePostForm(data) {
8237
- const {
8238
- control,
8239
- formState,
8240
- getValues,
8241
- handleSubmit,
8242
- reset,
8243
- setValue,
8244
- watch
8245
- } = useForm15({
8246
- defaultValues: defaultValues9,
8247
- resolver: yupResolver15(postSchema)
8248
- });
8249
- React10.useEffect(() => {
8250
- if (data) {
8251
- reset({
8252
- active: data.active,
8253
- caption: data.caption,
8254
- content: data.content,
8255
- cover: data.cover,
8256
- coverUpload: data.coverUpload,
8257
- postType: data.postType,
8258
- resource: data.resource,
8259
- tags: data.tags,
8260
- title: data.title
8261
- });
8262
- } else {
8263
- reset(defaultValues9);
8264
- }
8265
- }, [data]);
8266
- const {
8267
- active,
8268
- caption,
8269
- content,
8270
- cover,
8271
- coverUpload,
8272
- postType,
8273
- resource,
8274
- tags,
8275
- title
8276
- } = getValues();
8277
- return {
8278
- control,
8279
- fields: {
8280
- active,
8281
- caption,
8282
- content,
8283
- cover,
8284
- coverUpload,
8285
- postType,
8286
- resource,
8287
- tags,
8288
- title
8289
- },
8290
- formState,
8291
- getValues,
8292
- handleSubmit,
8293
- reset,
8294
- setValue,
8295
- watch
8296
- };
8297
- }
8298
-
8299
- // src/hooks/useAppSettingsForm.ts
8300
- import { yupResolver as yupResolver16 } from "@hookform/resolvers/yup";
8301
- import React11 from "react";
8302
- import { useForm as useForm16 } from "react-hook-form";
8303
- var defaultValues10 = {
8304
- appVersion: "",
8305
- isOfflineMode: false
8306
- };
8307
- function useAppSettingsForm(data) {
8308
- const {
8309
- control,
8310
- formState,
8311
- getValues,
8312
- handleSubmit,
8313
- reset,
8314
- setValue,
8315
- watch
8316
- } = useForm16({
8317
- defaultValues: defaultValues10,
8318
- resolver: yupResolver16(appSettingsSchema)
8319
- });
8320
- React11.useEffect(() => {
8321
- if (data) {
8322
- reset({
8323
- appVersion: data.appVersion,
8324
- isOfflineMode: data.isOfflineMode
8325
- });
8326
- } else {
8327
- reset(defaultValues10);
8328
- }
8329
- }, [data]);
8330
- const { appVersion, isOfflineMode } = getValues();
8331
- return {
8332
- control,
8333
- fields: {
8334
- appVersion,
8335
- isOfflineMode
8336
- },
8337
- formState,
8338
- getValues,
8339
- handleSubmit,
8340
- reset,
8341
- setValue,
8342
- watch
8343
- };
8344
- }
8345
-
8346
- // src/hooks/useSchoolForm.ts
8347
- import { yupResolver as yupResolver17 } from "@hookform/resolvers/yup";
8348
- import { useEffect as useEffect8 } from "react";
8349
- import { useForm as useForm17 } from "react-hook-form";
8350
-
8351
- // src/yupSchema/school.ts
8352
- import * as yup11 from "yup";
8353
- var schoolSchema = yup11.object().shape({
8354
- active: yup11.boolean().required("Active is required"),
8355
- contactDetails: contactDetailsSchema,
8356
- location: locationSchema,
8357
- name: yup11.string().trim().required("Name is required"),
8358
- region: yup11.string().trim().required("Region is required"),
8359
- socialMedia: yup11.array().of(socialMediaSchema).nullable().default(null),
8360
- studentCount: yup11.number().transform((_, originalValue) => toOptionalNumber(originalValue)).label("Student Count").nullable().typeError("Student count must be a number").min(
8361
- SCHOOL_MIN_STUDENT_COUNT,
8362
- `Student count must be at least ${SCHOOL_MIN_STUDENT_COUNT}`
8363
- ).required("Student count is required").test("no-leading-zeros", "", noLeadingZeros("Student Count"))
8364
- });
8365
-
8366
- // src/hooks/useSchoolForm.ts
8367
- var defaultSchoolFormValues = {
8368
- // New schools are active by default
8369
- active: true,
8370
- contactDetails: null,
8371
- location: defaultLocation,
8372
- logo: null,
8373
- logoUpload: null,
8374
- name: "",
8375
- region: "",
8376
- socialMedia: [],
8377
- studentCount: 0,
8378
- termsAgreement: null
8379
- };
8380
- function useSchoolForm(data) {
8381
- const {
8382
- control,
8383
- formState,
8384
- getValues,
8385
- handleSubmit,
8386
- reset,
8387
- setValue,
8388
- watch
8389
- } = useForm17({
8390
- defaultValues: defaultSchoolFormValues,
8391
- resolver: yupResolver17(schoolSchema)
8392
- });
8393
- useEffect8(() => {
8394
- if (data) {
8395
- reset({
8396
- _id: data._id,
8397
- active: data.active,
8398
- contactDetails: data.contactDetails,
8399
- location: data.location,
8400
- logo: data.logo,
8401
- logoUpload: data.logoUpload,
8402
- name: data.name,
8403
- region: data.region,
8404
- socialMedia: data.socialMedia,
8405
- studentCount: data.studentCount,
8406
- termsAgreement: data.termsAgreement
8407
- });
8408
- } else {
8409
- reset(defaultSchoolFormValues);
8410
- }
8411
- }, [data]);
8412
- const {
8413
- _id,
8414
- socialMedia: socialMedia2,
8415
- active,
8416
- contactDetails,
8417
- location,
8418
- logo,
8419
- logoUpload,
8420
- name,
8421
- region,
8422
- studentCount,
8423
- termsAgreement
8424
- } = getValues();
8425
- return {
8426
- control,
8427
- fields: {
8428
- _id,
8429
- active,
8430
- contactDetails,
8431
- location,
8432
- logo,
8433
- logoUpload,
8434
- name,
8435
- region,
8436
- socialMedia: socialMedia2,
8437
- studentCount,
8438
- termsAgreement
8439
- },
8440
- formState,
8441
- getValues,
8442
- handleSubmit,
8443
- reset,
8444
- setValue,
8445
- watch
8446
- };
8447
- }
8448
-
8449
6516
  // src/images/index.ts
8450
6517
  var PKG = "@timardex/cluemart-shared";
8451
6518
  var IMAGE_EXTENSION = ".webp";
@@ -8633,9 +6700,9 @@ function formatShareStallLine(stall) {
8633
6700
  return ` - ${stall.label} \u2014 $${stall.price}${formatStallCapacityLabel(stall.stallCapacity)}`;
8634
6701
  }
8635
6702
  function formatShareInvitationMarketDatesSection(dateTime) {
8636
- const dateBlocks = dateTime.map((date3) => {
8637
- const formattedDate = formatShareMarketDate(date3.startDate);
8638
- const stallLines = date3.stallTypes.map(formatShareStallLine);
6703
+ const dateBlocks = dateTime.map((date) => {
6704
+ const formattedDate = formatShareMarketDate(date.startDate);
6705
+ const stallLines = date.stallTypes.map(formatShareStallLine);
8639
6706
  return [`- ${formattedDate}`, ...stallLines].join("\n");
8640
6707
  });
8641
6708
  return `${SHARE_MARKET_DATES_SECTION_HEADING}
@@ -8692,7 +6759,7 @@ function formatShareInvitationApplicationDeadlineLine(applicationDeadlineHours)
8692
6759
  return `${SHARE_APPLICATION_DEADLINE_PREFIX} vendors must apply at least ${applicationDeadlineHours} hours before each market date.`;
8693
6760
  }
8694
6761
  function buildInvitationShareDescription(event, eventInfo2) {
8695
- const stallTypes2 = eventInfo2?.dateTime?.flatMap((date3) => date3.stallTypes) ?? [];
6762
+ const stallTypes2 = eventInfo2?.dateTime?.flatMap((date) => date.stallTypes) ?? [];
8696
6763
  if (!eventInfo2 || stallTypes2.length === 0) {
8697
6764
  return event.description?.trim() || "";
8698
6765
  }
@@ -8878,6 +6945,31 @@ var EnumVerificationType = /* @__PURE__ */ ((EnumVerificationType2) => {
8878
6945
  // src/types/global.ts
8879
6946
  var PROMO_CODE_PREFIX = "CM-";
8880
6947
 
6948
+ // src/types/ad.ts
6949
+ var EnumAdShowOn = /* @__PURE__ */ ((EnumAdShowOn2) => {
6950
+ EnumAdShowOn2["EVENTS_PAGE"] = "Events_page";
6951
+ EnumAdShowOn2["FRONT_PAGE"] = "Front_page";
6952
+ EnumAdShowOn2["PARTNERS_PAGE"] = "Partners_page";
6953
+ EnumAdShowOn2["VENDORS_PAGE"] = "Vendors_page";
6954
+ return EnumAdShowOn2;
6955
+ })(EnumAdShowOn || {});
6956
+ var EnumAdStatus = /* @__PURE__ */ ((EnumAdStatus2) => {
6957
+ EnumAdStatus2["ACTIVE"] = "Active";
6958
+ EnumAdStatus2["PAUSED"] = "Paused";
6959
+ EnumAdStatus2["EXPIRED"] = "Expired";
6960
+ return EnumAdStatus2;
6961
+ })(EnumAdStatus || {});
6962
+ var EnumAdType = /* @__PURE__ */ ((EnumAdType2) => {
6963
+ EnumAdType2["SPONSORED"] = "Sponsored";
6964
+ EnumAdType2["FREE"] = "Free";
6965
+ return EnumAdType2;
6966
+ })(EnumAdType || {});
6967
+ var EnumAdStyle = /* @__PURE__ */ ((EnumAdStyle2) => {
6968
+ EnumAdStyle2["BLOOM"] = "Bloom";
6969
+ EnumAdStyle2["RISE"] = "Rise";
6970
+ return EnumAdStyle2;
6971
+ })(EnumAdStyle || {});
6972
+
8881
6973
  // src/types/resourceActivities.ts
8882
6974
  var EnumActivity = /* @__PURE__ */ ((EnumActivity2) => {
8883
6975
  EnumActivity2["FAVORITE"] = "FAVORITE";
@@ -8888,6 +6980,22 @@ var EnumActivity = /* @__PURE__ */ ((EnumActivity2) => {
8888
6980
  return EnumActivity2;
8889
6981
  })(EnumActivity || {});
8890
6982
 
6983
+ // src/types/post.ts
6984
+ var EnumPostType = /* @__PURE__ */ ((EnumPostType2) => {
6985
+ EnumPostType2["DAILY_MEETS"] = "daily_meets";
6986
+ EnumPostType2["DAILY_TIPS"] = "daily_tips";
6987
+ EnumPostType2["DAILY_GAMES"] = "daily_games";
6988
+ return EnumPostType2;
6989
+ })(EnumPostType || {});
6990
+ var EnumPostContentType = /* @__PURE__ */ ((EnumPostContentType2) => {
6991
+ EnumPostContentType2["GAME"] = "game";
6992
+ EnumPostContentType2["IMAGE"] = "image";
6993
+ EnumPostContentType2["LIST"] = "list";
6994
+ EnumPostContentType2["TEXTAREA"] = "textarea";
6995
+ EnumPostContentType2["VIDEO"] = "video";
6996
+ return EnumPostContentType2;
6997
+ })(EnumPostContentType || {});
6998
+
8891
6999
  // src/types/game/index.ts
8892
7000
  var EnumGameStatus = /* @__PURE__ */ ((EnumGameStatus2) => {
8893
7001
  EnumGameStatus2["GAME_COMPLETED"] = "GAME_COMPLETED";
@@ -9034,13 +7142,6 @@ export {
9034
7142
  contactUsFields,
9035
7143
  darkColors,
9036
7144
  dateFormat,
9037
- defaultEventFormValues,
9038
- defaultEventInfoFormValues,
9039
- defaultLocation,
9040
- defaultPartnerFormValues,
9041
- defaultUnregisteredVendorFormValues,
9042
- defaultVendorFormValues,
9043
- defaultVendorInfoFormValues,
9044
7145
  emailField,
9045
7146
  eventBasicInfoFields,
9046
7147
  eventEndDateFields,
@@ -9068,7 +7169,6 @@ export {
9068
7169
  gameScreenIdentifierList,
9069
7170
  gameTypeToDisplayName,
9070
7171
  getCurrentAndFutureDates,
9071
- globalDefaultValues,
9072
7172
  iconFiles,
9073
7173
  iconIds,
9074
7174
  icons,
@@ -9085,7 +7185,6 @@ export {
9085
7185
  logoIds,
9086
7186
  logos,
9087
7187
  mapArrayToOptions,
9088
- mapBaseResourceTypeToFormData,
9089
7188
  normalizeShareOgDescription,
9090
7189
  normalizeShareRouteId,
9091
7190
  normalizeShareText,
@@ -9121,7 +7220,6 @@ export {
9121
7220
  timeFormat,
9122
7221
  toNZTime,
9123
7222
  truncateText,
9124
- useAdForm,
9125
7223
  useAddParticipantToChat,
9126
7224
  useAddUserFavouriteResource,
9127
7225
  useAddUserGoingResource,
@@ -9130,10 +7228,8 @@ export {
9130
7228
  useAdminPermanentlyDeleteResource,
9131
7229
  useAdminResendUserVerificationEmail,
9132
7230
  useAdminUpdateResourceType,
9133
- useAppSettingsForm,
9134
7231
  useCancelSubscription,
9135
7232
  useContactUs,
9136
- useContactUsForm,
9137
7233
  useCrawlGoogleMarkets,
9138
7234
  useCreateAd,
9139
7235
  useCreateBulkNotifications,
@@ -9165,8 +7261,6 @@ export {
9165
7261
  useDeleteUnregisteredVendor,
9166
7262
  useDeleteUser,
9167
7263
  useDeleteVendor,
9168
- useEventForm,
9169
- useEventInfoForm,
9170
7264
  useGetAd,
9171
7265
  useGetAds,
9172
7266
  useGetAdsByRegion,
@@ -9220,18 +7314,13 @@ export {
9220
7314
  useGetVendors,
9221
7315
  useGetVendorsByRegion,
9222
7316
  useLeaveGame,
9223
- useLocationSearch,
9224
7317
  useLogin,
9225
- useLoginForm,
9226
7318
  useLogout,
9227
7319
  useMarkAllNotificationsRead,
9228
7320
  useMarkChatMessagesSeen,
9229
7321
  useMarkNotificationRead,
9230
- usePartnerForm,
9231
- usePostForm,
9232
7322
  useRefreshToken,
9233
7323
  useRegister,
9234
- useRegisterForm,
9235
7324
  useRemoveParticipantFromChat,
9236
7325
  useRemoveUserFavouriteResource,
9237
7326
  useRemoveUserGoingResource,
@@ -9240,10 +7329,7 @@ export {
9240
7329
  useReportChatUser,
9241
7330
  useRequestMarketingMaterial,
9242
7331
  useRequestPasswordReset,
9243
- useRequestPasswordResetForm,
9244
7332
  useResetPassword,
9245
- useResetPasswordForm,
9246
- useSchoolForm,
9247
7333
  useSearchEvents,
9248
7334
  useSearchPartners,
9249
7335
  useSearchVendors,
@@ -9253,7 +7339,6 @@ export {
9253
7339
  useStartGame,
9254
7340
  useToggleChatMessageLike,
9255
7341
  useUnlinkUnregisteredVendorByInviterId,
9256
- useUnregisteredVendorForm,
9257
7342
  useUpdateAd,
9258
7343
  useUpdateAppSettings,
9259
7344
  useUpdateDailyClueGame,
@@ -9270,11 +7355,7 @@ export {
9270
7355
  useUpdateUser,
9271
7356
  useUpdateVendor,
9272
7357
  useUpdateVendorInfo,
9273
- useUserForm,
9274
7358
  useValidateVerificationToken,
9275
- useValidateVerificationTokenForm,
9276
- useVendorForm,
9277
- useVendorInfoForm,
9278
7359
  validateVerificationTokenFields,
9279
7360
  vendorAvailability,
9280
7361
  vendorBasicInfoFields,