@qite/tide-booking-component 1.4.33 → 1.4.34

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.
@@ -13345,15 +13345,16 @@ var Product = function (_a) {
13345
13345
  var _m = React.useState(false), hasTransfer = _m[0], setHasTransfer = _m[1];
13346
13346
  var _o = React.useState([{ adults: 2, children: 0, childAges: [] }]), rooms = _o[0], setRooms = _o[1];
13347
13347
  var _p = React.useState([]), searchResponse = _p[0], setSearchResponse = _p[1];
13348
- var _q = React.useState(), dateRange = _q[0], setDateRange = _q[1];
13349
- var _r = React.useState(productName), packageProductName = _r[0], setPackageProductName = _r[1];
13350
- var _s = React.useState(''), currencyCode = _s[0], setCurrencyCode = _s[1];
13351
- var _t = React.useState([]), searchResults = _t[0], setSearchResults = _t[1];
13348
+ var _q = React.useState(), detailResponse = _q[0], setDetailResponse = _q[1];
13349
+ var _r = React.useState(), dateRange = _r[0], setDateRange = _r[1];
13350
+ var _s = React.useState(productName), packageProductName = _s[0], setPackageProductName = _s[1];
13351
+ var _t = React.useState(''), currencyCode = _t[0], setCurrencyCode = _t[1];
13352
+ var _u = React.useState([]), searchResults = _u[0], setSearchResults = _u[1];
13352
13353
  var skipNextFetchRef = React.useRef(false);
13353
13354
  var fetchPackage = function (signal) { return __awaiter(void 0, void 0, void 0, function () {
13354
- var apiSettingsState, startDate, endDate, requestRooms, detailsRequest, searchRequest, detailResponse, _a, selectedOption, hasFlight_1, hasTranfer;
13355
- return __generator(this, function (_b) {
13356
- switch (_b.label) {
13355
+ var apiSettingsState, startDate, endDate, requestRooms, detailsRequest, searchRequest, _a, _b;
13356
+ return __generator(this, function (_c) {
13357
+ switch (_c.label) {
13357
13358
  case 0:
13358
13359
  if (displayMode === 'list' && searchType !== 1) {
13359
13360
  console.error('The combination of searchType and displayMode is not supported.' + " Please set searchType to 1 when using displayMode 'list'.");
@@ -13415,40 +13416,22 @@ var Product = function (_a) {
13415
13416
  }
13416
13417
  };
13417
13418
  setIsLoading(true);
13418
- detailResponse = void 0;
13419
13419
  if (!(displayMode === 'calendar' && searchType === 0)) return [3 /*break*/, 2];
13420
+ _a = setDetailResponse;
13420
13421
  return [4 /*yield*/, packageApi$1.fetchDetails(detailsRequest, signal, language, apiSettingsState)];
13421
13422
  case 1:
13422
- detailResponse = _b.sent();
13423
- _b.label = 2;
13423
+ _a.apply(void 0, [_c.sent()]);
13424
+ _c.label = 2;
13424
13425
  case 2:
13425
13426
  if (!(searchType === 1)) return [3 /*break*/, 4];
13426
- _a = setSearchResponse;
13427
+ _b = setSearchResponse;
13427
13428
  return [4 /*yield*/, packageApi$1.fetchSearch(searchRequest, signal, apiSettingsState)];
13428
13429
  case 3:
13429
- _a.apply(void 0, [_b.sent()]);
13430
- _b.label = 4;
13430
+ _b.apply(void 0, [_c.sent()]);
13431
+ _c.label = 4;
13431
13432
  case 4:
13432
- if (detailResponse && !detailResponse.errorCode && detailResponse.payload) {
13433
- selectedOption = detailResponse.payload.options.find(function (x) { return x.isSelected; });
13434
- if (selectedOption) {
13435
- hasFlight_1 = selectedOption.includedServiceTypes.some(function (x) { return x === 7; });
13436
- hasTranfer = selectedOption.includedServiceTypes.some(function (x) { return x === 13; });
13437
- setPrice(selectedOption.price);
13438
- setHasFlight(hasFlight_1);
13439
- setHasTransfer(hasTranfer);
13440
- setCurrencyCode(detailResponse.payload.currencyCode);
13441
- setPackageProductName(selectedOption.name);
13442
- }
13443
- }
13444
- else {
13445
- setPrice(undefined);
13446
- setHasFlight(false);
13447
- setHasTransfer(false);
13448
- setCurrencyCode('');
13449
- }
13450
13433
  setIsLoading(false);
13451
- _b.label = 5;
13434
+ _c.label = 5;
13452
13435
  case 5: return [2 /*return*/];
13453
13436
  }
13454
13437
  });
@@ -13519,10 +13502,12 @@ var Product = function (_a) {
13519
13502
  if (selectedItem) {
13520
13503
  setPrice(selectedItem.price);
13521
13504
  setPackageProductName(selectedItem.name);
13505
+ setCurrencyCode(selectedItem.currencyCode);
13522
13506
  }
13523
13507
  else {
13524
13508
  setPrice(searchResponse[0].price);
13525
13509
  setPackageProductName(searchResponse[0].name);
13510
+ setCurrencyCode(searchResponse[0].currencyCode);
13526
13511
  }
13527
13512
  }
13528
13513
  else {
@@ -13531,6 +13516,26 @@ var Product = function (_a) {
13531
13516
  setPackageProductName(translations.PRODUCT.NOT_AVAILABLE);
13532
13517
  }
13533
13518
  }, [searchResponse]);
13519
+ React.useEffect(function () {
13520
+ if (detailResponse && !detailResponse.errorCode && detailResponse.payload) {
13521
+ var selectedOption = detailResponse.payload.options.find(function (x) { return x.isSelected; });
13522
+ if (selectedOption) {
13523
+ var hasFlight_1 = selectedOption.includedServiceTypes.some(function (x) { return x === 7; });
13524
+ var hasTranfer = selectedOption.includedServiceTypes.some(function (x) { return x === 13; });
13525
+ setPrice(selectedOption.price);
13526
+ setHasFlight(hasFlight_1);
13527
+ setHasTransfer(hasTranfer);
13528
+ setCurrencyCode(detailResponse.payload.currencyCode);
13529
+ setPackageProductName(selectedOption.name);
13530
+ }
13531
+ }
13532
+ else if (detailResponse !== undefined) {
13533
+ setPrice(undefined);
13534
+ setHasFlight(false);
13535
+ setHasTransfer(false);
13536
+ setCurrencyCode('');
13537
+ }
13538
+ }, [detailResponse]);
13534
13539
  React.useEffect(function () {
13535
13540
  if (searchType === 1 && skipNextFetchRef.current) {
13536
13541
  skipNextFetchRef.current = false;
@@ -20846,7 +20851,7 @@ var QSMContainer = function () {
20846
20851
  var isMobile = useMediaQuery('(max-width: 768px)');
20847
20852
  var qsmState = reactRedux.useSelector(function (state) { return state.qsm; });
20848
20853
  var mobileFilterType = qsmState.mobileFilterType, fromDate = qsmState.fromDate, toDate = qsmState.toDate;
20849
- var _a = React.useContext(QSMConfigurationContext), searchFields = _a.searchFields, askTravelers = _a.askTravelers, submitIcon = _a.submitIcon, submitLabel = _a.submitLabel, onSubmit = _a.onSubmit;
20854
+ var _a = React.useContext(QSMConfigurationContext), searchFields = _a.searchFields, askTravelers = _a.askTravelers, submitIcon = _a.submitIcon, submitLabel = _a.submitLabel, onSubmit = _a.onSubmit, travelTypes = _a.travelTypes;
20850
20855
  React.useEffect(function () {
20851
20856
  if (fromDate || toDate)
20852
20857
  return;
@@ -20871,19 +20876,15 @@ var QSMContainer = function () {
20871
20876
  var handleSubmit = function () {
20872
20877
  if (!onSubmit)
20873
20878
  return;
20874
- var fromDate = qsmState.fromDate, toDate = qsmState.toDate, travelers = qsmState.travelers, selectedTravelClass = qsmState.selectedTravelClass, selectedTravelType = qsmState.selectedTravelType, selectedNationality = qsmState.selectedNationality, adults = qsmState.adults, kids = qsmState.kids, babies = qsmState.babies, rooms = qsmState.rooms, selectedFlexRange = qsmState.selectedFlexRange;
20879
+ var fromDate = qsmState.fromDate, toDate = qsmState.toDate; qsmState.travelers; var selectedTravelClass = qsmState.selectedTravelClass, selectedTravelType = qsmState.selectedTravelType, selectedNationality = qsmState.selectedNationality; qsmState.adults; qsmState.kids; qsmState.babies; var rooms = qsmState.rooms; qsmState.selectedFlexRange;
20880
+ var selectedTravelTypeValue = travelTypes.find(function (t) { return t.label === selectedTravelType; });
20875
20881
  var payload = {
20876
20882
  fromDate: fromDate,
20877
20883
  toDate: toDate,
20878
- travelers: travelers,
20879
20884
  travelClass: selectedTravelClass,
20880
- travelType: selectedTravelType,
20885
+ travelType: selectedTravelTypeValue,
20881
20886
  nationality: selectedNationality,
20882
- adults: adults,
20883
- kids: kids,
20884
- babies: babies,
20885
- rooms: rooms,
20886
- dateFlexibility: selectedFlexRange
20887
+ rooms: rooms
20887
20888
  };
20888
20889
  addSearchFieldsToPayload(payload, searchFields, qsmState);
20889
20890
  onSubmit(payload);
@@ -22016,7 +22017,7 @@ var SearchResultsContainer = function () {
22016
22017
  var _g = React.useState([]); _g[0]; var setInitialFilters = _g[1];
22017
22018
  React.useEffect(function () {
22018
22019
  var runSearch = function () { return __awaiter(void 0, void 0, void 0, function () {
22019
- var params, from, to, rooms, country, region, oord, city, destinationId, destinationIsCountry, destinationIsRegion, destinationIsOord, destinationIsLocation, searchRequest, config, packageSearchResults, enrichedFilters, err_1;
22020
+ var params, from, to, rooms, country, region, oord, city, hotel, tagId, destinationId, destinationIsCountry, destinationIsRegion, destinationIsOord, destinationIsLocation, searchRequest, config, packageSearchResults, enrichedFilters, err_1;
22020
22021
  var _a, _b, _c, _d, _e;
22021
22022
  return __generator(this, function (_f) {
22022
22023
  switch (_f.label) {
@@ -22036,6 +22037,8 @@ var SearchResultsContainer = function () {
22036
22037
  region = getNumberFromParams(params, 'region');
22037
22038
  oord = getNumberFromParams(params, 'oord');
22038
22039
  city = getNumberFromParams(params, 'location');
22040
+ hotel = getNumberFromParams(params, 'hotel');
22041
+ tagId = getNumberFromParams(params, 'tagId');
22039
22042
  // temp hardcoded params
22040
22043
  if (!from || !to) {
22041
22044
  from = '2026-04-07';
@@ -22093,7 +22096,9 @@ var SearchResultsContainer = function () {
22093
22096
  maxPrice: (_e = filters.find(function (f) { return f.property === 'price'; })) === null || _e === void 0 ? void 0 : _e.selectedMax,
22094
22097
  useExactDates: true,
22095
22098
  onlyCachedResults: false,
22096
- includeAllAllotments: true
22099
+ includeAllAllotments: true,
22100
+ productIds: hotel ? [hotel] : [],
22101
+ productTagIds: tagId ? [tagId] : []
22097
22102
  }
22098
22103
  };
22099
22104
  config = {
@@ -13334,15 +13334,16 @@ var Product = function (_a) {
13334
13334
  var _m = useState(false), hasTransfer = _m[0], setHasTransfer = _m[1];
13335
13335
  var _o = useState([{ adults: 2, children: 0, childAges: [] }]), rooms = _o[0], setRooms = _o[1];
13336
13336
  var _p = useState([]), searchResponse = _p[0], setSearchResponse = _p[1];
13337
- var _q = useState(), dateRange = _q[0], setDateRange = _q[1];
13338
- var _r = useState(productName), packageProductName = _r[0], setPackageProductName = _r[1];
13339
- var _s = useState(''), currencyCode = _s[0], setCurrencyCode = _s[1];
13340
- var _t = useState([]), searchResults = _t[0], setSearchResults = _t[1];
13337
+ var _q = useState(), detailResponse = _q[0], setDetailResponse = _q[1];
13338
+ var _r = useState(), dateRange = _r[0], setDateRange = _r[1];
13339
+ var _s = useState(productName), packageProductName = _s[0], setPackageProductName = _s[1];
13340
+ var _t = useState(''), currencyCode = _t[0], setCurrencyCode = _t[1];
13341
+ var _u = useState([]), searchResults = _u[0], setSearchResults = _u[1];
13341
13342
  var skipNextFetchRef = useRef(false);
13342
13343
  var fetchPackage = function (signal) { return __awaiter(void 0, void 0, void 0, function () {
13343
- var apiSettingsState, startDate, endDate, requestRooms, detailsRequest, searchRequest, detailResponse, _a, selectedOption, hasFlight_1, hasTranfer;
13344
- return __generator(this, function (_b) {
13345
- switch (_b.label) {
13344
+ var apiSettingsState, startDate, endDate, requestRooms, detailsRequest, searchRequest, _a, _b;
13345
+ return __generator(this, function (_c) {
13346
+ switch (_c.label) {
13346
13347
  case 0:
13347
13348
  if (displayMode === 'list' && searchType !== 1) {
13348
13349
  console.error('The combination of searchType and displayMode is not supported.' + " Please set searchType to 1 when using displayMode 'list'.");
@@ -13404,40 +13405,22 @@ var Product = function (_a) {
13404
13405
  }
13405
13406
  };
13406
13407
  setIsLoading(true);
13407
- detailResponse = void 0;
13408
13408
  if (!(displayMode === 'calendar' && searchType === 0)) return [3 /*break*/, 2];
13409
+ _a = setDetailResponse;
13409
13410
  return [4 /*yield*/, packageApi$1.fetchDetails(detailsRequest, signal, language, apiSettingsState)];
13410
13411
  case 1:
13411
- detailResponse = _b.sent();
13412
- _b.label = 2;
13412
+ _a.apply(void 0, [_c.sent()]);
13413
+ _c.label = 2;
13413
13414
  case 2:
13414
13415
  if (!(searchType === 1)) return [3 /*break*/, 4];
13415
- _a = setSearchResponse;
13416
+ _b = setSearchResponse;
13416
13417
  return [4 /*yield*/, packageApi$1.fetchSearch(searchRequest, signal, apiSettingsState)];
13417
13418
  case 3:
13418
- _a.apply(void 0, [_b.sent()]);
13419
- _b.label = 4;
13419
+ _b.apply(void 0, [_c.sent()]);
13420
+ _c.label = 4;
13420
13421
  case 4:
13421
- if (detailResponse && !detailResponse.errorCode && detailResponse.payload) {
13422
- selectedOption = detailResponse.payload.options.find(function (x) { return x.isSelected; });
13423
- if (selectedOption) {
13424
- hasFlight_1 = selectedOption.includedServiceTypes.some(function (x) { return x === 7; });
13425
- hasTranfer = selectedOption.includedServiceTypes.some(function (x) { return x === 13; });
13426
- setPrice(selectedOption.price);
13427
- setHasFlight(hasFlight_1);
13428
- setHasTransfer(hasTranfer);
13429
- setCurrencyCode(detailResponse.payload.currencyCode);
13430
- setPackageProductName(selectedOption.name);
13431
- }
13432
- }
13433
- else {
13434
- setPrice(undefined);
13435
- setHasFlight(false);
13436
- setHasTransfer(false);
13437
- setCurrencyCode('');
13438
- }
13439
13422
  setIsLoading(false);
13440
- _b.label = 5;
13423
+ _c.label = 5;
13441
13424
  case 5: return [2 /*return*/];
13442
13425
  }
13443
13426
  });
@@ -13508,10 +13491,12 @@ var Product = function (_a) {
13508
13491
  if (selectedItem) {
13509
13492
  setPrice(selectedItem.price);
13510
13493
  setPackageProductName(selectedItem.name);
13494
+ setCurrencyCode(selectedItem.currencyCode);
13511
13495
  }
13512
13496
  else {
13513
13497
  setPrice(searchResponse[0].price);
13514
13498
  setPackageProductName(searchResponse[0].name);
13499
+ setCurrencyCode(searchResponse[0].currencyCode);
13515
13500
  }
13516
13501
  }
13517
13502
  else {
@@ -13520,6 +13505,26 @@ var Product = function (_a) {
13520
13505
  setPackageProductName(translations.PRODUCT.NOT_AVAILABLE);
13521
13506
  }
13522
13507
  }, [searchResponse]);
13508
+ useEffect(function () {
13509
+ if (detailResponse && !detailResponse.errorCode && detailResponse.payload) {
13510
+ var selectedOption = detailResponse.payload.options.find(function (x) { return x.isSelected; });
13511
+ if (selectedOption) {
13512
+ var hasFlight_1 = selectedOption.includedServiceTypes.some(function (x) { return x === 7; });
13513
+ var hasTranfer = selectedOption.includedServiceTypes.some(function (x) { return x === 13; });
13514
+ setPrice(selectedOption.price);
13515
+ setHasFlight(hasFlight_1);
13516
+ setHasTransfer(hasTranfer);
13517
+ setCurrencyCode(detailResponse.payload.currencyCode);
13518
+ setPackageProductName(selectedOption.name);
13519
+ }
13520
+ }
13521
+ else if (detailResponse !== undefined) {
13522
+ setPrice(undefined);
13523
+ setHasFlight(false);
13524
+ setHasTransfer(false);
13525
+ setCurrencyCode('');
13526
+ }
13527
+ }, [detailResponse]);
13523
13528
  useEffect(function () {
13524
13529
  if (searchType === 1 && skipNextFetchRef.current) {
13525
13530
  skipNextFetchRef.current = false;
@@ -20835,7 +20840,7 @@ var QSMContainer = function () {
20835
20840
  var isMobile = useMediaQuery('(max-width: 768px)');
20836
20841
  var qsmState = useSelector(function (state) { return state.qsm; });
20837
20842
  var mobileFilterType = qsmState.mobileFilterType, fromDate = qsmState.fromDate, toDate = qsmState.toDate;
20838
- var _a = useContext(QSMConfigurationContext), searchFields = _a.searchFields, askTravelers = _a.askTravelers, submitIcon = _a.submitIcon, submitLabel = _a.submitLabel, onSubmit = _a.onSubmit;
20843
+ var _a = useContext(QSMConfigurationContext), searchFields = _a.searchFields, askTravelers = _a.askTravelers, submitIcon = _a.submitIcon, submitLabel = _a.submitLabel, onSubmit = _a.onSubmit, travelTypes = _a.travelTypes;
20839
20844
  useEffect(function () {
20840
20845
  if (fromDate || toDate)
20841
20846
  return;
@@ -20860,19 +20865,15 @@ var QSMContainer = function () {
20860
20865
  var handleSubmit = function () {
20861
20866
  if (!onSubmit)
20862
20867
  return;
20863
- var fromDate = qsmState.fromDate, toDate = qsmState.toDate, travelers = qsmState.travelers, selectedTravelClass = qsmState.selectedTravelClass, selectedTravelType = qsmState.selectedTravelType, selectedNationality = qsmState.selectedNationality, adults = qsmState.adults, kids = qsmState.kids, babies = qsmState.babies, rooms = qsmState.rooms, selectedFlexRange = qsmState.selectedFlexRange;
20868
+ var fromDate = qsmState.fromDate, toDate = qsmState.toDate; qsmState.travelers; var selectedTravelClass = qsmState.selectedTravelClass, selectedTravelType = qsmState.selectedTravelType, selectedNationality = qsmState.selectedNationality; qsmState.adults; qsmState.kids; qsmState.babies; var rooms = qsmState.rooms; qsmState.selectedFlexRange;
20869
+ var selectedTravelTypeValue = travelTypes.find(function (t) { return t.label === selectedTravelType; });
20864
20870
  var payload = {
20865
20871
  fromDate: fromDate,
20866
20872
  toDate: toDate,
20867
- travelers: travelers,
20868
20873
  travelClass: selectedTravelClass,
20869
- travelType: selectedTravelType,
20874
+ travelType: selectedTravelTypeValue,
20870
20875
  nationality: selectedNationality,
20871
- adults: adults,
20872
- kids: kids,
20873
- babies: babies,
20874
- rooms: rooms,
20875
- dateFlexibility: selectedFlexRange
20876
+ rooms: rooms
20876
20877
  };
20877
20878
  addSearchFieldsToPayload(payload, searchFields, qsmState);
20878
20879
  onSubmit(payload);
@@ -22005,7 +22006,7 @@ var SearchResultsContainer = function () {
22005
22006
  var _g = useState([]); _g[0]; var setInitialFilters = _g[1];
22006
22007
  useEffect(function () {
22007
22008
  var runSearch = function () { return __awaiter(void 0, void 0, void 0, function () {
22008
- var params, from, to, rooms, country, region, oord, city, destinationId, destinationIsCountry, destinationIsRegion, destinationIsOord, destinationIsLocation, searchRequest, config, packageSearchResults, enrichedFilters, err_1;
22009
+ var params, from, to, rooms, country, region, oord, city, hotel, tagId, destinationId, destinationIsCountry, destinationIsRegion, destinationIsOord, destinationIsLocation, searchRequest, config, packageSearchResults, enrichedFilters, err_1;
22009
22010
  var _a, _b, _c, _d, _e;
22010
22011
  return __generator(this, function (_f) {
22011
22012
  switch (_f.label) {
@@ -22025,6 +22026,8 @@ var SearchResultsContainer = function () {
22025
22026
  region = getNumberFromParams(params, 'region');
22026
22027
  oord = getNumberFromParams(params, 'oord');
22027
22028
  city = getNumberFromParams(params, 'location');
22029
+ hotel = getNumberFromParams(params, 'hotel');
22030
+ tagId = getNumberFromParams(params, 'tagId');
22028
22031
  // temp hardcoded params
22029
22032
  if (!from || !to) {
22030
22033
  from = '2026-04-07';
@@ -22082,7 +22085,9 @@ var SearchResultsContainer = function () {
22082
22085
  maxPrice: (_e = filters.find(function (f) { return f.property === 'price'; })) === null || _e === void 0 ? void 0 : _e.selectedMax,
22083
22086
  useExactDates: true,
22084
22087
  onlyCachedResults: false,
22085
- includeAllAllotments: true
22088
+ includeAllAllotments: true,
22089
+ productIds: hotel ? [hotel] : [],
22090
+ productTagIds: tagId ? [tagId] : []
22086
22091
  }
22087
22092
  };
22088
22093
  config = {
package/package.json CHANGED
@@ -1,77 +1,77 @@
1
- {
2
- "name": "@qite/tide-booking-component",
3
- "version": "1.4.33",
4
- "description": "React Booking wizard & Booking product component for Tide",
5
- "main": "build/build-cjs/index.js",
6
- "module": "build/build-esm/index.js",
7
- "scripts": {
8
- "start": "rollup -c -w",
9
- "build": "rollup -c",
10
- "tsc": "tsc --noEmit",
11
- "format": "prettier --write .",
12
- "prepare": "husky"
13
- },
14
- "repository": {
15
- "type": "git",
16
- "url": "git+ssh://git@bitbucket.org/qitegeneral/tide-booking-component.git"
17
- },
18
- "keywords": [
19
- "tide",
20
- "booking",
21
- "react",
22
- "component"
23
- ],
24
- "author": "Qite",
25
- "license": "OBSD",
26
- "homepage": "https://bitbucket.org/qitegeneral/tide-booking-component#readme",
27
- "devDependencies": {
28
- "@jsonurl/jsonurl": "^1.1.4",
29
- "@popperjs/core": "^2.10.2",
30
- "@qite/tide-client": "^1.1.123",
31
- "@reach/router": "^1.3.4",
32
- "@reduxjs/toolkit": "^1.6.0",
33
- "@rollup/plugin-commonjs": "^19.0.1",
34
- "@rollup/plugin-json": "^4.1.0",
35
- "@rollup/plugin-node-resolve": "^13.0.2",
36
- "@types/flat": "^5.0.2",
37
- "@types/lodash": "^4.14.171",
38
- "@types/reach__router": "^1.3.9",
39
- "@types/react": "^17.0.2",
40
- "@types/react-dom": "^17.0.2",
41
- "@types/uuid": "^8.3.1",
42
- "date-fns": "^2.22.1",
43
- "flat": "^5.0.2",
44
- "formik": "^2.2.9",
45
- "husky": "^9.1.7",
46
- "lodash": "^4.17.21",
47
- "prettier": "^2.3.2",
48
- "react-popper": "^2.2.5",
49
- "react-redux": "^7.2.4",
50
- "rollup": "^2.53.2",
51
- "rollup-plugin-delete": "^2.0.0",
52
- "rollup-plugin-peer-deps-external": "^2.2.4",
53
- "rollup-plugin-typescript2": "0.36.0",
54
- "tslib": "^2.3.1",
55
- "typescript": "^4.3.5",
56
- "uuid": "^8.3.2"
57
- },
58
- "peerDependencies": {
59
- "@jsonurl/jsonurl": "^1.1.4",
60
- "@popperjs/core": "^2.10.2",
61
- "@reach/router": "^1.3.4",
62
- "@reduxjs/toolkit": "^1.6.0",
63
- "date-fns": "^2.22.1",
64
- "flat": "^5.0.2",
65
- "formik": "^2.2.9",
66
- "immer": "^9.0.5",
67
- "lodash": "^4.17.21",
68
- "react": "^17.0.2",
69
- "react-dom": "^17.0.2",
70
- "react-popper": "^2.2.5",
71
- "react-redux": "^7.2.4",
72
- "uuid": "^8.3.2"
73
- },
74
- "dependencies": {
75
- "react-html-comment": "^2.0.16"
76
- }
77
- }
1
+ {
2
+ "name": "@qite/tide-booking-component",
3
+ "version": "1.4.34",
4
+ "description": "React Booking wizard & Booking product component for Tide",
5
+ "main": "build/build-cjs/index.js",
6
+ "module": "build/build-esm/index.js",
7
+ "scripts": {
8
+ "start": "rollup -c -w",
9
+ "build": "rollup -c",
10
+ "tsc": "tsc --noEmit",
11
+ "format": "prettier --write .",
12
+ "prepare": "husky"
13
+ },
14
+ "repository": {
15
+ "type": "git",
16
+ "url": "git+ssh://git@bitbucket.org/qitegeneral/tide-booking-component.git"
17
+ },
18
+ "keywords": [
19
+ "tide",
20
+ "booking",
21
+ "react",
22
+ "component"
23
+ ],
24
+ "author": "Qite",
25
+ "license": "OBSD",
26
+ "homepage": "https://bitbucket.org/qitegeneral/tide-booking-component#readme",
27
+ "devDependencies": {
28
+ "@jsonurl/jsonurl": "^1.1.4",
29
+ "@popperjs/core": "^2.10.2",
30
+ "@qite/tide-client": "^1.1.123",
31
+ "@reach/router": "^1.3.4",
32
+ "@reduxjs/toolkit": "^1.6.0",
33
+ "@rollup/plugin-commonjs": "^19.0.1",
34
+ "@rollup/plugin-json": "^4.1.0",
35
+ "@rollup/plugin-node-resolve": "^13.0.2",
36
+ "@types/flat": "^5.0.2",
37
+ "@types/lodash": "^4.14.171",
38
+ "@types/reach__router": "^1.3.9",
39
+ "@types/react": "^17.0.2",
40
+ "@types/react-dom": "^17.0.2",
41
+ "@types/uuid": "^8.3.1",
42
+ "date-fns": "^2.22.1",
43
+ "flat": "^5.0.2",
44
+ "formik": "^2.2.9",
45
+ "husky": "^9.1.7",
46
+ "lodash": "^4.17.21",
47
+ "prettier": "^2.3.2",
48
+ "react-popper": "^2.2.5",
49
+ "react-redux": "^7.2.4",
50
+ "rollup": "^2.53.2",
51
+ "rollup-plugin-delete": "^2.0.0",
52
+ "rollup-plugin-peer-deps-external": "^2.2.4",
53
+ "rollup-plugin-typescript2": "0.36.0",
54
+ "tslib": "^2.3.1",
55
+ "typescript": "^4.3.5",
56
+ "uuid": "^8.3.2"
57
+ },
58
+ "peerDependencies": {
59
+ "@jsonurl/jsonurl": "^1.1.4",
60
+ "@popperjs/core": "^2.10.2",
61
+ "@reach/router": "^1.3.4",
62
+ "@reduxjs/toolkit": "^1.6.0",
63
+ "date-fns": "^2.22.1",
64
+ "flat": "^5.0.2",
65
+ "formik": "^2.2.9",
66
+ "immer": "^9.0.5",
67
+ "lodash": "^4.17.21",
68
+ "react": "^17.0.2",
69
+ "react-dom": "^17.0.2",
70
+ "react-popper": "^2.2.5",
71
+ "react-redux": "^7.2.4",
72
+ "uuid": "^8.3.2"
73
+ },
74
+ "dependencies": {
75
+ "react-html-comment": "^2.0.16"
76
+ }
77
+ }
@@ -57,6 +57,7 @@ const Product: React.FC<ProductProps> = ({ productCode, productName, duration, r
57
57
  const [hasTransfer, setHasTransfer] = useState<boolean>(false);
58
58
  const [rooms, setRooms] = useState<ProductRoom[]>([{ adults: 2, children: 0, childAges: [] }]);
59
59
  const [searchResponse, setSearchResponse] = useState<BookingPackageItem[]>([]);
60
+ const [detailResponse, setDetailResponse] = useState<any>();
60
61
  const [dateRange, setDateRange] = useState<DateRange>();
61
62
  const [packageProductName, setPackageProductName] = useState<string>(productName);
62
63
  const [currencyCode, setCurrencyCode] = useState<string>('');
@@ -135,35 +136,14 @@ const Product: React.FC<ProductProps> = ({ productCode, productName, duration, r
135
136
 
136
137
  setIsLoading(true);
137
138
 
138
- let detailResponse;
139
139
  if (displayMode === 'calendar' && searchType === 0) {
140
- detailResponse = await packageApi.fetchDetails(detailsRequest, signal, language, apiSettingsState);
140
+ setDetailResponse(await packageApi.fetchDetails(detailsRequest, signal, language, apiSettingsState));
141
141
  }
142
142
 
143
143
  if (searchType === 1) {
144
144
  setSearchResponse(await packageApi.fetchSearch(searchRequest, signal, apiSettingsState));
145
145
  }
146
146
 
147
- if (detailResponse && !detailResponse.errorCode && detailResponse.payload) {
148
- const selectedOption = detailResponse.payload.options.find((x) => x.isSelected);
149
-
150
- if (selectedOption) {
151
- const hasFlight = selectedOption.includedServiceTypes.some((x) => x === 7);
152
- const hasTranfer = selectedOption.includedServiceTypes.some((x) => x === 13);
153
-
154
- setPrice(selectedOption.price);
155
- setHasFlight(hasFlight);
156
- setHasTransfer(hasTranfer);
157
- setCurrencyCode(detailResponse.payload.currencyCode);
158
- setPackageProductName(selectedOption.name);
159
- }
160
- } else {
161
- setPrice(undefined);
162
- setHasFlight(false);
163
- setHasTransfer(false);
164
- setCurrencyCode('');
165
- }
166
-
167
147
  setIsLoading(false);
168
148
  }
169
149
  };
@@ -256,9 +236,11 @@ const Product: React.FC<ProductProps> = ({ productCode, productName, duration, r
256
236
  if (selectedItem) {
257
237
  setPrice(selectedItem.price);
258
238
  setPackageProductName(selectedItem.name);
239
+ setCurrencyCode(selectedItem.currencyCode);
259
240
  } else {
260
241
  setPrice(searchResponse[0].price);
261
242
  setPackageProductName(searchResponse[0].name);
243
+ setCurrencyCode(searchResponse[0].currencyCode);
262
244
  }
263
245
  } else {
264
246
  setSearchResults([]);
@@ -267,6 +249,28 @@ const Product: React.FC<ProductProps> = ({ productCode, productName, duration, r
267
249
  }
268
250
  }, [searchResponse]);
269
251
 
252
+ useEffect(() => {
253
+ if (detailResponse && !detailResponse.errorCode && detailResponse.payload) {
254
+ const selectedOption = detailResponse.payload.options.find((x: any) => x.isSelected);
255
+
256
+ if (selectedOption) {
257
+ const hasFlight = selectedOption.includedServiceTypes.some((x: any) => x === 7);
258
+ const hasTranfer = selectedOption.includedServiceTypes.some((x: any) => x === 13);
259
+
260
+ setPrice(selectedOption.price);
261
+ setHasFlight(hasFlight);
262
+ setHasTransfer(hasTranfer);
263
+ setCurrencyCode(detailResponse.payload.currencyCode);
264
+ setPackageProductName(selectedOption.name);
265
+ }
266
+ } else if (detailResponse !== undefined) {
267
+ setPrice(undefined);
268
+ setHasFlight(false);
269
+ setHasTransfer(false);
270
+ setCurrencyCode('');
271
+ }
272
+ }, [detailResponse]);
273
+
270
274
  useEffect(() => {
271
275
  if (searchType === 1 && skipNextFetchRef.current) {
272
276
  skipNextFetchRef.current = false;