@admin-layout/tailwind-design-pro 10.1.1-alpha.16 → 10.1.1-alpha.18
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/lib/components/DeepLinkWaitingPage/DeepLinkWaitingPage.d.ts.map +1 -1
- package/lib/components/DeepLinkWaitingPage/DeepLinkWaitingPage.js +140 -9
- package/lib/components/DeepLinkWaitingPage/DeepLinkWaitingPage.js.map +1 -1
- package/lib/components/Layout/Sidebar/Sidebar.d.ts.map +1 -1
- package/lib/components/Layout/Sidebar/Sidebar.js +14 -25
- package/lib/components/Layout/Sidebar/Sidebar.js.map +1 -1
- package/lib/components/Layout/Sidebar/SidebarMenu.d.ts.map +1 -1
- package/lib/components/Layout/Sidebar/SidebarMenu.js +9 -6
- package/lib/components/Layout/Sidebar/SidebarMenu.js.map +1 -1
- package/lib/components/UI/PropertyCard.d.ts.map +1 -1
- package/lib/components/UI/PropertyCard.js +70 -34
- package/lib/components/UI/PropertyCard.js.map +1 -1
- package/lib/config/analytics-config.js +23 -2
- package/lib/config/analytics-config.js.map +1 -1
- package/lib/config/api.config.d.ts +37 -0
- package/lib/config/api.config.d.ts.map +1 -0
- package/lib/config/api.config.js +52 -0
- package/lib/config/api.config.js.map +1 -0
- package/lib/config/env-config.d.ts +1 -0
- package/lib/config/env-config.d.ts.map +1 -1
- package/lib/config/env-config.js +3 -0
- package/lib/config/env-config.js.map +1 -1
- package/lib/config/index.d.ts +1 -0
- package/lib/config/index.d.ts.map +1 -1
- package/lib/utils/fetchBookingHotelDetails.d.ts +2 -0
- package/lib/utils/fetchBookingHotelDetails.d.ts.map +1 -0
- package/lib/utils/fetchBookingHotelDetails.js +30 -0
- package/lib/utils/fetchBookingHotelDetails.js.map +1 -0
- package/lib/utils/fetchPricelineHotelDetails.d.ts +2 -0
- package/lib/utils/fetchPricelineHotelDetails.d.ts.map +1 -0
- package/lib/utils/fetchPricelineHotelDetails.js +25 -0
- package/lib/utils/fetchPricelineHotelDetails.js.map +1 -0
- package/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DeepLinkWaitingPage.d.ts","sourceRoot":"","sources":["../../../src/components/DeepLinkWaitingPage/DeepLinkWaitingPage.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA8B,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"DeepLinkWaitingPage.d.ts","sourceRoot":"","sources":["../../../src/components/DeepLinkWaitingPage/DeepLinkWaitingPage.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA8B,MAAM,OAAO,CAAC;AAOnD,UAAU,wBAAwB;IAC9B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED,QAAA,MAAM,mBAAmB,EAAE,KAAK,CAAC,EAAE,CAAC,wBAAwB,CAgW3D,CAAC;AAEF,eAAe,mBAAmB,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {jsx,jsxs}from'react/jsx-runtime';import {useState,useEffect}from'react';import {useSearchParams,useParams}from'react-router-dom';import {initGA,trackPageView,trackEvent}from'../../utils/analytics.js';import {config}from'../../config/env-config.js';import {
|
|
1
|
+
import {jsx,jsxs}from'react/jsx-runtime';import {useState,useEffect}from'react';import {useSearchParams,useParams}from'react-router-dom';import {initGA,trackPageView,trackEvent}from'../../utils/analytics.js';import {config}from'../../config/env-config.js';import {ANALYTICS_CONFIG,EVENT_CATEGORIES,EVENT_ACTIONS}from'../../config/analytics-config.js';import {PARTNER_LOGOS}from'../../config/api.config.js';import {fetchBookingHotelDetails}from'../../utils/fetchBookingHotelDetails.js';import {fetchPricelineHotelDetails}from'../../utils/fetchPricelineHotelDetails.js';const DeepLinkWaitingPage = ({
|
|
2
2
|
redirectDelay = 5,
|
|
3
3
|
googleAnalyticsId = config.GOOGLE_ANALYTICS_ID
|
|
4
4
|
}) => {
|
|
@@ -8,6 +8,14 @@ import {jsx,jsxs}from'react/jsx-runtime';import {useState,useEffect}from'react';
|
|
|
8
8
|
} = useParams();
|
|
9
9
|
const [countdown, setCountdown] = useState(redirectDelay);
|
|
10
10
|
const [redirectUrl, setRedirectUrl] = useState('');
|
|
11
|
+
const [isPending, setIsPending] = useState(false);
|
|
12
|
+
const [partnerName, setPartnerName] = useState('');
|
|
13
|
+
const [partnerLogo, setPartnerLogo] = useState('');
|
|
14
|
+
const [propertyName, setPropertyName] = useState('');
|
|
15
|
+
// Partner logos from config
|
|
16
|
+
const airbnbLogo = PARTNER_LOGOS.AIRBNB;
|
|
17
|
+
const bookingLogo = PARTNER_LOGOS.BOOKING;
|
|
18
|
+
const pricelineLogo = PARTNER_LOGOS.PRICELINE;
|
|
11
19
|
useEffect(() => {
|
|
12
20
|
// Initialize Google Analytics if enabled
|
|
13
21
|
{
|
|
@@ -15,13 +23,135 @@ import {jsx,jsxs}from'react/jsx-runtime';import {useState,useEffect}from'react';
|
|
|
15
23
|
}
|
|
16
24
|
// Get the redirect URL from URL parameters
|
|
17
25
|
const url = searchParams.get('redirectUrl');
|
|
18
|
-
|
|
26
|
+
const name = searchParams.get('partnerName');
|
|
27
|
+
const logo = searchParams.get('partnerLogo');
|
|
28
|
+
const propName = searchParams.get('propertyName');
|
|
29
|
+
if (propName) {
|
|
30
|
+
setPropertyName(propName);
|
|
31
|
+
}
|
|
32
|
+
if (url === 'pending') {
|
|
33
|
+
setIsPending(true);
|
|
34
|
+
// Extract query parameters for API calls
|
|
35
|
+
const propertyType = searchParams.get('propertyType');
|
|
36
|
+
const checkIn = searchParams.get('checkIn');
|
|
37
|
+
const checkOut = searchParams.get('checkOut');
|
|
38
|
+
const adults = parseInt(searchParams.get('adults') || '1', 10);
|
|
39
|
+
const children = parseInt(searchParams.get('children') || '0', 10);
|
|
40
|
+
// Process API call in the background
|
|
41
|
+
processRedirection(propertyId, propertyType, checkIn, checkOut, adults, children);
|
|
42
|
+
} else if (url) {
|
|
19
43
|
setRedirectUrl(url);
|
|
44
|
+
setPartnerName(name || '');
|
|
45
|
+
setPartnerLogo(logo || '');
|
|
46
|
+
startCountdown(url);
|
|
20
47
|
}
|
|
21
48
|
// Track page view if enabled
|
|
22
49
|
{
|
|
23
50
|
trackPageView(window.location.pathname, `Deep Link Waiting Page - Property: ${propertyId || 'Unknown'}`);
|
|
24
51
|
}
|
|
52
|
+
}, [searchParams, redirectDelay, propertyId, googleAnalyticsId]);
|
|
53
|
+
const processRedirection = async (propertyId, propertyType, checkIn, checkOut, adults, children) => {
|
|
54
|
+
if (!propertyId || !propertyType) {
|
|
55
|
+
console.error('Missing property ID or type');
|
|
56
|
+
return;
|
|
57
|
+
}
|
|
58
|
+
try {
|
|
59
|
+
let redirectUrl = '';
|
|
60
|
+
let partnerName = '';
|
|
61
|
+
let partnerLogo = '';
|
|
62
|
+
let propertyName = '';
|
|
63
|
+
// Handle different property types
|
|
64
|
+
switch (propertyType) {
|
|
65
|
+
case 'AirbnbProperty':
|
|
66
|
+
try {
|
|
67
|
+
// Airbnb doesn't need API call, construct URL directly
|
|
68
|
+
redirectUrl = `https://www.airbnb.com/rooms/${propertyId}?check_in=${checkIn}&check_out=${checkOut}&guests=${adults + children || 1}`;
|
|
69
|
+
partnerName = 'Airbnb.com';
|
|
70
|
+
partnerLogo = airbnbLogo;
|
|
71
|
+
} catch (error) {
|
|
72
|
+
console.error('Error constructing Airbnb URL:', error);
|
|
73
|
+
// Even though this is a direct URL construction, add a fallback just in case
|
|
74
|
+
redirectUrl = `https://www.airbnb.com/rooms/${propertyId}`;
|
|
75
|
+
partnerName = 'Airbnb.com';
|
|
76
|
+
partnerLogo = airbnbLogo;
|
|
77
|
+
}
|
|
78
|
+
break;
|
|
79
|
+
case 'BookingProperty':
|
|
80
|
+
// Call Booking.com API
|
|
81
|
+
const bookingDetails = await fetchBookingHotelDetails(propertyId, checkIn, checkOut, adults, children);
|
|
82
|
+
console.log('bookingDetails---->', bookingDetails);
|
|
83
|
+
if (bookingDetails && bookingDetails?.data?.url) {
|
|
84
|
+
redirectUrl = bookingDetails.data.url;
|
|
85
|
+
partnerName = 'Booking.com';
|
|
86
|
+
partnerLogo = bookingLogo;
|
|
87
|
+
if (bookingDetails.data.name) {
|
|
88
|
+
propertyName = bookingDetails.data.name;
|
|
89
|
+
}
|
|
90
|
+
} else {
|
|
91
|
+
// Fallback URL for Booking.com
|
|
92
|
+
const checkInFormatted = typeof checkIn === 'string' ? checkIn : '';
|
|
93
|
+
const checkOutFormatted = typeof checkOut === 'string' ? checkOut : '';
|
|
94
|
+
const guestsCount = adults + children || 1;
|
|
95
|
+
redirectUrl = `https://www.booking.com/hotel.html?aid=304142&label=gen173nr-1FCAEoggI46AdIM1gEaLYBiAEBmAEhuAEXyAEM2AEB6AEB-AELiAIBqAIDuALxt6-rBsACAdICJDI2NzI4ZDAwLTdhZWQtNDJjOS1iYzRjLTI3ZDRkMzk5MTRlZNgCBuACAQ&sid=d29e889897f5d24d00e4f8d55c8399bd&all_sr_blocks=${propertyId};checkin=${checkInFormatted};checkout=${checkOutFormatted};dest_id=;dest_type=;group_adults=${adults};group_children=${children};hapos=1;highlighted_blocks=${propertyId};no_rooms=1;req_adults=${adults};req_children=${children};room1=A%2CA;sb_price_type=total;sr_order=popularity;sr_pri_blocks=${propertyId};srepoch=1625097600;srpvid=e8c95a7a7f130034;type=total;ucfs=1&#hotelTmpl`;
|
|
96
|
+
partnerName = 'Booking.com';
|
|
97
|
+
partnerLogo = bookingLogo;
|
|
98
|
+
}
|
|
99
|
+
break;
|
|
100
|
+
case 'PricelineProperty':
|
|
101
|
+
// Call Priceline API
|
|
102
|
+
const pricelineDetails = await fetchPricelineHotelDetails(propertyId);
|
|
103
|
+
if (pricelineDetails && pricelineDetails.getHotelHotelDetails) {
|
|
104
|
+
const hotelInfo = pricelineDetails.getHotelHotelDetails?.results?.hotel_data?.hotel_0;
|
|
105
|
+
if (hotelInfo && hotelInfo.priceline_url) {
|
|
106
|
+
redirectUrl = hotelInfo.priceline_url;
|
|
107
|
+
partnerName = 'Priceline.com';
|
|
108
|
+
partnerLogo = pricelineLogo;
|
|
109
|
+
if (hotelInfo.name) {
|
|
110
|
+
propertyName = hotelInfo.name;
|
|
111
|
+
}
|
|
112
|
+
} else {
|
|
113
|
+
// Fallback URL for Priceline
|
|
114
|
+
const cityId = '';
|
|
115
|
+
const checkInDate = typeof checkIn === 'string' ? checkIn : '';
|
|
116
|
+
const checkOutDate = typeof checkOut === 'string' ? checkOut : '';
|
|
117
|
+
const roomCount = 1;
|
|
118
|
+
const adultCount = adults || 1;
|
|
119
|
+
redirectUrl = `https://www.priceline.com/relax/at/${propertyId}/from/${checkInDate}/to/${checkOutDate}/rooms/${roomCount}/adults/${adultCount}?cityId=${cityId}&cur=USD&psl=${propertyId}`;
|
|
120
|
+
partnerName = 'Priceline.com';
|
|
121
|
+
partnerLogo = pricelineLogo;
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
break;
|
|
125
|
+
default:
|
|
126
|
+
redirectUrl = `/property/${propertyId}`;
|
|
127
|
+
partnerName = 'Our Website';
|
|
128
|
+
break;
|
|
129
|
+
}
|
|
130
|
+
// If we have a redirect URL, update the state
|
|
131
|
+
if (redirectUrl) {
|
|
132
|
+
if (ANALYTICS_CONFIG.enabled && ANALYTICS_CONFIG.trackEvents.redirections) {
|
|
133
|
+
trackEvent(EVENT_CATEGORIES.REDIRECTION, EVENT_ACTIONS.AUTO_REDIRECT, `Property ID: ${propertyId}, Provider: ${partnerName}, URL: ${redirectUrl}${propertyName ? `, Property Name: ${propertyName}` : ''}`);
|
|
134
|
+
}
|
|
135
|
+
setRedirectUrl(redirectUrl);
|
|
136
|
+
setPartnerName(partnerName);
|
|
137
|
+
setPartnerLogo(partnerLogo);
|
|
138
|
+
if (propertyName) {
|
|
139
|
+
setPropertyName(propertyName);
|
|
140
|
+
}
|
|
141
|
+
setIsPending(false);
|
|
142
|
+
// Start countdown after we have the URL
|
|
143
|
+
startCountdown(redirectUrl);
|
|
144
|
+
} else {
|
|
145
|
+
console.error('Failed to generate redirect URL');
|
|
146
|
+
}
|
|
147
|
+
} catch (error) {
|
|
148
|
+
console.error('Error in processing redirection:', error);
|
|
149
|
+
{
|
|
150
|
+
trackEvent(EVENT_CATEGORIES.ERROR, EVENT_ACTIONS.API_ERROR, `Property ID: ${propertyId}, Type: ${propertyType}`);
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
};
|
|
154
|
+
const startCountdown = url => {
|
|
25
155
|
// Start countdown
|
|
26
156
|
const timer = setInterval(() => {
|
|
27
157
|
setCountdown(prev => {
|
|
@@ -29,7 +159,7 @@ import {jsx,jsxs}from'react/jsx-runtime';import {useState,useEffect}from'react';
|
|
|
29
159
|
clearInterval(timer);
|
|
30
160
|
// Track auto-redirect event if enabled
|
|
31
161
|
{
|
|
32
|
-
trackEvent(EVENT_CATEGORIES.REDIRECTION, EVENT_ACTIONS.AUTO_REDIRECT, `
|
|
162
|
+
trackEvent(EVENT_CATEGORIES.REDIRECTION, EVENT_ACTIONS.AUTO_REDIRECT, `Property ID: ${propertyId}, Provider: ${partnerName}, URL: ${url}${propertyName ? `, Property Name: ${propertyName}` : ''}`);
|
|
33
163
|
}
|
|
34
164
|
// Redirect after countdown finishes
|
|
35
165
|
window.location.href = url || '';
|
|
@@ -39,16 +169,17 @@ import {jsx,jsxs}from'react/jsx-runtime';import {useState,useEffect}from'react';
|
|
|
39
169
|
});
|
|
40
170
|
}, 1000);
|
|
41
171
|
return () => clearInterval(timer);
|
|
42
|
-
}
|
|
172
|
+
};
|
|
43
173
|
const handleManualRedirect = () => {
|
|
44
174
|
if (redirectUrl) {
|
|
45
175
|
// Track manual click event if enabled
|
|
46
176
|
{
|
|
47
|
-
trackEvent(EVENT_CATEGORIES.REDIRECTION, EVENT_ACTIONS.MANUAL_CLICK, `
|
|
177
|
+
trackEvent(EVENT_CATEGORIES.REDIRECTION, EVENT_ACTIONS.MANUAL_CLICK, `Property ID: ${propertyId}, Provider: ${partnerName}, URL: ${redirectUrl}${propertyName ? `, Property Name: ${propertyName}` : ''}`, countdown);
|
|
48
178
|
}
|
|
49
179
|
window.location.href = redirectUrl;
|
|
50
180
|
}
|
|
51
181
|
};
|
|
182
|
+
// Regular waiting page UI once we have the URL
|
|
52
183
|
return jsx("div", {
|
|
53
184
|
className: "flex flex-col items-center justify-center min-h-screen bg-gray-50 p-4",
|
|
54
185
|
children: jsxs("div", {
|
|
@@ -111,11 +242,11 @@ import {jsx,jsxs}from'react/jsx-runtime';import {useState,useEffect}from'react';
|
|
|
111
242
|
}), jsxs("div", {
|
|
112
243
|
className: "text-center",
|
|
113
244
|
children: [jsx("img", {
|
|
114
|
-
src:
|
|
245
|
+
src: partnerLogo || '/images/partner-logo.png',
|
|
115
246
|
alt: "Partner Logo",
|
|
116
247
|
className: "w-32 h-auto mb-2"
|
|
117
248
|
}), jsxs("p", {
|
|
118
|
-
children: ["Now complete your booking with", jsx("br", {}), "the property provider ",
|
|
249
|
+
children: ["Now complete your booking with", jsx("br", {}), "the property provider ", partnerName]
|
|
119
250
|
})]
|
|
120
251
|
})]
|
|
121
252
|
}), jsxs("p", {
|
|
@@ -130,12 +261,12 @@ import {jsx,jsxs}from'react/jsx-runtime';import {useState,useEffect}from'react';
|
|
|
130
261
|
children: "Continue Now"
|
|
131
262
|
}), jsxs("p", {
|
|
132
263
|
className: "mt-8 text-sm text-gray-500",
|
|
133
|
-
children: ["If you are not redirected to ",
|
|
264
|
+
children: ["If you are not redirected to ", partnerName || 'the provider', " in a few seconds, please", ' ', jsx("a", {
|
|
134
265
|
href: redirectUrl,
|
|
135
266
|
className: "text-blue-600 hover:underline",
|
|
136
267
|
onClick: () => {
|
|
137
268
|
{
|
|
138
|
-
trackEvent(EVENT_CATEGORIES.REDIRECTION, EVENT_ACTIONS.LINK_CLICK, `
|
|
269
|
+
trackEvent(EVENT_CATEGORIES.REDIRECTION, EVENT_ACTIONS.LINK_CLICK, `Property ID: ${propertyId}, Provider: ${partnerName}, URL: ${redirectUrl}${propertyName ? `, Property Name: ${propertyName}` : ''}`, countdown);
|
|
139
270
|
}
|
|
140
271
|
},
|
|
141
272
|
children: "click here"
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DeepLinkWaitingPage.js","sources":["../../../src/components/DeepLinkWaitingPage/DeepLinkWaitingPage.tsx"],"sourcesContent":[null],"names":["_jsx"],"mappings":"
|
|
1
|
+
{"version":3,"file":"DeepLinkWaitingPage.js","sources":["../../../src/components/DeepLinkWaitingPage/DeepLinkWaitingPage.tsx"],"sourcesContent":[null],"names":["_jsx","_jsxs"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Sidebar.d.ts","sourceRoot":"","sources":["../../../../src/components/Layout/Sidebar/Sidebar.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAU1B,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAG7C,eAAO,MAAM,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC,YAAY,
|
|
1
|
+
{"version":3,"file":"Sidebar.d.ts","sourceRoot":"","sources":["../../../../src/components/Layout/Sidebar/Sidebar.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAU1B,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAG7C,eAAO,MAAM,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC,YAAY,CAyM1C,CAAC;AAEF,eAAe,OAAO,CAAC"}
|
|
@@ -110,27 +110,23 @@ import {jsxs,jsx}from'react/jsx-runtime';import React__default,{useState,useEffe
|
|
|
110
110
|
};
|
|
111
111
|
const renderSidebarContent = () => {
|
|
112
112
|
return jsxs("div", {
|
|
113
|
-
className: "text-gray-500 dark:text-gray-400
|
|
113
|
+
className: "text-gray-500 dark:text-gray-400 md:h-[93vh] h-full flex flex-col",
|
|
114
114
|
style: SidebarStyles,
|
|
115
|
-
children: [jsx("
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
115
|
+
children: [jsx("div", {
|
|
116
|
+
className: "relative",
|
|
117
|
+
children: jsx("button", {
|
|
118
|
+
onClick: toggleCollapsed,
|
|
119
|
+
className: "w-6 h-6 text-center bg-white text-gray-300 flex items-center justify-center rounded-full shadow-[0_2px_8px_-2px_rgba(0,0,0,0.05),0_1px_4px_-1px_rgba(25,15,15,0.07),0_0_1px_0_rgba(0,0,0,0.08)] hover:text-gray-600 hover:shadow-[0_4px_16px_-4px_rgba(0,0,0,0.05),0_2px_8px_-2px_rgba(25,15,15,0.07),0_1px_2px_0_rgba(0,0,0,0.08)] transition-colors text-[22px] absolute right-[-13px] top-[20px]",
|
|
120
|
+
"aria-label": collapsed ? 'Expand sidebar' : 'Collapse sidebar',
|
|
121
|
+
children: collapsed ? jsx(ChevronRightIcon, {
|
|
122
|
+
fontSize: '11px'
|
|
123
|
+
}) : jsx(ChevronLeftIcon, {
|
|
124
|
+
fontSize: '11px'
|
|
125
|
+
})
|
|
123
126
|
})
|
|
124
127
|
}), jsxs("div", {
|
|
125
|
-
className: "
|
|
128
|
+
className: "flex-grow overflow-y-auto",
|
|
126
129
|
children: [middleMenus?.length > 0 && jsxs("div", {
|
|
127
|
-
style: {
|
|
128
|
-
flex: 1,
|
|
129
|
-
overflowY: 'auto',
|
|
130
|
-
overflowX: 'hidden',
|
|
131
|
-
display: 'flex',
|
|
132
|
-
flexDirection: 'column'
|
|
133
|
-
},
|
|
134
130
|
className: "removeBoxShadow",
|
|
135
131
|
children: [renderSeparator(deviceLayout?.middleMenuDividerName), jsx(SidebarMenu, {
|
|
136
132
|
menuData: updateMenuIcons(middleMenus),
|
|
@@ -139,13 +135,6 @@ import {jsxs,jsx}from'react/jsx-runtime';import React__default,{useState,useEffe
|
|
|
139
135
|
collapsed: collapsed
|
|
140
136
|
})]
|
|
141
137
|
}), lowerMenus?.length > 0 && jsxs("div", {
|
|
142
|
-
style: {
|
|
143
|
-
flex: 1,
|
|
144
|
-
overflowY: 'auto',
|
|
145
|
-
overflowX: 'hidden',
|
|
146
|
-
display: 'flex',
|
|
147
|
-
flexDirection: 'column'
|
|
148
|
-
},
|
|
149
138
|
className: "removeBoxShadow",
|
|
150
139
|
children: [renderSeparator(deviceLayout?.lowerMenuDividerName), jsx(SidebarMenu, {
|
|
151
140
|
menuData: updateMenuIcons(lowerMenus),
|
|
@@ -163,7 +152,7 @@ import {jsxs,jsx}from'react/jsx-runtime';import React__default,{useState,useEffe
|
|
|
163
152
|
})
|
|
164
153
|
})]
|
|
165
154
|
}), jsx("div", {
|
|
166
|
-
className: "
|
|
155
|
+
className: "flex-shrink-0 p-4 border-t dark:border-gray-700",
|
|
167
156
|
children: jsx(BottomMenuDropDown, {
|
|
168
157
|
menus: bottomMenusData,
|
|
169
158
|
collapsed: collapsed,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Sidebar.js","sources":["../../../../src/components/Layout/Sidebar/Sidebar.tsx"],"sourcesContent":[null],"names":["React"
|
|
1
|
+
{"version":3,"file":"Sidebar.js","sources":["../../../../src/components/Layout/Sidebar/Sidebar.tsx"],"sourcesContent":[null],"names":["React"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SidebarMenu.d.ts","sourceRoot":"","sources":["../../../../src/components/Layout/Sidebar/SidebarMenu.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA8B,MAAM,OAAO,CAAC;AAKnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAEjD,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,gBAAgB,
|
|
1
|
+
{"version":3,"file":"SidebarMenu.d.ts","sourceRoot":"","sources":["../../../../src/components/Layout/Sidebar/SidebarMenu.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA8B,MAAM,OAAO,CAAC;AAKnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAEjD,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,gBAAgB,CA8MlD,CAAC"}
|
|
@@ -4,7 +4,7 @@ import {jsx,jsxs}from'react/jsx-runtime';import {useState}from'react';import {us
|
|
|
4
4
|
settings,
|
|
5
5
|
collapsed
|
|
6
6
|
}) => {
|
|
7
|
-
const [
|
|
7
|
+
const [openMenus, setOpenMenus] = useState([]);
|
|
8
8
|
const [hoveredMenu, setHoveredMenu] = useState(null);
|
|
9
9
|
const [popupPosition, setPopupPosition] = useState({
|
|
10
10
|
top: 0,
|
|
@@ -31,10 +31,13 @@ import {jsx,jsxs}from'react/jsx-runtime';import {useState}from'react';import {us
|
|
|
31
31
|
const toggleMenu = (path, depth, e) => {
|
|
32
32
|
e.preventDefault();
|
|
33
33
|
if (collapsed) return;
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
34
|
+
setOpenMenus(prev => {
|
|
35
|
+
if (prev.includes(path)) {
|
|
36
|
+
return prev.filter(item => item !== path);
|
|
37
|
+
} else {
|
|
38
|
+
return [...prev, path];
|
|
39
|
+
}
|
|
40
|
+
});
|
|
38
41
|
};
|
|
39
42
|
const handleMenuClick = (path, hasChildren, depth, e) => {
|
|
40
43
|
if (hasChildren && !collapsed) {
|
|
@@ -112,7 +115,7 @@ import {jsx,jsxs}from'react/jsx-runtime';import {useState}from'react';import {us
|
|
|
112
115
|
};
|
|
113
116
|
const renderMenuItem = (item, depth = 0, isHoverMenu = false) => {
|
|
114
117
|
const hasChildren = item.children && item.children.length > 0;
|
|
115
|
-
const isOpen =
|
|
118
|
+
const isOpen = openMenus.includes(item.path);
|
|
116
119
|
const isActive = isMenuItemActive(item.path);
|
|
117
120
|
const isHovered = hoveredMenu === item.path;
|
|
118
121
|
const paddingLeft = `${depth * 1}rem`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SidebarMenu.js","sources":["../../../../src/components/Layout/Sidebar/SidebarMenu.tsx"],"sourcesContent":[null],"names":["
|
|
1
|
+
{"version":3,"file":"SidebarMenu.js","sources":["../../../../src/components/Layout/Sidebar/SidebarMenu.tsx"],"sourcesContent":[null],"names":["_jsxs"],"mappings":"yQAOO,MAAM,WAAW,GAA+B,CAAC;UAC9C;aACY;AAClB,EAAA,QAAM;AACN,EAAA;AACA,CAAA,KAAA;AAEA,EAAA,MAAA,CAAA,SAAsB,EAAA,YAAI,CAAA,GAAA,QAAoB,CAAA,EAAA,CAAA;AAC1C,EAAA,MAAA,CAAA,WAAiB,EAAA,cAAW,CAAC,WAAS,CAAA,IAAA,CAAA;QACtC,CAAM,aAAQ,kBAAmB,CAAA,WAAW,CAAA;SAE9B,CAAA;AACd,IAAA,MAAA,EAAI;AACA,GAAA,CAAA;QACJ;mBAEyD;;AAErD,GAAA,GAAA,KAAA;QACJ,QAAC,GAAA,WAAA,EAAA;AAED,EAAA,MAAA,gBAAa,GAAA,QAAA,IAAA;AACjB,IAAA,MAAE,WAAA,GAAA,QAAA,CAAA,QAAA;IAEF,MAAM,QAAA,mBAA2C,CAAmB,QAAI,EAAA,WAAA,CAAA;;AAEpE,IAAA,IAAA,WAAa,KAAA,QAAA,EAAA;aAAS,IAAA;AAEtB;AACI;AACI,IAAA,IAAA,QAAA,IAAA,WAAkB,CAAA,UAAQ,CAAA,QAAY,GAAA,GAAA,CAAI,EAAE;aAC/C,IAAA;;AACG,IAAA,OAAA,KAAA;;AAER,EAAA,MAAA,UAAG,GAAA,CAAA,IAAA,EAAA,KAAA,EAAA,CAAA,KAAA;AACP,IAAA,CAAC,CAAC,cAAA,EAAA;IAEF,IAAM,SAAA,EAAA;AACF,IAAA,YAAe,CAAA,IAAA,IAAA;AACX,MAAA,IAAA,IAAA,CAAA,QAAW,CAAI,IAAA,CAAE;QACrB,OAAC,IAAA,CAAA,MAAA,CAAA,IAAA,IAAA,IAAA,KAAA,IAAA,CAAA;AACL,OAAE,MAAA;AAEF,QAAA,OAAoB,CAAA,GAAA,IAAA,EAAA,IAAI,CAAA;;AAExB,KAAC,CAAC;;QAGE,eAAgD,GAAA,CAAA,IAAA,EAAA,WAAA,EAAA,KAAA,EAAA,CAAA,KAAA;AAChD,IAAA,IAAA,eAAiB,CAAA,SAAY,EAAA;AACzB,MAAA,UAAA,CAAA,IAAa,EAAA,KAAG,EAAE;AAClB;;AAGA,EAAA,MAAA,cAAoB,GAAA,IAAA,IAAA;AACpB,IAAA,OAAA,IAAA,CAAI,MAAM,CAAI,CAAA,CAAA,CAAA,WAAK,EAAA;;AAGnB,EAAA,MAAA,eAAA,GAAA,CAAA,CAAgB,EAAC,IAAA,EAAA,WAAA,KAAA;AACb;iBACM,IAAA,CAAA,WAAa,IAAA,IAAA,CAAA,QAAA,IAAA,IAAA,CAAA,QAAA,CAAA,MAAA,GAAA,CAAA,EAAA;AACtB,MAAA,MAAA,OAAE,GAAA,CAAA,CAAA,aAAA;AAEH,MAAA,MAAA,IAAA,GAAA,OAAc,CAAC,qBAAW,EAAA;AAIlC,MAAA,IAAM;AACF;sBACkB,CAAA;QAClB,GAAC,EAAA,GAAA;AACL,QAAE,MAAA,EAAA,IAAA,CAAA;OAEI,CAAA;oBACgB,CAAA,IAAA,CAAA,IAAI,CAAI;AAAwB;;AAGlD,EAAA,MAAA,eAAkB,GAAA,CAAA,IAAY,EAAA,WAAM,KAAK;AAEzC,IAAA,IAAA,SAEQ,IAAA,CAAA,WAAA,EAAA;AAEI,MAAA,cAAA,CAAA,IAAA,CAAA;AACA;AACA,GAAA;AACA,EAAA,MAAA,eAAA,IAAW,IAA+B,EAAA,KAAA,GAAA,CAAA,KAAA;AAC1C,IAAA,IAAA,CAAA,IAAA,CAAA,QAAA,QAA0C,CAAA,QAAA,CAAA,MAAA,KAAA,CAAA,EAAA,OAAA,IAAA;iBAClC,GAAA,kBAAuB,CAAA,QAAA,EAAE,YAAoC,EAAA,IAAA,CAAA;AACrE,IAAA,MAAA,eAAoB,SAAA,GAAA,EAAA,GAAA,GAAA,CAAA;AACpB,IAAA,OAAAA,IAAA,CAAA,KAAA,EAAQ;eAGZ,EAAA,2EAC6B;AACrB,MAAA,KAAA,EAAA;;;;;AAKH,QAAA,SAAA,EAAA,+BAAA;AACA,QAAA,SAAA,EAAA,+BAGS;AAc1B,QAAE,QAAA,EAAA,qBAAA;AAEF;AACI,QAAA,KAAA,EAAiB,aAAG;QACpB,QAAM,EAAA;;AAEN,MAAA,QAAM,cAAY,EAAA;AAClB,QAAA,uBAAuB;UACjB,MAAA,EAAA;;AAGN;;;;;qBAkBY;6FAoCW;;AAEX,UAAA,eAAY,EAAA,kBAAA,CAAA,QAAA,EAAA,YAAA,EAAA,IAAA;AACZ,SAAA;qBACe,CAAA,MAAA,EAAA;AAU/B,UAAE,KAAA,EAAA;AAEF,YACI,KAAK,EAAA,QAAA,EAAA;AAMb,WAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PropertyCard.d.ts","sourceRoot":"","sources":["../../../src/components/UI/PropertyCard.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAoD,MAAM,OAAO,CAAC;AAezE,UAAU,aAAa;IACnB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;CACtB;AAED,KAAK,iBAAiB,GAAG;IACrB,IAAI,CAAC,EAAE,GAAG,CAAC;IACX,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACrC,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,aAAa,CAAC,EAAE,aAAa,EAAE,CAAC;IAChC,UAAU,CAAC,EAAE,GAAG,EAAE,CAAC;CACtB,CAAC;
|
|
1
|
+
{"version":3,"file":"PropertyCard.d.ts","sourceRoot":"","sources":["../../../src/components/UI/PropertyCard.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAoD,MAAM,OAAO,CAAC;AAezE,UAAU,aAAa;IACnB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;CACtB;AAED,KAAK,iBAAiB,GAAG;IACrB,IAAI,CAAC,EAAE,GAAG,CAAC;IACX,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACrC,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,aAAa,CAAC,EAAE,aAAa,EAAE,CAAC;IAChC,UAAU,CAAC,EAAE,GAAG,EAAE,CAAC;CACtB,CAAC;AAsGF,eAAO,MAAM,YAAY,GAAI,sHAW1B,iBAAiB,GAAG,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,4CAoX1D,CAAC"}
|
|
@@ -1,30 +1,57 @@
|
|
|
1
|
-
import {jsx,Fragment,jsxs}from'react/jsx-runtime';import {useMemo,useState,useEffect,useCallback}from'react';import {BsHeart}from'@react-icons/all-files/bs/BsHeart.js';import {BsStarFill}from'@react-icons/all-files/bs/BsStarFill.js';import {FaUserAlt}from'@react-icons/all-files/fa/FaUserAlt.js';import {useTranslation}from'react-i18next';import {WithAuthentication}from'@adminide-stack/user-auth0-browser/lib/index.component.js';import {Splide,SplideSlide}from'@cdmbase/react-splide';import {useLocation}from'@remix-run/react';import {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
1
|
+
import {jsx,Fragment,jsxs}from'react/jsx-runtime';import {useMemo,useState,useEffect,useCallback}from'react';import {BsHeart}from'@react-icons/all-files/bs/BsHeart.js';import {BsStarFill}from'@react-icons/all-files/bs/BsStarFill.js';import {FaUserAlt}from'@react-icons/all-files/fa/FaUserAlt.js';import {useTranslation}from'react-i18next';import {WithAuthentication}from'@adminide-stack/user-auth0-browser/lib/index.component.js';import {Splide,SplideSlide}from'@cdmbase/react-splide';import {useLocation}from'@remix-run/react';import {startCase}from'lodash-es';import {useTailwindTheme}from'../../hooks/useTailwindTheme.js';import {useGetCurrentLongLat}from'../../hooks/use-get-current-lat-long.js';import {LocationIcon}from'./icons/LocationIcon.js';import {renderDynamicIcon}from'../../helpers/DynamicIcon.js';import {config}from'../../config/env-config.js';// const generateHref = async (room, from, to, adults, children) => {
|
|
2
|
+
// if (!room) return null;
|
|
3
|
+
// switch (room.__typename) {
|
|
4
|
+
// case 'AirbnbProperty':
|
|
5
|
+
// // Airbnb doesn't need API call, just construct URL directly
|
|
6
|
+
// return `/deep-link/property/${room.id}?redirectUrl=${encodeURIComponent(
|
|
7
|
+
// `https://www.airbnb.com/rooms/${room.id}?check_in=${from}&check_out=${to}&guests=${
|
|
8
|
+
// adults + children || 1
|
|
9
|
+
// }`,
|
|
10
|
+
// )}&partnerName=${encodeURIComponent('Airbnb.com')}&partnerLogo=${airbnbLogo}`;
|
|
11
|
+
// case 'BookingProperty':
|
|
12
|
+
// // Call Booking.com API
|
|
13
|
+
// try {
|
|
14
|
+
// const hotelDetails = await fetchBookingHotelDetails(room.id, from, to, adults, children);
|
|
15
|
+
// console.log('hotelDetails--->', hotelDetails);
|
|
16
|
+
// if (hotelDetails && hotelDetails?.data?.url) {
|
|
17
|
+
// return `/deep-link/property/${room.id}?redirectUrl=${encodeURIComponent(
|
|
18
|
+
// hotelDetails?.data?.url,
|
|
19
|
+
// )}&partnerName=${encodeURIComponent('Booking.com')}&partnerLogo=${bookingLogo}`;
|
|
20
|
+
// }
|
|
21
|
+
// } catch (error) {
|
|
22
|
+
// console.error('Error getting Booking.com URL:', error);
|
|
23
|
+
// }
|
|
24
|
+
// return null;
|
|
25
|
+
// case 'PricelineProperty':
|
|
26
|
+
// // Call Priceline API
|
|
27
|
+
// try {
|
|
28
|
+
// const pricelineDetails = await fetchPricelineHotelDetails(room.id);
|
|
29
|
+
// console.log('pricelineDetails--->', pricelineDetails);
|
|
30
|
+
// if (pricelineDetails && pricelineDetails.getHotelHotelDetails) {
|
|
31
|
+
// const hotelInfo = pricelineDetails.getHotelHotelDetails?.results?.hotel_data?.hotel_0;
|
|
32
|
+
// if (hotelInfo && hotelInfo.priceline_url) {
|
|
33
|
+
// return `/deep-link/property/${room.id}?redirectUrl=${encodeURIComponent(
|
|
34
|
+
// hotelInfo.priceline_url,
|
|
35
|
+
// )}&partnerName=${encodeURIComponent('Priceline.com')}&partnerLogo=${pricelineLogo}`;
|
|
36
|
+
// }
|
|
37
|
+
// }
|
|
38
|
+
// } catch (error) {
|
|
39
|
+
// console.error('Error getting Priceline URL:', error);
|
|
40
|
+
// }
|
|
41
|
+
// // If API call fails, construct a fallback URL
|
|
42
|
+
// const propertyId = room.metadata?.id_t;
|
|
43
|
+
// const cityId = room?.metadata?.city?.id || '';
|
|
44
|
+
// const checkInDate = typeof from === 'string' ? from : format(new Date(from), 'yyyyMMdd');
|
|
45
|
+
// const checkOutDate = typeof to === 'string' ? to : format(new Date(to), 'yyyyMMdd');
|
|
46
|
+
// const roomCount = 1;
|
|
47
|
+
// const adultCount = adults || 1;
|
|
48
|
+
// return `/deep-link/property/${room.id}?redirectUrl=${encodeURIComponent(
|
|
49
|
+
// `https://www.priceline.com/relax/at/${propertyId}/from/${checkInDate}/to/${checkOutDate}/rooms/${roomCount}/adults/${adultCount}?cityId=${cityId}&cur=USD&psl=${propertyId}`,
|
|
50
|
+
// )}&partnerName=${encodeURIComponent('Priceline.com')}&partnerLogo=${pricelineLogo}`;
|
|
51
|
+
// default:
|
|
52
|
+
// return `/property/${room.id}`;
|
|
53
|
+
// }
|
|
54
|
+
// };
|
|
28
55
|
const DealCard = ({
|
|
29
56
|
site,
|
|
30
57
|
price
|
|
@@ -93,9 +120,19 @@ const PropertyCard = ({
|
|
|
93
120
|
const checkOut = params.get('checkOut') || params.get('to') || '';
|
|
94
121
|
const duration = calculateDuration(checkIn, checkOut);
|
|
95
122
|
const formattedDuration = formatDuration(duration);
|
|
123
|
+
const [isRedirecting, setIsRedirecting] = useState(false);
|
|
96
124
|
useEffect(() => {
|
|
97
125
|
fetchCurrentLatLong();
|
|
98
126
|
}, []);
|
|
127
|
+
const handleRedirect = async e => {
|
|
128
|
+
if (e) e.preventDefault();
|
|
129
|
+
setIsRedirecting(true);
|
|
130
|
+
// Open the waiting page immediately with a temporary placeholder
|
|
131
|
+
const intermediateUrl = `/deep-link/property/${item.id}?redirectUrl=pending&partnerName=Loading...&partnerLogo=/images/loading.png&propertyType=${item.__typename}&checkIn=${checkIn}&checkOut=${checkOut}&adults=${adults}&children=${children}`;
|
|
132
|
+
window.open(intermediateUrl, '_blank');
|
|
133
|
+
// No need to make API calls here anymore as they will be handled by DeepLinkWaitingPage
|
|
134
|
+
setIsRedirecting(false);
|
|
135
|
+
};
|
|
99
136
|
const getPriceType = useCallback(room => {
|
|
100
137
|
const type = room.preferences?.property?.pricing?.option?.priceType;
|
|
101
138
|
if (type === 'HOUR') {
|
|
@@ -192,8 +229,8 @@ const PropertyCard = ({
|
|
|
192
229
|
children: jsx(LikeButton, {})
|
|
193
230
|
}), images.map((image, i) => jsx(SplideSlide, {
|
|
194
231
|
children: jsx("a", {
|
|
195
|
-
href:
|
|
196
|
-
|
|
232
|
+
href: "#",
|
|
233
|
+
onClick: handleRedirect,
|
|
197
234
|
rel: "noopener noreferrer",
|
|
198
235
|
children: jsx("div", {
|
|
199
236
|
className: "w-full h-full rounded-xl",
|
|
@@ -366,11 +403,10 @@ const PropertyCard = ({
|
|
|
366
403
|
children: [item?.preferences?.property?.pricing?.price?.price_breakdown?.details?.pricing?.basePrice?.perNight, ' ', "per ", getPriceType(item)]
|
|
367
404
|
})]
|
|
368
405
|
}), jsx("button", {
|
|
369
|
-
className:
|
|
370
|
-
onClick:
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
children: "View deal"
|
|
406
|
+
className: `bg-blue-500 hover:bg-blue-600 text-white font-semibold py-2 px-4 rounded w-full ${isRedirecting ? 'opacity-75 cursor-wait' : ''}`,
|
|
407
|
+
onClick: handleRedirect,
|
|
408
|
+
disabled: isRedirecting,
|
|
409
|
+
children: isRedirecting ? 'Loading...' : 'View deal'
|
|
374
410
|
})]
|
|
375
411
|
})]
|
|
376
412
|
})]
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PropertyCard.js","sources":["../../../src/components/UI/PropertyCard.tsx"],"sourcesContent":[null],"names":["_jsxs","_jsx"],"mappings":"
|
|
1
|
+
{"version":3,"file":"PropertyCard.js","sources":["../../../src/components/UI/PropertyCard.tsx"],"sourcesContent":[null],"names":["_jsxs","_jsx"],"mappings":"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"}
|
|
@@ -25,10 +25,31 @@ const ANALYTICS_CONFIG = {
|
|
|
25
25
|
};
|
|
26
26
|
// Analytics event categories
|
|
27
27
|
const EVENT_CATEGORIES = {
|
|
28
|
-
REDIRECTION: 'Redirection'
|
|
28
|
+
REDIRECTION: 'Redirection',
|
|
29
|
+
USER_INTERACTION: 'User Interaction',
|
|
30
|
+
SYSTEM: 'System',
|
|
31
|
+
ERROR: 'Error'
|
|
32
|
+
};
|
|
29
33
|
// Analytics event actions
|
|
30
34
|
const EVENT_ACTIONS = {
|
|
31
35
|
// Redirections
|
|
32
36
|
AUTO_REDIRECT: 'Auto Redirect',
|
|
33
37
|
MANUAL_CLICK: 'Manual Click',
|
|
34
|
-
LINK_CLICK: 'Link Click'
|
|
38
|
+
LINK_CLICK: 'Link Click',
|
|
39
|
+
// User interactions
|
|
40
|
+
BUTTON_CLICK: 'Button Click',
|
|
41
|
+
FORM_SUBMIT: 'Form Submit',
|
|
42
|
+
SEARCH: 'Search',
|
|
43
|
+
VIEW_ITEM: 'View Item',
|
|
44
|
+
ADD_TO_CART: 'Add to Cart',
|
|
45
|
+
REMOVE_FROM_CART: 'Remove from Cart',
|
|
46
|
+
BEGIN_CHECKOUT: 'Begin Checkout',
|
|
47
|
+
ADD_PAYMENT_INFO: 'Add Payment Info',
|
|
48
|
+
PURCHASE: 'Purchase',
|
|
49
|
+
// System
|
|
50
|
+
LOAD: 'Load',
|
|
51
|
+
INIT: 'Initialize',
|
|
52
|
+
// Errors
|
|
53
|
+
API_ERROR: 'API Error',
|
|
54
|
+
CLIENT_ERROR: 'Client Error'
|
|
55
|
+
};export{ANALYTICS_CONFIG,EVENT_ACTIONS,EVENT_CATEGORIES};//# sourceMappingURL=analytics-config.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"analytics-config.js","sources":["../../src/config/analytics-config.ts"],"sourcesContent":[null],"names":[],"mappings":"qCAAA;;AAEG;AAIH;AACa,MAAA,gBAAgB,GAAG;;AAE5B,EAAA,OAAA,EAAO,IAAM;;AAGb,EAAA,KAAA,EAAK,OAAS,CAAA,YAAK,kBAA0B;;oBAG3B,EAAA,MAAQ,CAAA,mBAAoB;;AAG9C,EAAA,WAAA,EAAW;AACP,IAAA,SAAA,EAAA,IAAW;AACX,IAAA,MAAA,EAAA,IAAQ;AACR,IAAA,YAAA,EAAA,IAAc;AACd,IAAA,MAAA,EAAA;AACH,GAAA;;AAGD,EAAA,mBAAA,EAAmB;AACf,IAAA,MAAA,EAAA,IAAQ;AACR,IAAA,UAAA,EAAA,IAAY;YACJ,EAAA,KAAO;AAClB;;AAGL;AACa,MAAA,gBAAgB,GAAG;AAC5B,EAAA,WAAA,EAAW;
|
|
1
|
+
{"version":3,"file":"analytics-config.js","sources":["../../src/config/analytics-config.ts"],"sourcesContent":[null],"names":[],"mappings":"qCAAA;;AAEG;AAIH;AACa,MAAA,gBAAgB,GAAG;;AAE5B,EAAA,OAAA,EAAO,IAAM;;AAGb,EAAA,KAAA,EAAK,OAAS,CAAA,YAAK,kBAA0B;;oBAG3B,EAAA,MAAQ,CAAA,mBAAoB;;AAG9C,EAAA,WAAA,EAAW;AACP,IAAA,SAAA,EAAA,IAAW;AACX,IAAA,MAAA,EAAA,IAAQ;AACR,IAAA,YAAA,EAAA,IAAc;AACd,IAAA,MAAA,EAAA;AACH,GAAA;;AAGD,EAAA,mBAAA,EAAmB;AACf,IAAA,MAAA,EAAA,IAAQ;AACR,IAAA,UAAA,EAAA,IAAY;YACJ,EAAA,KAAO;AAClB;;AAGL;AACa,MAAA,gBAAgB,GAAG;AAC5B,EAAA,WAAA,EAAW,aAAe;AAC1B,EAAA,gBAAA,EAAgB,kBAAoB;AACpC,EAAA,MAAA,EAAM,QAAU;AAChB,EAAA,KAAA,EAAK;;AAGT;AACa,MAAA,aAAa,GAAG;;AAEzB,EAAA,aAAA,EAAa,eAAiB;AAC9B,EAAA,YAAA,EAAY,cAAgB;AAC5B,EAAA,UAAA,EAAU,YAAc;;AAGxB,EAAA,YAAA,EAAY,cAAgB;AAC5B,EAAA,WAAA,EAAW,aAAe;AAC1B,EAAA,MAAA,EAAM,QAAU;AAChB,EAAA,SAAA,EAAS,WAAa;AACtB,EAAA,WAAA,EAAW,aAAe;AAC1B,EAAA,gBAAA,EAAgB,kBAAoB;AACpC,EAAA,cAAA,EAAc,gBAAkB;AAChC,EAAA,gBAAA,EAAgB,kBAAoB;AACpC,EAAA,QAAA,EAAQ,UAAY;;AAGpB,EAAA,IAAA,EAAI,MAAQ;AACZ,EAAA,IAAA,EAAI,YAAc;;AAGlB,EAAA,SAAA,EAAS,WAAa;AACtB,EAAA,YAAA,EAAY;"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* API Configuration
|
|
3
|
+
* Centralized configuration for all API-related settings
|
|
4
|
+
*/
|
|
5
|
+
export declare const RAPID_API_KEY: string;
|
|
6
|
+
export declare const BOOKING_API: {
|
|
7
|
+
BASE_URL: string;
|
|
8
|
+
HOST: string;
|
|
9
|
+
};
|
|
10
|
+
export declare const PRICELINE_API: {
|
|
11
|
+
BASE_URL: string;
|
|
12
|
+
HOST: string;
|
|
13
|
+
DEFAULT_PARAMS: {
|
|
14
|
+
guest_score_breakdown: string;
|
|
15
|
+
videos: string;
|
|
16
|
+
important_info: string;
|
|
17
|
+
sid: string;
|
|
18
|
+
id_lookup: string;
|
|
19
|
+
plugins: string;
|
|
20
|
+
promo: string;
|
|
21
|
+
nearby: string;
|
|
22
|
+
recent: string;
|
|
23
|
+
photos: string;
|
|
24
|
+
reviews: string;
|
|
25
|
+
};
|
|
26
|
+
};
|
|
27
|
+
export declare const PARTNER_LOGOS: {
|
|
28
|
+
AIRBNB: string;
|
|
29
|
+
BOOKING: string;
|
|
30
|
+
PRICELINE: string;
|
|
31
|
+
};
|
|
32
|
+
export declare const formatDate: (date: Date) => string;
|
|
33
|
+
export declare const getDefaultDates: () => {
|
|
34
|
+
arrival: string;
|
|
35
|
+
departure: string;
|
|
36
|
+
};
|
|
37
|
+
//# sourceMappingURL=api.config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api.config.d.ts","sourceRoot":"","sources":["../../src/config/api.config.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,eAAO,MAAM,aAAa,QAAuB,CAAC;AAGlD,eAAO,MAAM,WAAW;;;CAGvB,CAAC;AAGF,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;CAgBzB,CAAC;AAGF,eAAO,MAAM,aAAa;;;;CAMzB,CAAC;AAGF,eAAO,MAAM,UAAU,GAAI,MAAM,IAAI,KAAG,MAKvC,CAAC;AAGF,eAAO,MAAM,eAAe;;;CAS3B,CAAC"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import {config}from'./env-config.js';/**
|
|
2
|
+
* API Configuration
|
|
3
|
+
* Centralized configuration for all API-related settings
|
|
4
|
+
*/
|
|
5
|
+
// RapidAPI Key
|
|
6
|
+
const RAPID_API_KEY = config.RAPID_API_KEY;
|
|
7
|
+
// Booking.com API
|
|
8
|
+
const BOOKING_API = {
|
|
9
|
+
BASE_URL: 'https://booking-com15.p.rapidapi.com/api/v1/hotels/getHotelDetails',
|
|
10
|
+
HOST: 'booking-com15.p.rapidapi.com'
|
|
11
|
+
};
|
|
12
|
+
// Priceline API
|
|
13
|
+
const PRICELINE_API = {
|
|
14
|
+
BASE_URL: 'https://priceline-com-provider.p.rapidapi.com/v2/hotels/details',
|
|
15
|
+
HOST: 'priceline-com-provider.p.rapidapi.com',
|
|
16
|
+
DEFAULT_PARAMS: {
|
|
17
|
+
guest_score_breakdown: 'true',
|
|
18
|
+
videos: 'true',
|
|
19
|
+
important_info: 'true',
|
|
20
|
+
sid: 'iSiX639',
|
|
21
|
+
id_lookup: 'true',
|
|
22
|
+
plugins: 'true',
|
|
23
|
+
promo: 'true',
|
|
24
|
+
nearby: 'true',
|
|
25
|
+
recent: 'true',
|
|
26
|
+
photos: 'true',
|
|
27
|
+
reviews: 'true'
|
|
28
|
+
}
|
|
29
|
+
};
|
|
30
|
+
// Partner Logos
|
|
31
|
+
const PARTNER_LOGOS = {
|
|
32
|
+
AIRBNB: 'https://upload.wikimedia.org/wikipedia/commons/thumb/6/69/Airbnb_Logo_B%C3%A9lo.svg/512px-Airbnb_Logo_B%C3%A9lo.svg.png',
|
|
33
|
+
BOOKING: 'https://upload.wikimedia.org/wikipedia/commons/thumb/b/be/Booking.com_logo.svg/1920px-Booking.com_logo.svg.png',
|
|
34
|
+
PRICELINE: 'https://upload.wikimedia.org/wikipedia/commons/thumb/e/e1/Priceline.com_logo.svg/1920px-Priceline.com_logo.svg.png'
|
|
35
|
+
};
|
|
36
|
+
// Date formatting helper
|
|
37
|
+
const formatDate = date => {
|
|
38
|
+
const year = date.getFullYear();
|
|
39
|
+
const month = String(date.getMonth() + 1).padStart(2, '0');
|
|
40
|
+
const day = String(date.getDate()).padStart(2, '0');
|
|
41
|
+
return `${year}-${month}-${day}`;
|
|
42
|
+
};
|
|
43
|
+
// Get default dates (today and today + 2 days)
|
|
44
|
+
const getDefaultDates = () => {
|
|
45
|
+
const today = new Date();
|
|
46
|
+
const twoDaysLater = new Date(today);
|
|
47
|
+
twoDaysLater.setDate(today.getDate() + 2);
|
|
48
|
+
return {
|
|
49
|
+
arrival: formatDate(today),
|
|
50
|
+
departure: formatDate(twoDaysLater)
|
|
51
|
+
};
|
|
52
|
+
};export{BOOKING_API,PARTNER_LOGOS,PRICELINE_API,RAPID_API_KEY,formatDate,getDefaultDates};//# sourceMappingURL=api.config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api.config.js","sources":["../../src/config/api.config.ts"],"sourcesContent":[null],"names":[],"mappings":"qCAAA;;;AAGG;AAIH;AACa,MAAA,aAAa,GAAG,MAAM,CAAC;AAEpC;AACa,MAAA,WAAW,GAAG;AACvB,EAAA,QAAA,EAAQ,oEAAsE;AAC9E,EAAA,IAAA,EAAI;;AAGR;AACa,MAAA,aAAa,GAAG;AACzB,EAAA,QAAA,EAAQ,iEAAmE;AAC3E,EAAA,IAAA,EAAI,uCAAyC;AAC7C,EAAA,cAAA,EAAc;AACV,IAAA,qBAAA,EAAA,MAA6B;AAC7B,IAAA,MAAA,EAAA,MAAc;AACd,IAAA,cAAA,EAAA,MAAsB;AACtB,IAAA,GAAA,EAAA,SAAc;AACd,IAAA,SAAA,EAAA,MAAiB;AACjB,IAAA,OAAA,EAAA,MAAe;AACf,IAAA,KAAA,EAAA,MAAa;AACb,IAAA,MAAA,EAAA,MAAc;AACd,IAAA,MAAA,EAAA,MAAc;AACd,IAAA,MAAA,EAAA,MAAc;AACd,IAAA,OAAA,EAAA;AACH;;AAGL;AACa,MAAA,aAAa,GAAG;AACzB,EAAA,MAAA,EAAM,yHAA2H;AACjI,EAAA,OAAA,EAAO,gHAC6G;AACpH,EAAA,SAAA,EAAS;;AAIb;AACa,MAAA,UAAU,GAAG,IAAC,IAAsB;AAC7C,EAAA,MAAA,OAAa,IAAA,CAAA,WAAK,EAAW;AAC7B,EAAA,MAAA,QAAc,MAAA,CAAA,IAAW,CAAA,UAAS,GAAE,CAAA,CAAG,CAAC,QAAU,CAAA,CAAA,EAAE,GAAE,CAAA;AACtD,EAAA,MAAA,MAAY,MAAA,CAAA,IAAO,CAAA,OAAY,EAAA,CAAA,CAAE,UAAU,EAAE,GAAE,CAAA;AAC/C,EAAA,OAAA,CAAA,MAAc,CAAA,CAAA,EAAA,OAAS,EAAI,GAAA,CAAA,CAAG;AAClC;AAEA;AACO,MAAM,eAAe,GAAG,MAAK;AAChC,EAAA,MAAA,KAAW,GAAA,IAAO,IAAA,EAAI;AACtB,EAAA,MAAA,eAAqB,IAAA,UAAS,CAAA;cAClB,CAAA,OAAQ,CAAA,KAAM,CAAA,SAAQ,GAAE,CAAA,CAAG;SAEhC;AACH,IAAA,OAAA,EAAA,UAAS,CAAA,KAAW,CAAA;AACpB,IAAA,SAAA,EAAA,UAAW,CAAA,YAAW;;AAE9B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"env-config.d.ts","sourceRoot":"","sources":["../../src/config/env-config.ts"],"names":[],"mappings":"AAaA,eAAO,MAAM,MAAM
|
|
1
|
+
{"version":3,"file":"env-config.d.ts","sourceRoot":"","sources":["../../src/config/env-config.ts"],"names":[],"mappings":"AAaA,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;0CAuCjB,CAAC"}
|
package/lib/config/env-config.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"env-config.js","sources":["../../src/config/env-config.ts"],"sourcesContent":[null],"names":[],"mappings":"0JAIA,MAAM,GAAG,GAAG,cAAc,EAAE;AAE5B,MAAM,sBAAsB,GAAG,IAAI,CAAC,SAAS,CAAC;KACvC,EAAA,gBAAkB,CAAA,GAAI;KACtB,EAAA,gBAAkB,CAAA,GAAI;MACrB,EAAA,gBAAkB,CAAA,IAAK;SACpB,EAAA,gBAAkB,CAAA;AAC5B,CAAA,CAAC;AAEW,MAAA,MAAM,GAAG,QAAQ,CAAC,GAAG,EAAE;AAChC,EAAA,WAAA,EAAW,GAAE,CAAA;AACb,IAAA,OAAA,EAAA,aAAA;AACA,IAAA,IAAA,EAAA;AACA,GAAA,CAAA;AACA,EAAA,gCAA4B,EAAI,IAAS,CAAA;AACzC,IAAA,OAAA,EAAA,KAAc;AACd,IAAA,IAAA,EAAA;AAEA,GAAA,CAAA;kBACmB,EAAA,GAAA,CAAA;IACnB,OAAiC,EAAA,sBAAA;AAC7B,IAAA,IAAA,EAAA;AACA,GAAA,CAAA;iBACF,EAAA,GAAA,CAAA;IACF,OAAkC,EAAA,IAAA,CAAA,SAAA,CAAA,eAAK,CAAC;AACpC,IAAA,IAAA,EAAA;AACA,GAAA,CAAA;4BACF,EAAA,GAAA,CAAA;IACF,OAA8B,EAAA,EAAA;QAC1B,EAAO;AACP,GAAA,CAAA;gBACF,EAAA,GAAA,CAAA;IACF,OAA0B,EAAA,EAAA;AACtB,IAAA,IAAA,EAAA;AACA,GAAA,CAAA;qBACF,EAAA,GAAA,CAAA;IACF,OAA6B,EAAA,EAAA;AACzB,IAAA,IAAA,EAAA;AACA,GAAA,CAAA;eACF,EAAA,GAAA,CAAA;IACF,OAAiB,EAAA,SAAA;IACjB,IAAmB,EAAA;AACf,GAAA,CAAA;AACA,EAAA,mBAA+C,EAAA,GAAA,CAAA;WACjD,EAAA;AACF,GAAA,CAAA;wCACoC,CAAA;
|
|
1
|
+
{"version":3,"file":"env-config.js","sources":["../../src/config/env-config.ts"],"sourcesContent":[null],"names":[],"mappings":"0JAIA,MAAM,GAAG,GAAG,cAAc,EAAE;AAE5B,MAAM,sBAAsB,GAAG,IAAI,CAAC,SAAS,CAAC;KACvC,EAAA,gBAAkB,CAAA,GAAI;KACtB,EAAA,gBAAkB,CAAA,GAAI;MACrB,EAAA,gBAAkB,CAAA,IAAK;SACpB,EAAA,gBAAkB,CAAA;AAC5B,CAAA,CAAC;AAEW,MAAA,MAAM,GAAG,QAAQ,CAAC,GAAG,EAAE;AAChC,EAAA,WAAA,EAAW,GAAE,CAAA;AACb,IAAA,OAAA,EAAA,aAAA;AACA,IAAA,IAAA,EAAA;AACA,GAAA,CAAA;AACA,EAAA,gCAA4B,EAAI,IAAS,CAAA;AACzC,IAAA,OAAA,EAAA,KAAc;AACd,IAAA,IAAA,EAAA;AAEA,GAAA,CAAA;kBACmB,EAAA,GAAA,CAAA;IACnB,OAAiC,EAAA,sBAAA;AAC7B,IAAA,IAAA,EAAA;AACA,GAAA,CAAA;iBACF,EAAA,GAAA,CAAA;IACF,OAAkC,EAAA,IAAA,CAAA,SAAA,CAAA,eAAK,CAAC;AACpC,IAAA,IAAA,EAAA;AACA,GAAA,CAAA;4BACF,EAAA,GAAA,CAAA;IACF,OAA8B,EAAA,EAAA;QAC1B,EAAO;AACP,GAAA,CAAA;gBACF,EAAA,GAAA,CAAA;IACF,OAA0B,EAAA,EAAA;AACtB,IAAA,IAAA,EAAA;AACA,GAAA,CAAA;qBACF,EAAA,GAAA,CAAA;IACF,OAA6B,EAAA,EAAA;AACzB,IAAA,IAAA,EAAA;AACA,GAAA,CAAA;eACF,EAAA,GAAA,CAAA;IACF,OAAiB,EAAA,SAAA;IACjB,IAAmB,EAAA;AACf,GAAA,CAAA;AACA,EAAA,mBAA+C,EAAA,GAAA,CAAA;WACjD,EAAA;AACF,GAAA,CAAA;wCACoC,CAAA;IACpC,OAAa,EAAA,EAAA;AAChB,IAAE,IAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
package/lib/config/index.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,oBAAoB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,oBAAoB,CAAC;AACnC,cAAc,cAAc,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fetchBookingHotelDetails.d.ts","sourceRoot":"","sources":["../../src/utils/fetchBookingHotelDetails.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,wBAAwB,GAAU,YAAO,EAAE,YAAO,EAAE,aAAQ,EAAE,WAAM,EAAE,aAAQ,iBAiC1F,CAAC"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import'../config/env-config.js';import'../config/analytics-config.js';import {getDefaultDates,BOOKING_API,RAPID_API_KEY}from'../config/api.config.js';// Function to fetch hotel details from RapidAPI
|
|
2
|
+
const fetchBookingHotelDetails = async (hotelId, checkIn, checkOut, adults, children) => {
|
|
3
|
+
const url = BOOKING_API.BASE_URL;
|
|
4
|
+
// Get default dates if not provided
|
|
5
|
+
const defaultDates = getDefaultDates();
|
|
6
|
+
const arrivalDate = checkIn || defaultDates.arrival;
|
|
7
|
+
const departureDate = checkOut || defaultDates.departure;
|
|
8
|
+
const params = new URLSearchParams({
|
|
9
|
+
hotel_id: hotelId,
|
|
10
|
+
arrival_date: arrivalDate,
|
|
11
|
+
departure_date: departureDate
|
|
12
|
+
});
|
|
13
|
+
try {
|
|
14
|
+
const response = await fetch(`${url}?${params.toString()}`, {
|
|
15
|
+
method: 'GET',
|
|
16
|
+
headers: {
|
|
17
|
+
'x-rapidapi-host': BOOKING_API.HOST,
|
|
18
|
+
'x-rapidapi-key': RAPID_API_KEY
|
|
19
|
+
}
|
|
20
|
+
});
|
|
21
|
+
if (!response.ok) {
|
|
22
|
+
throw new Error('Failed to fetch hotel details');
|
|
23
|
+
}
|
|
24
|
+
const data = await response.json();
|
|
25
|
+
return data;
|
|
26
|
+
} catch (error) {
|
|
27
|
+
console.error('Error fetching hotel details:', error);
|
|
28
|
+
return null;
|
|
29
|
+
}
|
|
30
|
+
};export{fetchBookingHotelDetails};//# sourceMappingURL=fetchBookingHotelDetails.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fetchBookingHotelDetails.js","sources":["../../src/utils/fetchBookingHotelDetails.ts"],"sourcesContent":[null],"names":[],"mappings":"sJAEA;AACa,MAAA,wBAAwB,GAAG,OAAO,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,KAAI;AAC3F,EAAA,MAAA,GAAS,GAAA,WAAc,CAAA;;AAGvB,EAAA,MAAA,YAAkB,GAAA,eAAkB,EAAA;AACpC,EAAA,MAAA,cAAoB,OAAA,gBAAuB,CAAA;AAC3C,EAAA,MAAA,gBAAsB,QAAA,gBAAwB,CAAA;AAE9C,EAAA,MAAA,MAAY,GAAA,IAAO,eAAA,CAAA;AACf,IAAA,QAAA,EAAA,OAAiB;AACjB,IAAA,YAAA,EAAA,WAAyB;AACzB,IAAA,cAAA,EAAA;AACH,GAAA,CAAA;AAED,EAAA,IAAA;AACI,IAAA,MAAA,QAAc,GAAA,MAAS,KAAA,CAAA,CAAA,EAAK,GAAC,CAAG,CAAG,EAAA,MAAU,CAAA,QAAS,EAAA,CAAA,CAAA,EAAE;AACpD,MAAA,MAAA,EAAA;AACA,MAAA,OAAA,EAAA;yBACqB,EAAA,WAAa,CAAA,IAAA;AAC9B,QAAA,gBAAA,EAAA;AACH;AACJ,KAAA,CAAA;AAED,IAAA,IAAA,CAAA,QAAK,CAAA,EAAA,EAAS;AACV,MAAA,MAAA,IAAA,KAAU,CAAA,+BAAM,CAAA;;AAGpB,IAAA,MAAA,IAAM,SAAO,aAAe,EAAA;AAC5B,IAAA,OAAA,IAAO;IACX,OAAC,KAAA,EAAA;IAAC,OAAO,CAAA,MAAO,+BAAC,EAAA,KAAA,CAAA;AACb,IAAA,OAAA,IAAO;AACP;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fetchPricelineHotelDetails.d.ts","sourceRoot":"","sources":["../../src/utils/fetchPricelineHotelDetails.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,0BAA0B,GAAU,YAAO,iBA0BvD,CAAC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import'../config/env-config.js';import'../config/analytics-config.js';import {PRICELINE_API,RAPID_API_KEY}from'../config/api.config.js';// Function to fetch Priceline property details
|
|
2
|
+
const fetchPricelineHotelDetails = async hotelId => {
|
|
3
|
+
const url = PRICELINE_API.BASE_URL;
|
|
4
|
+
const params = new URLSearchParams({
|
|
5
|
+
hotel_id: hotelId,
|
|
6
|
+
...PRICELINE_API.DEFAULT_PARAMS
|
|
7
|
+
});
|
|
8
|
+
try {
|
|
9
|
+
const response = await fetch(`${url}?${params.toString()}`, {
|
|
10
|
+
method: 'GET',
|
|
11
|
+
headers: {
|
|
12
|
+
'x-rapidapi-host': PRICELINE_API.HOST,
|
|
13
|
+
'x-rapidapi-key': RAPID_API_KEY
|
|
14
|
+
}
|
|
15
|
+
});
|
|
16
|
+
if (!response.ok) {
|
|
17
|
+
throw new Error('Failed to fetch Priceline property details');
|
|
18
|
+
}
|
|
19
|
+
const data = await response.json();
|
|
20
|
+
return data;
|
|
21
|
+
} catch (error) {
|
|
22
|
+
console.error('Error fetching Priceline property details:', error);
|
|
23
|
+
return null;
|
|
24
|
+
}
|
|
25
|
+
};export{fetchPricelineHotelDetails};//# sourceMappingURL=fetchPricelineHotelDetails.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fetchPricelineHotelDetails.js","sources":["../../src/utils/fetchPricelineHotelDetails.ts"],"sourcesContent":[null],"names":[],"mappings":"wIAEA;MACa,0BAA0B,GAAG,MAAO,OAAA,IAAW;AACxD,EAAA,MAAA,GAAS,GAAA,aAAgB,CAAA;AACzB,EAAA,MAAA,MAAY,GAAA,IAAO,eAAA,CAAA;AACf,IAAA,QAAA,EAAA,OAAiB;oBACd,CAAA;AACN,GAAA,CAAA;AAED,EAAA,IAAA;AACI,IAAA,MAAA,QAAc,GAAA,MAAS,KAAA,CAAA,CAAA,EAAK,GAAC,CAAG,CAAG,EAAA,MAAU,CAAA,QAAS,EAAA,CAAA,CAAA,EAAE;AACpD,MAAA,MAAA,EAAA;AACA,MAAA,OAAA,EAAA;yBACqB,EAAA,aAAe,CAAA,IAAA;AAChC,QAAA,gBAAA,EAAA;AACH;AACJ,KAAA,CAAA;AAED,IAAA,IAAA,CAAA,QAAK,CAAA,EAAA,EAAS;AACV,MAAA,MAAA,IAAA,KAAU,CAAA,4CAAM,CAAA;;AAGpB,IAAA,MAAA,IAAM,SAAO,aAAe,EAAA;AAC5B,IAAA,OAAA,IAAO;IACX,OAAC,KAAA,EAAA;IAAC,OAAO,CAAA,MAAO,4CAAC,EAAA,KAAA,CAAA;AACb,IAAA,OAAA,IAAO;AACP;"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@admin-layout/tailwind-design-pro",
|
|
3
|
-
"version": "10.1.1-alpha.
|
|
3
|
+
"version": "10.1.1-alpha.18",
|
|
4
4
|
"description": "Sample core for higher packages to depend on",
|
|
5
5
|
"license": "ISC",
|
|
6
6
|
"author": "CDMBase LLC",
|
|
@@ -61,5 +61,5 @@
|
|
|
61
61
|
"typescript": {
|
|
62
62
|
"definition": "lib/index.d.ts"
|
|
63
63
|
},
|
|
64
|
-
"gitHead": "
|
|
64
|
+
"gitHead": "e6c290f722353dce3f56213329e25e5278b44f3d"
|
|
65
65
|
}
|