@anker-in/ui 0.1.15 → 0.1.16

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.js CHANGED
@@ -14,6 +14,8 @@ var antd = require('antd');
14
14
  var dayLocaleData = require('dayjs/plugin/localeData');
15
15
  var weekday = require('dayjs/plugin/weekday');
16
16
  var weekOfYear = require('dayjs/plugin/weekOfYear');
17
+ var timezone = require('dayjs/plugin/timezone');
18
+ var utc = require('dayjs/plugin/utc');
17
19
 
18
20
  function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
19
21
 
@@ -24,6 +26,8 @@ var dayjs__default = /*#__PURE__*/_interopDefault(dayjs);
24
26
  var dayLocaleData__default = /*#__PURE__*/_interopDefault(dayLocaleData);
25
27
  var weekday__default = /*#__PURE__*/_interopDefault(weekday);
26
28
  var weekOfYear__default = /*#__PURE__*/_interopDefault(weekOfYear);
29
+ var timezone__default = /*#__PURE__*/_interopDefault(timezone);
30
+ var utc__default = /*#__PURE__*/_interopDefault(utc);
27
31
 
28
32
  function cn(...inputs) {
29
33
  return tailwindMerge.twMerge(clsx.clsx(inputs));
@@ -1671,7 +1675,8 @@ var QuestionnaireForm = ({
1671
1675
  pageData,
1672
1676
  selectedTimeslotId,
1673
1677
  loading = false,
1674
- className
1678
+ className,
1679
+ error
1675
1680
  }) => {
1676
1681
  const [responses, setResponses] = React9.useState({});
1677
1682
  const [errors, setErrors] = React9.useState({});
@@ -2117,17 +2122,20 @@ var QuestionnaireForm = ({
2117
2122
  ),
2118
2123
  children: loading ? pageData?.submitting || "Submitting..." : pageData?.submit || "Submit Booking"
2119
2124
  }
2120
- )
2125
+ ),
2126
+ error && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-center w-full p-4", children: /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-[#FF4D4D] font-bold", children: error.message }) })
2121
2127
  ] })
2122
2128
  ] });
2123
2129
  };
2124
2130
  dayjs__default.default.extend(dayLocaleData__default.default);
2125
2131
  dayjs__default.default.extend(weekday__default.default);
2126
2132
  dayjs__default.default.extend(weekOfYear__default.default);
2133
+ dayjs__default.default.extend(utc__default.default);
2134
+ dayjs__default.default.extend(timezone__default.default);
2127
2135
  var DateTimePicker = ({
2128
2136
  apiClient,
2129
2137
  demoRoomCode,
2130
- timezone,
2138
+ timezone: timezone2,
2131
2139
  pageData = {
2132
2140
  scheduleYourVisit: "Schedule Your Visit",
2133
2141
  timeSlot: "Time Slot",
@@ -2181,41 +2189,47 @@ var DateTimePicker = ({
2181
2189
  {
2182
2190
  start_date: startDate,
2183
2191
  end_date: endDate,
2184
- timezone
2192
+ timezone: timezone2
2185
2193
  },
2186
2194
  { enabled: !!demoRoomCode }
2187
2195
  );
2188
2196
  const dayTimeslots = React9.useMemo(() => {
2189
2197
  if (!timeslotsData?.timeslots || !selectedDate) return [];
2198
+ const tz = demoRoom?.timezone || timezone2;
2190
2199
  const selectedDateStr = selectedDate.format("YYYY-MM-DD");
2191
2200
  return timeslotsData.timeslots.filter((slot) => {
2192
- const slotDate = dayjs__default.default(slot.start_time).format("YYYY-MM-DD");
2201
+ const slotDate = tz ? dayjs__default.default(slot.start_time).tz(tz).format("YYYY-MM-DD") : dayjs__default.default(slot.start_time).format("YYYY-MM-DD");
2193
2202
  return slotDate === selectedDateStr;
2194
2203
  });
2195
- }, [timeslotsData, selectedDate]);
2204
+ }, [timeslotsData, selectedDate, demoRoom?.timezone, timezone2]);
2196
2205
  const availableDates = React9.useMemo(() => {
2197
2206
  if (!timeslotsData?.timeslots) return /* @__PURE__ */ new Set();
2207
+ const tz = demoRoom?.timezone || timezone2;
2198
2208
  const dates = /* @__PURE__ */ new Set();
2199
2209
  timeslotsData.timeslots.forEach((slot) => {
2200
2210
  if (slot.status === "available") {
2201
- const dateStr = dayjs__default.default(slot.start_time).format("YYYY-MM-DD");
2211
+ const dateStr = tz ? dayjs__default.default(slot.start_time).tz(tz).format("YYYY-MM-DD") : dayjs__default.default(slot.start_time).format("YYYY-MM-DD");
2202
2212
  dates.add(dateStr);
2203
2213
  }
2204
2214
  });
2205
2215
  return dates;
2206
- }, [timeslotsData]);
2216
+ }, [timeslotsData, demoRoom?.timezone, timezone2]);
2207
2217
  React9.useEffect(() => {
2208
2218
  if (!timeslotsData?.timeslots || isInitialized) return;
2209
- const now2 = dayjs__default.default();
2210
- const availableTimeslots = timeslotsData.timeslots.filter(
2211
- (slot) => slot.status === "available" && dayjs__default.default(slot.start_time).isAfter(now2)
2212
- );
2219
+ const tz = demoRoom?.timezone || timezone2;
2220
+ const now2 = tz ? dayjs__default.default().tz(tz) : dayjs__default.default();
2221
+ const availableTimeslots = timeslotsData.timeslots.filter((slot) => {
2222
+ const slotTime = tz ? dayjs__default.default(slot.start_time).tz(tz) : dayjs__default.default(slot.start_time);
2223
+ return slot.status === "available" && slotTime.isAfter(now2);
2224
+ });
2213
2225
  if (availableTimeslots.length > 0) {
2214
- const sortedSlots = [...availableTimeslots].sort(
2215
- (a, b) => dayjs__default.default(a.start_time).unix() - dayjs__default.default(b.start_time).unix()
2216
- );
2226
+ const sortedSlots = [...availableTimeslots].sort((a, b) => {
2227
+ const timeA = tz ? dayjs__default.default(a.start_time).tz(tz) : dayjs__default.default(a.start_time);
2228
+ const timeB = tz ? dayjs__default.default(b.start_time).tz(tz) : dayjs__default.default(b.start_time);
2229
+ return timeA.unix() - timeB.unix();
2230
+ });
2217
2231
  const nearestSlot = sortedSlots[0];
2218
- const nearestDate = dayjs__default.default(nearestSlot.start_time);
2232
+ const nearestDate = tz ? dayjs__default.default(nearestSlot.start_time).tz(tz) : dayjs__default.default(nearestSlot.start_time);
2219
2233
  setSelectedDate(nearestDate);
2220
2234
  setCalendarValue(nearestDate);
2221
2235
  setSelectedTimeslotId(nearestSlot.id);
@@ -2225,32 +2239,43 @@ var DateTimePicker = ({
2225
2239
  setCalendarValue(now2);
2226
2240
  setIsInitialized(true);
2227
2241
  }
2228
- }, [timeslotsData, isInitialized, selectedDate]);
2242
+ }, [timeslotsData, isInitialized, selectedDate, demoRoom?.timezone, timezone2]);
2229
2243
  React9.useEffect(() => {
2230
2244
  if (!timeslotsData?.timeslots || !isInitialized) return;
2231
2245
  if (selectedDate && selectedDate.isSame(calendarValue, "month")) {
2232
2246
  return;
2233
2247
  }
2248
+ const tz = demoRoom?.timezone || timezone2;
2234
2249
  const currentMonthStart = calendarValue.startOf("month");
2235
2250
  const currentMonthEnd = calendarValue.endOf("month");
2236
- const now2 = dayjs__default.default();
2251
+ const now2 = tz ? dayjs__default.default().tz(tz) : dayjs__default.default();
2237
2252
  const availableTimeslots = timeslotsData.timeslots.filter((slot) => {
2238
- const slotDate = dayjs__default.default(slot.start_time);
2253
+ const slotDate = tz ? dayjs__default.default(slot.start_time).tz(tz) : dayjs__default.default(slot.start_time);
2239
2254
  return slot.status === "available" && slotDate.isAfter(now2) && (slotDate.isAfter(currentMonthStart) || slotDate.isSame(currentMonthStart, "day")) && (slotDate.isBefore(currentMonthEnd) || slotDate.isSame(currentMonthEnd, "day"));
2240
2255
  });
2241
2256
  if (availableTimeslots.length > 0) {
2242
- const sortedSlots = [...availableTimeslots].sort(
2243
- (a, b) => dayjs__default.default(a.start_time).unix() - dayjs__default.default(b.start_time).unix()
2244
- );
2257
+ const sortedSlots = [...availableTimeslots].sort((a, b) => {
2258
+ const timeA = tz ? dayjs__default.default(a.start_time).tz(tz) : dayjs__default.default(a.start_time);
2259
+ const timeB = tz ? dayjs__default.default(b.start_time).tz(tz) : dayjs__default.default(b.start_time);
2260
+ return timeA.unix() - timeB.unix();
2261
+ });
2245
2262
  const firstSlot = sortedSlots[0];
2246
- const firstDate = dayjs__default.default(firstSlot.start_time);
2263
+ const firstDate = tz ? dayjs__default.default(firstSlot.start_time).tz(tz) : dayjs__default.default(firstSlot.start_time);
2247
2264
  setSelectedDate(firstDate);
2248
2265
  setSelectedTimeslotId(firstSlot.id);
2249
2266
  }
2250
- }, [calendarValue, timeslotsData, isInitialized, selectedDate]);
2267
+ }, [
2268
+ calendarValue,
2269
+ timeslotsData,
2270
+ isInitialized,
2271
+ selectedDate,
2272
+ demoRoom?.timezone,
2273
+ timezone2
2274
+ ]);
2251
2275
  const formatTimeslot = (slot) => {
2252
- const start = dayjs__default.default(slot.start_time).format("h:mm A");
2253
- const end = dayjs__default.default(slot.end_time).format("h:mm A");
2276
+ const tz = demoRoom?.timezone || timezone2;
2277
+ const start = tz ? dayjs__default.default(slot.start_time).tz(tz).format("h:mm A") : dayjs__default.default(slot.start_time).format("h:mm A");
2278
+ const end = tz ? dayjs__default.default(slot.end_time).tz(tz).format("h:mm A") : dayjs__default.default(slot.end_time).format("h:mm A");
2254
2279
  return `${start} - ${end}`;
2255
2280
  };
2256
2281
  const wrapperStyle = {
@@ -2665,7 +2690,7 @@ var DateTimePicker = ({
2665
2690
  }) }),
2666
2691
  !timeslotsLoading && dayTimeslots?.length > 0 && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "pt-[24px] text-[#6d6d6F] text-center", children: pageData?.timezone?.replace(
2667
2692
  "{{timezone}}",
2668
- demoRoom?.timezone || timezone || ""
2693
+ demoRoom?.timezone || timezone2 || ""
2669
2694
  ) })
2670
2695
  ] })
2671
2696
  ] }),
@@ -2678,6 +2703,7 @@ var DateTimePicker = ({
2678
2703
  loading: bookingLoading,
2679
2704
  pageData,
2680
2705
  selectedTimeslotId,
2706
+ error: bookingError,
2681
2707
  onSubmit: async (responses) => {
2682
2708
  if (onQuestionnaireSubmit) {
2683
2709
  await onQuestionnaireSubmit(responses);
@@ -8766,7 +8792,7 @@ var BookingForm = ({
8766
8792
  apiConfig,
8767
8793
  demoRoomCode,
8768
8794
  pageData,
8769
- timezone,
8795
+ timezone: timezone2,
8770
8796
  handleBookingSuccess,
8771
8797
  onQuestionnaireSubmit,
8772
8798
  ...props
@@ -8798,7 +8824,7 @@ var BookingForm = ({
8798
8824
  {
8799
8825
  apiClient,
8800
8826
  demoRoomCode,
8801
- timezone,
8827
+ timezone: timezone2,
8802
8828
  locale: apiConfig.locale,
8803
8829
  onBookingSuccess: handleBookingSuccess,
8804
8830
  onQuestionnaireSubmit,