@tripian/react 9.3.28 → 9.3.29

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/index.js CHANGED
@@ -93684,7 +93684,13 @@ const KiwiHotelCard_scss_1 = __importDefault(__webpack_require__(1134));
93684
93684
  const KiwiHotelCardImage_1 = __importDefault(__webpack_require__(1135));
93685
93685
  const KiwiVisaBenefitsModal_1 = __importDefault(__webpack_require__(450));
93686
93686
  const currencySymbol_1 = __webpack_require__(123);
93687
- const KiwiHotelCard = ({ hotel, isFavorite, onFavoriteToggle, showVisaBadge, onHover, onSpecialOffersClick, t }) => {
93687
+ const buildBookingUrl = (catalogUrl, checkIn, checkOut, adults, children) => {
93688
+ const base = catalogUrl.replace(/\/$/, '');
93689
+ if (!checkIn || !checkOut)
93690
+ return base;
93691
+ return `${base}/${checkIn}/${checkOut}/${adults !== null && adults !== void 0 ? adults : 2}/${children !== null && children !== void 0 ? children : 0}/1`;
93692
+ };
93693
+ const KiwiHotelCard = ({ hotel, isFavorite, onFavoriteToggle, showVisaBadge, onHover, onSpecialOffersClick, onCardClick, checkIn, checkOut, adults, children, t }) => {
93688
93694
  const [visaModalOpen, setVisaModalOpen] = (0, react_1.useState)(false);
93689
93695
  const starCount = Math.min(5, Math.round(parseFloat(hotel.starRating) || 0));
93690
93696
  const score = parseFloat(hotel.kiwiOverallScore) || 0;
@@ -93709,10 +93715,7 @@ const KiwiHotelCard = ({ hotel, isFavorite, onFavoriteToggle, showVisaBadge, onH
93709
93715
  const hasInfoTable = perks.length > 0 || hasSpecialOffer || roomCount || settings || styles;
93710
93716
  return (
93711
93717
  // eslint-disable-next-line jsx-a11y/click-events-have-key-events, jsx-a11y/no-static-element-interactions
93712
- react_1.default.createElement("div", { className: KiwiHotelCard_scss_1.default.card, onMouseEnter: () => onHover === null || onHover === void 0 ? void 0 : onHover(hotel.code), onMouseLeave: () => onHover === null || onHover === void 0 ? void 0 : onHover(null), onClick: () => {
93713
- if (hotel.catalogUrl)
93714
- window.open(hotel.catalogUrl, '_blank', 'noopener,noreferrer');
93715
- }, role: hotel.websiteURL ? 'button' : undefined, tabIndex: hotel.websiteURL ? 0 : undefined },
93718
+ react_1.default.createElement("div", { className: KiwiHotelCard_scss_1.default.card, onMouseEnter: () => onHover === null || onHover === void 0 ? void 0 : onHover(hotel.code), onMouseLeave: () => onHover === null || onHover === void 0 ? void 0 : onHover(null), onClick: () => onCardClick === null || onCardClick === void 0 ? void 0 : onCardClick(hotel), role: onCardClick ? 'button' : undefined, tabIndex: onCardClick ? 0 : undefined },
93716
93719
  react_1.default.createElement("div", { className: KiwiHotelCard_scss_1.default.imageArea },
93717
93720
  react_1.default.createElement(KiwiHotelCardImage_1.default, { images: imageUrls, alt: hotel.title, isFavorite: isFavorite, onFavoriteToggle: onFavoriteToggle ? () => onFavoriteToggle(hotel) : undefined })),
93718
93721
  react_1.default.createElement("div", { className: KiwiHotelCard_scss_1.default.content },
@@ -93729,7 +93732,7 @@ const KiwiHotelCard = ({ hotel, isFavorite, onFavoriteToggle, showVisaBadge, onH
93729
93732
  react_1.default.createElement("button", { type: "button", className: KiwiHotelCard_scss_1.default.bookBtn, onClick: (e) => {
93730
93733
  e.stopPropagation();
93731
93734
  if (hotel.catalogUrl)
93732
- window.open(hotel.catalogUrl, '_blank', 'noopener,noreferrer');
93735
+ window.open(buildBookingUrl(hotel.catalogUrl, checkIn, checkOut, adults, children), '_blank', 'noopener,noreferrer');
93733
93736
  } }, t('kiwi.card.book')))),
93734
93737
  react_1.default.createElement("div", { className: KiwiHotelCard_scss_1.default.row2 },
93735
93738
  react_1.default.createElement("span", { className: KiwiHotelCard_scss_1.default.name }, hotel.title),
@@ -94806,15 +94809,14 @@ const KiwiHotelInfoModal = ({ hotel, onClose, fetchPropertyDetail, fetchProperty
94806
94809
  react_1.default.createElement("circle", { cx: "12", cy: "12", r: "10" }),
94807
94810
  react_1.default.createElement("line", { x1: "12", y1: "16", x2: "12", y2: "12" }),
94808
94811
  react_1.default.createElement("line", { x1: "12", y1: "8", x2: "12.01", y2: "8" }))))),
94809
- (onCreateReservation || onBookNow) && (react_1.default.createElement("button", { type: "button", className: KiwiHotelInfoModal_scss_1.default.bookNowBtn, onClick: () => {
94812
+ hotel.catalogUrl && (react_1.default.createElement("button", { type: "button", className: KiwiHotelInfoModal_scss_1.default.bookNowBtn, onClick: () => {
94810
94813
  if (onBookNowClick)
94811
94814
  onBookNowClick(hotel, room, rate);
94812
- if (onCreateReservation) {
94813
- setBookingModal({ room, rate, currency: rateCurrency });
94814
- }
94815
- else if (onBookNow) {
94816
- onBookNow(hotel, room, rate);
94817
- }
94815
+ const base = hotel.catalogUrl.replace(/\/$/, '');
94816
+ const url = internalCheckIn && internalCheckOut
94817
+ ? `${base}/${internalCheckIn}/${internalCheckOut}/${internalAdults}/${internalChildren}/1`
94818
+ : base;
94819
+ window.open(url, '_blank', 'noopener,noreferrer');
94818
94820
  } }, t('kiwi.common.bookNow'))))),
94819
94821
  (rate.description || (rate.policies && Object.values(rate.policies).some(Boolean))) && (react_1.default.createElement("button", { type: "button", className: KiwiHotelInfoModal_scss_1.default.seeMoreBtn, onClick: () => { setRoomRateModal({ roomTitle: room.title, rate, currency: rateCurrency }); if (onSeeMoreDetails)
94820
94822
  onSeeMoreDetails(hotel, room, rate); } },
@@ -94889,17 +94891,13 @@ const KiwiHotelInfoModal = ({ hotel, onClose, fetchPropertyDetail, fetchProperty
94889
94891
  react_1.default.createElement("polyline", { points: "9 18 15 12 9 6" })))))))),
94890
94892
  visaModalOpen && react_1.default.createElement(KiwiVisaBenefitsModal_1.default, { onClose: () => setVisaModalOpen(false), t: t }),
94891
94893
  offersModalOpen && (react_1.default.createElement(KiwiSpecialOffersModal_1.default, { hotelName: data.title, specialOffers: loadingDetail ? undefined : ((_b = propertyDetail === null || propertyDetail === void 0 ? void 0 : propertyDetail.specialOffers) !== null && _b !== void 0 ? _b : []), onClose: () => setOffersModalOpen(false), t: t })),
94892
- roomRateModal && (react_1.default.createElement(KiwiRoomRateModal_1.default, { roomTitle: roomRateModal.roomTitle, rate: roomRateModal.rate, currency: roomRateModal.currency, nightCount: nightCount, onClose: () => setRoomRateModal(undefined), t: t, onBookNow: onCreateReservation || onBookNow ? () => {
94893
- const { rate: rr, currency: rc } = roomRateModal;
94894
- const matchingRoom = availabilityData === null || availabilityData === void 0 ? void 0 : availabilityData.rooms.find((r) => { var _a; return (_a = r.rates) === null || _a === void 0 ? void 0 : _a.some((rt) => rt.code === rr.code); });
94894
+ roomRateModal && (react_1.default.createElement(KiwiRoomRateModal_1.default, { roomTitle: roomRateModal.roomTitle, rate: roomRateModal.rate, currency: roomRateModal.currency, nightCount: nightCount, onClose: () => setRoomRateModal(undefined), t: t, onBookNow: hotel.catalogUrl ? () => {
94895
94895
  setRoomRateModal(undefined);
94896
- if (onCreateReservation) {
94897
- if (matchingRoom)
94898
- setBookingModal({ room: matchingRoom, rate: rr, currency: rc });
94899
- }
94900
- else if (onBookNow && matchingRoom) {
94901
- onBookNow(hotel, matchingRoom, rr);
94902
- }
94896
+ const base = hotel.catalogUrl.replace(/\/$/, '');
94897
+ const url = internalCheckIn && internalCheckOut
94898
+ ? `${base}/${internalCheckIn}/${internalCheckOut}/${internalAdults}/${internalChildren}/1`
94899
+ : base;
94900
+ window.open(url, '_blank', 'noopener,noreferrer');
94903
94901
  } : undefined })),
94904
94902
  bookingModal && onCreateReservation && (react_1.default.createElement(KiwiBookingModal_1.default, { hotelName: data.title, roomTitle: bookingModal.room.title, rate: bookingModal.rate, currency: bookingModal.currency, checkIn: internalCheckIn, checkOut: internalCheckOut, nightCount: nightCount, adults: internalAdults, children: internalChildren, propertyCode: hotel.code, roomCode: bookingModal.room.code, generateExternalId: generateExternalId || (() => `${hotel.code}-${Date.now()}`), onClose: () => setBookingModal(undefined), onCreateReservation: async (req) => {
94905
94903
  const res = await onCreateReservation(req);