@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 +21 -23
- package/index.js.map +1 -1
- package/package.json +1 -1
- package/providers/kiwi/KiwiHotelCard/KiwiHotelCard.d.ts +5 -0
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
|
|
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
|
-
|
|
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
|
-
|
|
94813
|
-
|
|
94814
|
-
|
|
94815
|
-
|
|
94816
|
-
|
|
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:
|
|
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
|
-
|
|
94897
|
-
|
|
94898
|
-
|
|
94899
|
-
|
|
94900
|
-
|
|
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);
|