@happychef/reservation-sidebar 2.1.3 → 2.1.5

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
@@ -4414,7 +4414,7 @@ var translations_default = {
4414
4414
  // src/components/ReservationStepOne/Calendar.js
4415
4415
  moment2__default.default.locale("nl");
4416
4416
  var Calendar = ({
4417
- guests: guests2,
4417
+ guests,
4418
4418
  selectedDate,
4419
4419
  onSelectDate,
4420
4420
  autoExpand,
@@ -4559,7 +4559,7 @@ var Calendar = ({
4559
4559
  if (reservationMode === "vrije_keuze") {
4560
4560
  isAvailable = date.isBetween(today, maxDate, null, "[]");
4561
4561
  } else {
4562
- const adjustedGuests = reservationMode !== "met_limieten" ? -1e4 : guests2;
4562
+ const adjustedGuests = reservationMode !== "met_limieten" ? -1e4 : guests;
4563
4563
  if (isTableAssignmentEnabled) {
4564
4564
  isAvailable = algorithm.isDateAvailableWithTableCheck(
4565
4565
  restaurantData,
@@ -4770,7 +4770,7 @@ var Calendar = ({
4770
4770
  };
4771
4771
  var Calendar_default = Calendar;
4772
4772
  var DateSelector = ({
4773
- guests: guests2,
4773
+ guests,
4774
4774
  formData,
4775
4775
  handleChange,
4776
4776
  resetFormDataFields,
@@ -4790,7 +4790,7 @@ var DateSelector = ({
4790
4790
  return /* @__PURE__ */ React9__default.default.createElement("div", { className: "form-group date-selector-container" }, /* @__PURE__ */ React9__default.default.createElement(
4791
4791
  Calendar_default,
4792
4792
  {
4793
- guests: guests2,
4793
+ guests,
4794
4794
  selectedDate: formData.date || null,
4795
4795
  onSelectDate: handleDateSelect,
4796
4796
  autoExpand: false,
@@ -4809,7 +4809,7 @@ var DateSelector_default = DateSelector;
4809
4809
  // src/components/ReservationStepOne/css/timeSelector.css
4810
4810
  styleInject(".new-reservation-page .time-selector-container {\n position: relative;\n}\n.new-reservation-page .time-display {\n display: flex;\n align-items: center;\n justify-content: space-between;\n width: 100%;\n padding: 10px;\n background-color: #fff;\n border: #ccc 1px solid;\n cursor: pointer;\n user-select: none;\n text-align: left;\n border-radius: 5px;\n}\n.new-reservation-page .time-display span:first-child {\n flex-grow: 1;\n}\n.new-reservation-page .time-selector {\n position: absolute;\n z-index: 1000;\n width: 100%;\n max-height: 300px;\n overflow-y: auto;\n background-color: rgba(255, 255, 255, 1);\n border: 1px solid #ccc;\n margin-top: 5px;\n padding: 10px;\n border-radius: 10px;\n animation: fadeInTimeSelector 0.3s ease-in-out;\n top: 75px;\n}\n@keyframes fadeInTimeSelector {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n}\n.new-reservation-page .time-period {\n margin-bottom: 15px;\n}\n.new-reservation-page .time-period-label {\n font-weight: bold;\n margin-bottom: 5px;\n}\n.new-reservation-page .time-options {\n display: flex;\n flex-wrap: wrap;\n gap: 5px;\n}\n.new-reservation-page .time-option {\n padding: 8px 12px;\n background-color: #ccffcc;\n color: #006600;\n border-radius: 5px;\n cursor: pointer;\n transition: background-color 0.2s ease;\n}\n.new-reservation-page .time-option:hover {\n background-color: #b3ffb3;\n}\n.new-reservation-page .time-option.selected {\n background-color: #006600;\n color: #ccffcc;\n}\n.new-reservation-page .info-text {\n color: #666;\n font-style: italic;\n}\n.new-reservation-page .arrow {\n margin-left: auto;\n color: gray;\n display: flex;\n align-items: center;\n}\n@media screen and (max-width: 480px) {\n .new-reservation-page .time-option {\n padding: 6px 10px;\n font-size: 14px;\n }\n}\n");
4811
4811
  var TimeSelector = ({
4812
- guests: guests2,
4812
+ guests,
4813
4813
  formData,
4814
4814
  handleChange,
4815
4815
  field,
@@ -4832,7 +4832,7 @@ var TimeSelector = ({
4832
4832
  dinner: { start: "16:00", end: "23:00", label: t.shifts.dinner }
4833
4833
  };
4834
4834
  React9.useEffect(() => {
4835
- if (!selectedDate || !guests2) {
4835
+ if (!selectedDate || !guests) {
4836
4836
  setAvailableTimes([]);
4837
4837
  return;
4838
4838
  }
@@ -4860,7 +4860,7 @@ var TimeSelector = ({
4860
4860
  }
4861
4861
  } else {
4862
4862
  if (restaurantData && reservations) {
4863
- const adjustedGuests = reservationMode !== "met_limieten" ? -1e4 : guests2;
4863
+ const adjustedGuests = reservationMode !== "met_limieten" ? -1e4 : guests;
4864
4864
  const tableSettings = restaurantData?.["table-settings"] || {};
4865
4865
  const shouldUseTableFiltering = reservationMode === "met_limieten" && tableSettings.isInstalled === true && tableSettings.assignmentMode === "automatic";
4866
4866
  const selectedGiftcard = reservationMode === "met_limieten" ? formData.giftcard : null;
@@ -4897,7 +4897,7 @@ var TimeSelector = ({
4897
4897
  }
4898
4898
  }, [
4899
4899
  selectedDate,
4900
- guests2,
4900
+ guests,
4901
4901
  restaurantData,
4902
4902
  reservations,
4903
4903
  reservationMode,
@@ -5172,7 +5172,7 @@ var ReservationStepOne = ({
5172
5172
  }) => {
5173
5173
  const lang = localStorage.getItem("preferredLanguage") || "nl";
5174
5174
  const t = translations_default[lang].reservationStepOne;
5175
- const [guests2, setGuests] = React9.useState(formData.guests || 2);
5175
+ const [guests, setGuests] = React9.useState(formData.guests || 2);
5176
5176
  const [startDate, setStartDate] = React9.useState(null);
5177
5177
  const [reservations, setReservations] = React9.useState([]);
5178
5178
  const [availableTables, setAvailableTables] = React9.useState([]);
@@ -5248,7 +5248,7 @@ var ReservationStepOne = ({
5248
5248
  needsUpdate = true;
5249
5249
  }
5250
5250
  if (!formData.guests || formData.guests === "") {
5251
- updates.guests = guests2;
5251
+ updates.guests = guests;
5252
5252
  needsUpdate = true;
5253
5253
  }
5254
5254
  if (!Array.isArray(formData.selectedTableNumbers)) {
@@ -5266,7 +5266,7 @@ var ReservationStepOne = ({
5266
5266
  }
5267
5267
  initializationDone.current = true;
5268
5268
  }
5269
- }, [formData, guests2, handleChange]);
5269
+ }, [formData, guests, handleChange]);
5270
5270
  React9.useEffect(() => {
5271
5271
  const tableSettings2 = restaurantData?.["table-settings"] || {};
5272
5272
  const isAutomaticAssignment = tableSettings2.isInstalled && tableSettings2.assignmentMode === "automatic";
@@ -5397,7 +5397,7 @@ var ReservationStepOne = ({
5397
5397
  "aria-pressed": currentMode === "vrije_keuze"
5398
5398
  },
5399
5399
  t.modes.free
5400
- ))), ["onbeperkt_parent", "zonder_regels", "vrije_keuze"].includes(currentMode) && /* @__PURE__ */ React9__default.default.createElement("div", { className: "unlimited-mode-warning" }, /* @__PURE__ */ React9__default.default.createElement("div", { className: "warning-text" }, t.warnings?.unlimitedMode || (lang === "nl" ? "Let op: Bij onbeperkte boekingen wordt geen rekening gehouden met de maximale capaciteit van het restaurant. De maximale zitplaatslimiet kan worden overschreden." : "Warning: Unlimited bookings do not take into account the restaurant's maximum capacity. The maximum seating limit may be exceeded."))), /* @__PURE__ */ React9__default.default.createElement(ValueSelector_default, { value: formData.guests || guests2, onChange: handleGuestChange, error: errors.guests, setGuests }), isFinalMode && formData.guests > 0 && /* @__PURE__ */ React9__default.default.createElement(
5400
+ ))), ["onbeperkt_parent", "zonder_regels", "vrije_keuze"].includes(currentMode) && /* @__PURE__ */ React9__default.default.createElement("div", { className: "unlimited-mode-warning" }, /* @__PURE__ */ React9__default.default.createElement("div", { className: "warning-text" }, t.warnings?.unlimitedMode || (lang === "nl" ? "Let op: Bij onbeperkte boekingen wordt geen rekening gehouden met de maximale capaciteit van het restaurant. De maximale zitplaatslimiet kan worden overschreden." : "Warning: Unlimited bookings do not take into account the restaurant's maximum capacity. The maximum seating limit may be exceeded."))), /* @__PURE__ */ React9__default.default.createElement(ValueSelector_default, { value: formData.guests || guests, onChange: handleGuestChange, error: errors.guests, setGuests }), isFinalMode && formData.guests > 0 && /* @__PURE__ */ React9__default.default.createElement(
5401
5401
  DateSelector_default,
5402
5402
  {
5403
5403
  guests: formData.guests,
@@ -5508,8 +5508,8 @@ var FormField = ({
5508
5508
  halfWidth,
5509
5509
  options = [],
5510
5510
  selectPlaceholder,
5511
- rightIcon: rightIcon2,
5512
- onRightIconClick: onRightIconClick2,
5511
+ rightIcon,
5512
+ onRightIconClick,
5513
5513
  tooltipContent
5514
5514
  }) => {
5515
5515
  const t = getSection(translations_default2, "formField");
@@ -5517,7 +5517,7 @@ var FormField = ({
5517
5517
  const [showTooltip, setShowTooltip] = React9.useState(false);
5518
5518
  const tooltipRef = React9.useRef(null);
5519
5519
  const timerRef = React9.useRef(null);
5520
- const RightIconComponent = rightIcon2;
5520
+ const RightIconComponent = rightIcon;
5521
5521
  const Icon = icon;
5522
5522
  React9.useEffect(() => {
5523
5523
  const handleClickOutside = (e) => {
@@ -5555,7 +5555,7 @@ var FormField = ({
5555
5555
  "div",
5556
5556
  {
5557
5557
  className: "magic-wand-container",
5558
- onClick: onRightIconClick2,
5558
+ onClick: onRightIconClick,
5559
5559
  onMouseEnter: () => {
5560
5560
  if (timerRef.current) clearTimeout(timerRef.current);
5561
5561
  setShowTooltip(true);
@@ -5806,6 +5806,12 @@ var ReservationStepTwo = ({
5806
5806
  const [hasAutofilled, setHasAutofilled] = React9.useState(false);
5807
5807
  const [pendingAutofill, setPendingAutofill] = React9.useState(null);
5808
5808
  const api = useApi_default();
5809
+ const rightIcon = fa.FaMagic;
5810
+ const onRightIconClick = () => {
5811
+ if (pendingAutofill) {
5812
+ applyAutofill();
5813
+ }
5814
+ };
5809
5815
  React9.useEffect(() => {
5810
5816
  moment2__default.default.locale(lang);
5811
5817
  if (!formData.date || !formData.time || !menuData.length) return setAvailableMenus([]);
@@ -5855,15 +5861,23 @@ var ReservationStepTwo = ({
5855
5861
  React9.useEffect(() => {
5856
5862
  tryAutofill();
5857
5863
  }, [formData.email, formData.phone]);
5864
+ const applyAutofill = () => {
5865
+ if (!pendingAutofill) return;
5866
+ setFormData((prev) => ({
5867
+ ...prev,
5868
+ firstName: pendingAutofill.firstName,
5869
+ lastName: pendingAutofill.lastName,
5870
+ email: pendingAutofill.email,
5871
+ phone: pendingAutofill.phone
5872
+ }));
5873
+ setHasAutofilled(true);
5874
+ setPendingAutofill(null);
5875
+ };
5858
5876
  const magicProps = React9.useMemo(() => {
5859
- if (!pendingAutofill)
5860
- return { email: {}, phone: {} };
5877
+ if (!pendingAutofill) return { email: {}, phone: {} };
5861
5878
  const emailActive = pendingAutofill.sources.includes("email") && (formData.email || "").trim().toLowerCase() === pendingAutofill.email.trim().toLowerCase();
5862
5879
  const phoneActive = pendingAutofill.sources.includes("phone") && (formData.phone || "").trim() === pendingAutofill.phone.trim();
5863
- const common = {
5864
- rightIcon,
5865
- onRightIconClick
5866
- };
5880
+ const common = { rightIcon, onRightIconClick };
5867
5881
  return {
5868
5882
  email: emailActive ? {
5869
5883
  ...common,
@@ -6352,7 +6366,7 @@ var ReservationSidebar = ({
6352
6366
  }, [isOpen, api]);
6353
6367
  const handleNewReservationClick = React9.useCallback(() => {
6354
6368
  setFormData({
6355
- guests,
6369
+ guest: 2,
6356
6370
  date: "",
6357
6371
  time: "",
6358
6372
  firstName: "",
package/dist/index.mjs CHANGED
@@ -5,7 +5,7 @@ import { getAvailableTablesForTime, getAvailableTimeblocks, getAvailableTimebloc
5
5
  import { DateTime } from 'luxon';
6
6
  import axios from 'axios';
7
7
  import Lottie from 'lottie-react';
8
- import { FaUser, FaEnvelope, FaPhone, FaInfoCircle, FaTimes } from 'react-icons/fa';
8
+ import { FaMagic, FaUser, FaEnvelope, FaPhone, FaInfoCircle, FaTimes } from 'react-icons/fa';
9
9
 
10
10
  var __create = Object.create;
11
11
  var __defProp = Object.defineProperty;
@@ -4405,7 +4405,7 @@ var translations_default = {
4405
4405
  // src/components/ReservationStepOne/Calendar.js
4406
4406
  moment2.locale("nl");
4407
4407
  var Calendar = ({
4408
- guests: guests2,
4408
+ guests,
4409
4409
  selectedDate,
4410
4410
  onSelectDate,
4411
4411
  autoExpand,
@@ -4550,7 +4550,7 @@ var Calendar = ({
4550
4550
  if (reservationMode === "vrije_keuze") {
4551
4551
  isAvailable = date.isBetween(today, maxDate, null, "[]");
4552
4552
  } else {
4553
- const adjustedGuests = reservationMode !== "met_limieten" ? -1e4 : guests2;
4553
+ const adjustedGuests = reservationMode !== "met_limieten" ? -1e4 : guests;
4554
4554
  if (isTableAssignmentEnabled) {
4555
4555
  isAvailable = isDateAvailableWithTableCheck(
4556
4556
  restaurantData,
@@ -4761,7 +4761,7 @@ var Calendar = ({
4761
4761
  };
4762
4762
  var Calendar_default = Calendar;
4763
4763
  var DateSelector = ({
4764
- guests: guests2,
4764
+ guests,
4765
4765
  formData,
4766
4766
  handleChange,
4767
4767
  resetFormDataFields,
@@ -4781,7 +4781,7 @@ var DateSelector = ({
4781
4781
  return /* @__PURE__ */ React9.createElement("div", { className: "form-group date-selector-container" }, /* @__PURE__ */ React9.createElement(
4782
4782
  Calendar_default,
4783
4783
  {
4784
- guests: guests2,
4784
+ guests,
4785
4785
  selectedDate: formData.date || null,
4786
4786
  onSelectDate: handleDateSelect,
4787
4787
  autoExpand: false,
@@ -4800,7 +4800,7 @@ var DateSelector_default = DateSelector;
4800
4800
  // src/components/ReservationStepOne/css/timeSelector.css
4801
4801
  styleInject(".new-reservation-page .time-selector-container {\n position: relative;\n}\n.new-reservation-page .time-display {\n display: flex;\n align-items: center;\n justify-content: space-between;\n width: 100%;\n padding: 10px;\n background-color: #fff;\n border: #ccc 1px solid;\n cursor: pointer;\n user-select: none;\n text-align: left;\n border-radius: 5px;\n}\n.new-reservation-page .time-display span:first-child {\n flex-grow: 1;\n}\n.new-reservation-page .time-selector {\n position: absolute;\n z-index: 1000;\n width: 100%;\n max-height: 300px;\n overflow-y: auto;\n background-color: rgba(255, 255, 255, 1);\n border: 1px solid #ccc;\n margin-top: 5px;\n padding: 10px;\n border-radius: 10px;\n animation: fadeInTimeSelector 0.3s ease-in-out;\n top: 75px;\n}\n@keyframes fadeInTimeSelector {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n}\n.new-reservation-page .time-period {\n margin-bottom: 15px;\n}\n.new-reservation-page .time-period-label {\n font-weight: bold;\n margin-bottom: 5px;\n}\n.new-reservation-page .time-options {\n display: flex;\n flex-wrap: wrap;\n gap: 5px;\n}\n.new-reservation-page .time-option {\n padding: 8px 12px;\n background-color: #ccffcc;\n color: #006600;\n border-radius: 5px;\n cursor: pointer;\n transition: background-color 0.2s ease;\n}\n.new-reservation-page .time-option:hover {\n background-color: #b3ffb3;\n}\n.new-reservation-page .time-option.selected {\n background-color: #006600;\n color: #ccffcc;\n}\n.new-reservation-page .info-text {\n color: #666;\n font-style: italic;\n}\n.new-reservation-page .arrow {\n margin-left: auto;\n color: gray;\n display: flex;\n align-items: center;\n}\n@media screen and (max-width: 480px) {\n .new-reservation-page .time-option {\n padding: 6px 10px;\n font-size: 14px;\n }\n}\n");
4802
4802
  var TimeSelector = ({
4803
- guests: guests2,
4803
+ guests,
4804
4804
  formData,
4805
4805
  handleChange,
4806
4806
  field,
@@ -4823,7 +4823,7 @@ var TimeSelector = ({
4823
4823
  dinner: { start: "16:00", end: "23:00", label: t.shifts.dinner }
4824
4824
  };
4825
4825
  useEffect(() => {
4826
- if (!selectedDate || !guests2) {
4826
+ if (!selectedDate || !guests) {
4827
4827
  setAvailableTimes([]);
4828
4828
  return;
4829
4829
  }
@@ -4851,7 +4851,7 @@ var TimeSelector = ({
4851
4851
  }
4852
4852
  } else {
4853
4853
  if (restaurantData && reservations) {
4854
- const adjustedGuests = reservationMode !== "met_limieten" ? -1e4 : guests2;
4854
+ const adjustedGuests = reservationMode !== "met_limieten" ? -1e4 : guests;
4855
4855
  const tableSettings = restaurantData?.["table-settings"] || {};
4856
4856
  const shouldUseTableFiltering = reservationMode === "met_limieten" && tableSettings.isInstalled === true && tableSettings.assignmentMode === "automatic";
4857
4857
  const selectedGiftcard = reservationMode === "met_limieten" ? formData.giftcard : null;
@@ -4888,7 +4888,7 @@ var TimeSelector = ({
4888
4888
  }
4889
4889
  }, [
4890
4890
  selectedDate,
4891
- guests2,
4891
+ guests,
4892
4892
  restaurantData,
4893
4893
  reservations,
4894
4894
  reservationMode,
@@ -5163,7 +5163,7 @@ var ReservationStepOne = ({
5163
5163
  }) => {
5164
5164
  const lang = localStorage.getItem("preferredLanguage") || "nl";
5165
5165
  const t = translations_default[lang].reservationStepOne;
5166
- const [guests2, setGuests] = useState(formData.guests || 2);
5166
+ const [guests, setGuests] = useState(formData.guests || 2);
5167
5167
  const [startDate, setStartDate] = useState(null);
5168
5168
  const [reservations, setReservations] = useState([]);
5169
5169
  const [availableTables, setAvailableTables] = useState([]);
@@ -5239,7 +5239,7 @@ var ReservationStepOne = ({
5239
5239
  needsUpdate = true;
5240
5240
  }
5241
5241
  if (!formData.guests || formData.guests === "") {
5242
- updates.guests = guests2;
5242
+ updates.guests = guests;
5243
5243
  needsUpdate = true;
5244
5244
  }
5245
5245
  if (!Array.isArray(formData.selectedTableNumbers)) {
@@ -5257,7 +5257,7 @@ var ReservationStepOne = ({
5257
5257
  }
5258
5258
  initializationDone.current = true;
5259
5259
  }
5260
- }, [formData, guests2, handleChange]);
5260
+ }, [formData, guests, handleChange]);
5261
5261
  useEffect(() => {
5262
5262
  const tableSettings2 = restaurantData?.["table-settings"] || {};
5263
5263
  const isAutomaticAssignment = tableSettings2.isInstalled && tableSettings2.assignmentMode === "automatic";
@@ -5388,7 +5388,7 @@ var ReservationStepOne = ({
5388
5388
  "aria-pressed": currentMode === "vrije_keuze"
5389
5389
  },
5390
5390
  t.modes.free
5391
- ))), ["onbeperkt_parent", "zonder_regels", "vrije_keuze"].includes(currentMode) && /* @__PURE__ */ React9.createElement("div", { className: "unlimited-mode-warning" }, /* @__PURE__ */ React9.createElement("div", { className: "warning-text" }, t.warnings?.unlimitedMode || (lang === "nl" ? "Let op: Bij onbeperkte boekingen wordt geen rekening gehouden met de maximale capaciteit van het restaurant. De maximale zitplaatslimiet kan worden overschreden." : "Warning: Unlimited bookings do not take into account the restaurant's maximum capacity. The maximum seating limit may be exceeded."))), /* @__PURE__ */ React9.createElement(ValueSelector_default, { value: formData.guests || guests2, onChange: handleGuestChange, error: errors.guests, setGuests }), isFinalMode && formData.guests > 0 && /* @__PURE__ */ React9.createElement(
5391
+ ))), ["onbeperkt_parent", "zonder_regels", "vrije_keuze"].includes(currentMode) && /* @__PURE__ */ React9.createElement("div", { className: "unlimited-mode-warning" }, /* @__PURE__ */ React9.createElement("div", { className: "warning-text" }, t.warnings?.unlimitedMode || (lang === "nl" ? "Let op: Bij onbeperkte boekingen wordt geen rekening gehouden met de maximale capaciteit van het restaurant. De maximale zitplaatslimiet kan worden overschreden." : "Warning: Unlimited bookings do not take into account the restaurant's maximum capacity. The maximum seating limit may be exceeded."))), /* @__PURE__ */ React9.createElement(ValueSelector_default, { value: formData.guests || guests, onChange: handleGuestChange, error: errors.guests, setGuests }), isFinalMode && formData.guests > 0 && /* @__PURE__ */ React9.createElement(
5392
5392
  DateSelector_default,
5393
5393
  {
5394
5394
  guests: formData.guests,
@@ -5499,8 +5499,8 @@ var FormField = ({
5499
5499
  halfWidth,
5500
5500
  options = [],
5501
5501
  selectPlaceholder,
5502
- rightIcon: rightIcon2,
5503
- onRightIconClick: onRightIconClick2,
5502
+ rightIcon,
5503
+ onRightIconClick,
5504
5504
  tooltipContent
5505
5505
  }) => {
5506
5506
  const t = getSection(translations_default2, "formField");
@@ -5508,7 +5508,7 @@ var FormField = ({
5508
5508
  const [showTooltip, setShowTooltip] = useState(false);
5509
5509
  const tooltipRef = useRef(null);
5510
5510
  const timerRef = useRef(null);
5511
- const RightIconComponent = rightIcon2;
5511
+ const RightIconComponent = rightIcon;
5512
5512
  const Icon = icon;
5513
5513
  useEffect(() => {
5514
5514
  const handleClickOutside = (e) => {
@@ -5546,7 +5546,7 @@ var FormField = ({
5546
5546
  "div",
5547
5547
  {
5548
5548
  className: "magic-wand-container",
5549
- onClick: onRightIconClick2,
5549
+ onClick: onRightIconClick,
5550
5550
  onMouseEnter: () => {
5551
5551
  if (timerRef.current) clearTimeout(timerRef.current);
5552
5552
  setShowTooltip(true);
@@ -5797,6 +5797,12 @@ var ReservationStepTwo = ({
5797
5797
  const [hasAutofilled, setHasAutofilled] = useState(false);
5798
5798
  const [pendingAutofill, setPendingAutofill] = useState(null);
5799
5799
  const api = useApi_default();
5800
+ const rightIcon = FaMagic;
5801
+ const onRightIconClick = () => {
5802
+ if (pendingAutofill) {
5803
+ applyAutofill();
5804
+ }
5805
+ };
5800
5806
  useEffect(() => {
5801
5807
  moment2.locale(lang);
5802
5808
  if (!formData.date || !formData.time || !menuData.length) return setAvailableMenus([]);
@@ -5846,15 +5852,23 @@ var ReservationStepTwo = ({
5846
5852
  useEffect(() => {
5847
5853
  tryAutofill();
5848
5854
  }, [formData.email, formData.phone]);
5855
+ const applyAutofill = () => {
5856
+ if (!pendingAutofill) return;
5857
+ setFormData((prev) => ({
5858
+ ...prev,
5859
+ firstName: pendingAutofill.firstName,
5860
+ lastName: pendingAutofill.lastName,
5861
+ email: pendingAutofill.email,
5862
+ phone: pendingAutofill.phone
5863
+ }));
5864
+ setHasAutofilled(true);
5865
+ setPendingAutofill(null);
5866
+ };
5849
5867
  const magicProps = useMemo(() => {
5850
- if (!pendingAutofill)
5851
- return { email: {}, phone: {} };
5868
+ if (!pendingAutofill) return { email: {}, phone: {} };
5852
5869
  const emailActive = pendingAutofill.sources.includes("email") && (formData.email || "").trim().toLowerCase() === pendingAutofill.email.trim().toLowerCase();
5853
5870
  const phoneActive = pendingAutofill.sources.includes("phone") && (formData.phone || "").trim() === pendingAutofill.phone.trim();
5854
- const common = {
5855
- rightIcon,
5856
- onRightIconClick
5857
- };
5871
+ const common = { rightIcon, onRightIconClick };
5858
5872
  return {
5859
5873
  email: emailActive ? {
5860
5874
  ...common,
@@ -6343,7 +6357,7 @@ var ReservationSidebar = ({
6343
6357
  }, [isOpen, api]);
6344
6358
  const handleNewReservationClick = useCallback(() => {
6345
6359
  setFormData({
6346
- guests,
6360
+ guest: 2,
6347
6361
  date: "",
6348
6362
  time: "",
6349
6363
  firstName: "",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@happychef/reservation-sidebar",
3
- "version": "2.1.3",
3
+ "version": "2.1.5",
4
4
  "description": "A compound component for managing restaurant reservations - JavaScript version with independent styles",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.mjs",