@qite/tide-booking-component 1.4.83 → 1.4.84
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/build/build-cjs/index.js +56 -20
- package/build/build-cjs/src/search-results/components/group-tour/group-tour-card.d.ts +1 -0
- package/build/build-cjs/src/search-results/types.d.ts +1 -0
- package/build/build-esm/index.js +56 -20
- package/build/build-esm/src/search-results/components/group-tour/group-tour-card.d.ts +1 -0
- package/build/build-esm/src/search-results/types.d.ts +1 -0
- package/package.json +1 -1
- package/src/booking-wizard/features/product-options/option-units-card.tsx +1 -1
- package/src/search-results/components/group-tour/group-tour-card.tsx +12 -9
- package/src/search-results/components/group-tour/group-tour-results.tsx +17 -3
- package/src/search-results/components/hotel/hotel-card.tsx +1 -4
- package/src/search-results/types.ts +1 -0
- package/styles/components/_search.scss +0 -8
package/build/build-cjs/index.js
CHANGED
|
@@ -22956,7 +22956,7 @@ var OptionUnitsCard = function (_a) {
|
|
|
22956
22956
|
React__default['default'].createElement(
|
|
22957
22957
|
'div',
|
|
22958
22958
|
{ className: 'booking-card__group-header' },
|
|
22959
|
-
React__default['default'].createElement('h3', { className: 'booking-card__body-heading' }, translations.OPTIONS_FORM.UNIT_TITLE, ' ', u.index
|
|
22959
|
+
React__default['default'].createElement('h3', { className: 'booking-card__body-heading' }, translations.OPTIONS_FORM.UNIT_TITLE, ' ', u.index),
|
|
22960
22960
|
React__default['default'].createElement('p', null, getUnitPaxLabel(u.index)),
|
|
22961
22961
|
React__default['default'].createElement(
|
|
22962
22962
|
'div',
|
|
@@ -42576,11 +42576,7 @@ var HotelCard = function (_a) {
|
|
|
42576
42576
|
return (e.currentTarget.style.transform = 'scale(1)');
|
|
42577
42577
|
}
|
|
42578
42578
|
},
|
|
42579
|
-
React__default['default'].createElement('div', {
|
|
42580
|
-
dangerouslySetInnerHTML: {
|
|
42581
|
-
__html: he.decode(result.contents)
|
|
42582
|
-
}
|
|
42583
|
-
}),
|
|
42579
|
+
React__default['default'].createElement('div', { dangerouslySetInnerHTML: { __html: he.decode(result.contents) } }),
|
|
42584
42580
|
React__default['default'].createElement(
|
|
42585
42581
|
'div',
|
|
42586
42582
|
{ className: 'search__result-card__footer' },
|
|
@@ -45793,9 +45789,10 @@ var Filters = function (_a) {
|
|
|
45793
45789
|
};
|
|
45794
45790
|
|
|
45795
45791
|
var GroupTourCard = function (_a) {
|
|
45796
|
-
var _b;
|
|
45792
|
+
var _b, _c, _d, _e, _f, _g;
|
|
45797
45793
|
var result = _a.result,
|
|
45798
|
-
languageCode = _a.languageCode
|
|
45794
|
+
languageCode = _a.languageCode,
|
|
45795
|
+
cmsItem = _a.cmsItem;
|
|
45799
45796
|
var dispatch = reactRedux.useDispatch();
|
|
45800
45797
|
var translations = getTranslations(languageCode !== null && languageCode !== void 0 ? languageCode : 'en-GB');
|
|
45801
45798
|
var selectedSearchResultId = reactRedux.useSelector(function (state) {
|
|
@@ -45820,20 +45817,34 @@ var GroupTourCard = function (_a) {
|
|
|
45820
45817
|
React__default['default'].createElement(
|
|
45821
45818
|
'div',
|
|
45822
45819
|
{ className: 'search__result-card__allotment' },
|
|
45820
|
+
React__default['default'].createElement(
|
|
45821
|
+
'div',
|
|
45822
|
+
{ className: 'search__result-card__allotment__img-wrapper' },
|
|
45823
|
+
React__default['default'].createElement('img', {
|
|
45824
|
+
src:
|
|
45825
|
+
(_e =
|
|
45826
|
+
(_d = (_c = cmsItem === null || cmsItem === void 0 ? void 0 : cmsItem.content) === null || _c === void 0 ? void 0 : _c.images) === null ||
|
|
45827
|
+
_d === void 0
|
|
45828
|
+
? void 0
|
|
45829
|
+
: _d.header) === null || _e === void 0
|
|
45830
|
+
? void 0
|
|
45831
|
+
: _e.url,
|
|
45832
|
+
alt: result.name,
|
|
45833
|
+
className: 'search__result-card__allotment__img'
|
|
45834
|
+
})
|
|
45835
|
+
),
|
|
45823
45836
|
React__default['default'].createElement(
|
|
45824
45837
|
'div',
|
|
45825
45838
|
{ className: 'search__result-card__allotment__title__wrapper' },
|
|
45826
|
-
React__default['default'].createElement(
|
|
45827
|
-
|
|
45828
|
-
|
|
45829
|
-
|
|
45830
|
-
|
|
45831
|
-
|
|
45832
|
-
|
|
45833
|
-
|
|
45834
|
-
|
|
45835
|
-
)
|
|
45836
|
-
),
|
|
45839
|
+
React__default['default'].createElement('h3', { className: 'search__result-card__allotment__title' }, result.name),
|
|
45840
|
+
((_g = (_f = cmsItem === null || cmsItem === void 0 ? void 0 : cmsItem.content) === null || _f === void 0 ? void 0 : _f.introductie) === null ||
|
|
45841
|
+
_g === void 0
|
|
45842
|
+
? void 0
|
|
45843
|
+
: _g.intro) &&
|
|
45844
|
+
React__default['default'].createElement('div', {
|
|
45845
|
+
className: 'search__result-card__allotment__description',
|
|
45846
|
+
dangerouslySetInnerHTML: { __html: he.decode(cmsItem.content.introductie.intro) }
|
|
45847
|
+
}),
|
|
45837
45848
|
React__default['default'].createElement(
|
|
45838
45849
|
'div',
|
|
45839
45850
|
{ className: 'search__result-card__allotment__container' },
|
|
@@ -45972,11 +45983,36 @@ var GroupTourResults = function (_a) {
|
|
|
45972
45983
|
},
|
|
45973
45984
|
[activeTab]
|
|
45974
45985
|
);
|
|
45986
|
+
var cmsMap = React__default['default'].useMemo(
|
|
45987
|
+
function () {
|
|
45988
|
+
var _a;
|
|
45989
|
+
var map = new Map();
|
|
45990
|
+
(_a = context.cmsGroupTourData) === null || _a === void 0
|
|
45991
|
+
? void 0
|
|
45992
|
+
: _a.forEach(function (item) {
|
|
45993
|
+
var _a, _b, _c;
|
|
45994
|
+
var code =
|
|
45995
|
+
(_c =
|
|
45996
|
+
(_b = (_a = item === null || item === void 0 ? void 0 : item.content) === null || _a === void 0 ? void 0 : _a.introductie) === null ||
|
|
45997
|
+
_b === void 0
|
|
45998
|
+
? void 0
|
|
45999
|
+
: _b.data) === null || _c === void 0
|
|
46000
|
+
? void 0
|
|
46001
|
+
: _c.code;
|
|
46002
|
+
if (code) {
|
|
46003
|
+
map.set(code, item);
|
|
46004
|
+
}
|
|
46005
|
+
});
|
|
46006
|
+
return map;
|
|
46007
|
+
},
|
|
46008
|
+
[context.cmsGroupTourData]
|
|
46009
|
+
);
|
|
45975
46010
|
return React__default['default'].createElement(
|
|
45976
46011
|
'div',
|
|
45977
46012
|
{ className: 'search__results__cards search__results__cards--'.concat(activeTab) },
|
|
45978
46013
|
filteredResults.map(function (result, index) {
|
|
45979
|
-
|
|
46014
|
+
var cmsItem = cmsMap.get(result.code);
|
|
46015
|
+
return React__default['default'].createElement(GroupTourCard, { key: index, result: result, cmsItem: cmsItem });
|
|
45980
46016
|
})
|
|
45981
46017
|
);
|
|
45982
46018
|
};
|
package/build/build-esm/index.js
CHANGED
|
@@ -22917,7 +22917,7 @@ var OptionUnitsCard = function (_a) {
|
|
|
22917
22917
|
React__default.createElement(
|
|
22918
22918
|
'div',
|
|
22919
22919
|
{ className: 'booking-card__group-header' },
|
|
22920
|
-
React__default.createElement('h3', { className: 'booking-card__body-heading' }, translations.OPTIONS_FORM.UNIT_TITLE, ' ', u.index
|
|
22920
|
+
React__default.createElement('h3', { className: 'booking-card__body-heading' }, translations.OPTIONS_FORM.UNIT_TITLE, ' ', u.index),
|
|
22921
22921
|
React__default.createElement('p', null, getUnitPaxLabel(u.index)),
|
|
22922
22922
|
React__default.createElement(
|
|
22923
22923
|
'div',
|
|
@@ -42399,11 +42399,7 @@ var HotelCard = function (_a) {
|
|
|
42399
42399
|
return (e.currentTarget.style.transform = 'scale(1)');
|
|
42400
42400
|
}
|
|
42401
42401
|
},
|
|
42402
|
-
React__default.createElement('div', {
|
|
42403
|
-
dangerouslySetInnerHTML: {
|
|
42404
|
-
__html: he.decode(result.contents)
|
|
42405
|
-
}
|
|
42406
|
-
}),
|
|
42402
|
+
React__default.createElement('div', { dangerouslySetInnerHTML: { __html: he.decode(result.contents) } }),
|
|
42407
42403
|
React__default.createElement(
|
|
42408
42404
|
'div',
|
|
42409
42405
|
{ className: 'search__result-card__footer' },
|
|
@@ -45545,9 +45541,10 @@ var Filters = function (_a) {
|
|
|
45545
45541
|
};
|
|
45546
45542
|
|
|
45547
45543
|
var GroupTourCard = function (_a) {
|
|
45548
|
-
var _b;
|
|
45544
|
+
var _b, _c, _d, _e, _f, _g;
|
|
45549
45545
|
var result = _a.result,
|
|
45550
|
-
languageCode = _a.languageCode
|
|
45546
|
+
languageCode = _a.languageCode,
|
|
45547
|
+
cmsItem = _a.cmsItem;
|
|
45551
45548
|
var dispatch = useDispatch();
|
|
45552
45549
|
var translations = getTranslations(languageCode !== null && languageCode !== void 0 ? languageCode : 'en-GB');
|
|
45553
45550
|
var selectedSearchResultId = useSelector(function (state) {
|
|
@@ -45572,20 +45569,34 @@ var GroupTourCard = function (_a) {
|
|
|
45572
45569
|
React__default.createElement(
|
|
45573
45570
|
'div',
|
|
45574
45571
|
{ className: 'search__result-card__allotment' },
|
|
45572
|
+
React__default.createElement(
|
|
45573
|
+
'div',
|
|
45574
|
+
{ className: 'search__result-card__allotment__img-wrapper' },
|
|
45575
|
+
React__default.createElement('img', {
|
|
45576
|
+
src:
|
|
45577
|
+
(_e =
|
|
45578
|
+
(_d = (_c = cmsItem === null || cmsItem === void 0 ? void 0 : cmsItem.content) === null || _c === void 0 ? void 0 : _c.images) === null ||
|
|
45579
|
+
_d === void 0
|
|
45580
|
+
? void 0
|
|
45581
|
+
: _d.header) === null || _e === void 0
|
|
45582
|
+
? void 0
|
|
45583
|
+
: _e.url,
|
|
45584
|
+
alt: result.name,
|
|
45585
|
+
className: 'search__result-card__allotment__img'
|
|
45586
|
+
})
|
|
45587
|
+
),
|
|
45575
45588
|
React__default.createElement(
|
|
45576
45589
|
'div',
|
|
45577
45590
|
{ className: 'search__result-card__allotment__title__wrapper' },
|
|
45578
|
-
React__default.createElement(
|
|
45579
|
-
|
|
45580
|
-
|
|
45581
|
-
|
|
45582
|
-
|
|
45583
|
-
|
|
45584
|
-
|
|
45585
|
-
|
|
45586
|
-
|
|
45587
|
-
)
|
|
45588
|
-
),
|
|
45591
|
+
React__default.createElement('h3', { className: 'search__result-card__allotment__title' }, result.name),
|
|
45592
|
+
((_g = (_f = cmsItem === null || cmsItem === void 0 ? void 0 : cmsItem.content) === null || _f === void 0 ? void 0 : _f.introductie) === null ||
|
|
45593
|
+
_g === void 0
|
|
45594
|
+
? void 0
|
|
45595
|
+
: _g.intro) &&
|
|
45596
|
+
React__default.createElement('div', {
|
|
45597
|
+
className: 'search__result-card__allotment__description',
|
|
45598
|
+
dangerouslySetInnerHTML: { __html: he.decode(cmsItem.content.introductie.intro) }
|
|
45599
|
+
}),
|
|
45589
45600
|
React__default.createElement(
|
|
45590
45601
|
'div',
|
|
45591
45602
|
{ className: 'search__result-card__allotment__container' },
|
|
@@ -45724,11 +45735,36 @@ var GroupTourResults = function (_a) {
|
|
|
45724
45735
|
},
|
|
45725
45736
|
[activeTab]
|
|
45726
45737
|
);
|
|
45738
|
+
var cmsMap = React__default.useMemo(
|
|
45739
|
+
function () {
|
|
45740
|
+
var _a;
|
|
45741
|
+
var map = new Map();
|
|
45742
|
+
(_a = context.cmsGroupTourData) === null || _a === void 0
|
|
45743
|
+
? void 0
|
|
45744
|
+
: _a.forEach(function (item) {
|
|
45745
|
+
var _a, _b, _c;
|
|
45746
|
+
var code =
|
|
45747
|
+
(_c =
|
|
45748
|
+
(_b = (_a = item === null || item === void 0 ? void 0 : item.content) === null || _a === void 0 ? void 0 : _a.introductie) === null ||
|
|
45749
|
+
_b === void 0
|
|
45750
|
+
? void 0
|
|
45751
|
+
: _b.data) === null || _c === void 0
|
|
45752
|
+
? void 0
|
|
45753
|
+
: _c.code;
|
|
45754
|
+
if (code) {
|
|
45755
|
+
map.set(code, item);
|
|
45756
|
+
}
|
|
45757
|
+
});
|
|
45758
|
+
return map;
|
|
45759
|
+
},
|
|
45760
|
+
[context.cmsGroupTourData]
|
|
45761
|
+
);
|
|
45727
45762
|
return React__default.createElement(
|
|
45728
45763
|
'div',
|
|
45729
45764
|
{ className: 'search__results__cards search__results__cards--'.concat(activeTab) },
|
|
45730
45765
|
filteredResults.map(function (result, index) {
|
|
45731
|
-
|
|
45766
|
+
var cmsItem = cmsMap.get(result.code);
|
|
45767
|
+
return React__default.createElement(GroupTourCard, { key: index, result: result, cmsItem: cmsItem });
|
|
45732
45768
|
})
|
|
45733
45769
|
);
|
|
45734
45770
|
};
|
package/package.json
CHANGED
|
@@ -91,7 +91,7 @@ const OptionUnitsCard: React.FC<OptionUnitsCardProps> = ({ units, parentIndex, o
|
|
|
91
91
|
<div className={buildClassName(['booking-card__group', toggleStates && toggleStates[i] && 'booking-card__group--active'])}>
|
|
92
92
|
<div className="booking-card__group-header">
|
|
93
93
|
<h3 className="booking-card__body-heading">
|
|
94
|
-
{translations.OPTIONS_FORM.UNIT_TITLE} {u.index
|
|
94
|
+
{translations.OPTIONS_FORM.UNIT_TITLE} {u.index}
|
|
95
95
|
</h3>
|
|
96
96
|
<p>{getUnitPaxLabel(u.index)}</p>
|
|
97
97
|
<div className="booking-card__actions">
|
|
@@ -6,13 +6,15 @@ import { calculateDays, calculateNights, formatPrice, getTranslations } from '..
|
|
|
6
6
|
import { SearchResultsRootState } from '../../store/search-results-store';
|
|
7
7
|
import { useDispatch, useSelector } from 'react-redux';
|
|
8
8
|
import { setSelectedSearchResult } from '../../store/search-results-slice';
|
|
9
|
+
import he from 'he';
|
|
9
10
|
|
|
10
11
|
interface GroupTourCardProps {
|
|
11
12
|
result: BookingPackageItem;
|
|
12
13
|
languageCode?: string;
|
|
14
|
+
cmsItem?: any;
|
|
13
15
|
}
|
|
14
16
|
|
|
15
|
-
const GroupTourCard: React.FC<GroupTourCardProps> = ({ result, languageCode }) => {
|
|
17
|
+
const GroupTourCard: React.FC<GroupTourCardProps> = ({ result, languageCode, cmsItem }) => {
|
|
16
18
|
const dispatch = useDispatch();
|
|
17
19
|
const translations = getTranslations(languageCode ?? 'en-GB');
|
|
18
20
|
const { selectedSearchResultId } = useSelector((state: SearchResultsRootState) => state.searchResults);
|
|
@@ -29,15 +31,16 @@ const GroupTourCard: React.FC<GroupTourCardProps> = ({ result, languageCode }) =
|
|
|
29
31
|
return (
|
|
30
32
|
<div className="search__result-card">
|
|
31
33
|
<div className="search__result-card__allotment">
|
|
34
|
+
<div className="search__result-card__allotment__img-wrapper">
|
|
35
|
+
<img src={cmsItem?.content?.images?.header?.url} alt={result.name} className="search__result-card__allotment__img" />
|
|
36
|
+
</div>
|
|
32
37
|
<div className="search__result-card__allotment__title__wrapper">
|
|
33
|
-
<h3 className="search__result-card__allotment__title">
|
|
34
|
-
|
|
35
|
-
<
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
</h3>
|
|
40
|
-
|
|
38
|
+
<h3 className="search__result-card__allotment__title">{result.name}</h3>
|
|
39
|
+
{cmsItem?.content?.introductie?.intro && (
|
|
40
|
+
<div
|
|
41
|
+
className="search__result-card__allotment__description"
|
|
42
|
+
dangerouslySetInnerHTML={{ __html: he.decode(cmsItem.content.introductie.intro) }}></div>
|
|
43
|
+
)}
|
|
41
44
|
<div className="search__result-card__allotment__container">
|
|
42
45
|
<div className="search__result-card__allotment__header">
|
|
43
46
|
<div className="search__result-card__allotment__wrapper">
|
|
@@ -36,11 +36,25 @@ const GroupTourResults: React.FC<GroupTourResultsProps> = ({ isLoading }) => {
|
|
|
36
36
|
}
|
|
37
37
|
}, [activeTab]);
|
|
38
38
|
|
|
39
|
+
const cmsMap = React.useMemo(() => {
|
|
40
|
+
const map = new Map();
|
|
41
|
+
|
|
42
|
+
context.cmsGroupTourData?.forEach((item) => {
|
|
43
|
+
const code = item?.content?.introductie?.data?.code;
|
|
44
|
+
if (code) {
|
|
45
|
+
map.set(code, item);
|
|
46
|
+
}
|
|
47
|
+
});
|
|
48
|
+
|
|
49
|
+
return map;
|
|
50
|
+
}, [context.cmsGroupTourData]);
|
|
51
|
+
|
|
39
52
|
return (
|
|
40
53
|
<div className={`search__results__cards search__results__cards--${activeTab}`}>
|
|
41
|
-
{filteredResults.map((result, index) =>
|
|
42
|
-
|
|
43
|
-
|
|
54
|
+
{filteredResults.map((result, index) => {
|
|
55
|
+
const cmsItem = cmsMap.get(result.code);
|
|
56
|
+
return <GroupTourCard key={index} result={result} cmsItem={cmsItem} />;
|
|
57
|
+
})}
|
|
44
58
|
</div>
|
|
45
59
|
);
|
|
46
60
|
};
|
|
@@ -26,10 +26,7 @@ const HotelCard: React.FC<HotelCardProps> = ({ result, translations }) => {
|
|
|
26
26
|
className="search__result-card__wrapper search__result-card__wrapper--custom"
|
|
27
27
|
onMouseEnter={(e) => (e.currentTarget.style.transform = 'scale(1.02)')}
|
|
28
28
|
onMouseLeave={(e) => (e.currentTarget.style.transform = 'scale(1)')}>
|
|
29
|
-
<div
|
|
30
|
-
dangerouslySetInnerHTML={{
|
|
31
|
-
__html: he.decode(result.contents)
|
|
32
|
-
}}></div>
|
|
29
|
+
<div dangerouslySetInnerHTML={{ __html: he.decode(result.contents) }}></div>
|
|
33
30
|
<div className="search__result-card__footer">
|
|
34
31
|
<button
|
|
35
32
|
type="button"
|
|
@@ -1174,16 +1174,8 @@
|
|
|
1174
1174
|
width: 100%;
|
|
1175
1175
|
|
|
1176
1176
|
@include mixins.media-xs {
|
|
1177
|
-
grid-template-columns: 1fr 0.6fr;
|
|
1178
|
-
}
|
|
1179
|
-
|
|
1180
|
-
@include mixins.media-lg {
|
|
1181
1177
|
grid-template-columns: 1fr 0.8fr;
|
|
1182
1178
|
}
|
|
1183
|
-
|
|
1184
|
-
@include mixins.media-xl {
|
|
1185
|
-
grid-template-columns: 1fr 0.6fr;
|
|
1186
|
-
}
|
|
1187
1179
|
}
|
|
1188
1180
|
|
|
1189
1181
|
&__header {
|