kupos-ui-components-lib 9.0.10 → 9.0.12
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/dist/assets/images/anims/service_list/priority_stage.json +1 -1
- package/dist/components/ServiceItem/PeruServiceItemDesktop.js +1 -1
- package/dist/components/ServiceItem/RatingHover.d.ts +1 -0
- package/dist/components/ServiceItem/RatingHover.js +30 -29
- package/dist/components/ServiceItem/ServiceItemDesktop.js +83 -28
- package/dist/components/ServiceItem/ServiceItemMobile.d.ts +1 -1
- package/dist/components/ServiceItem/ServiceItemMobile.js +83 -26
- package/dist/components/ServiceItem/mobileTypes.d.ts +2 -0
- package/dist/styles.css +52 -18
- package/dist/ui/AmenitiesBlock.js +25 -24
- package/dist/ui/BottomAmenities/BottomAmenities.js +1 -1
- package/dist/ui/DateTimeSection/DateTimeSection.js +2 -2
- package/dist/ui/DirectoBlock.js +2 -2
- package/dist/ui/DurationBlock.js +2 -2
- package/dist/ui/ExpendedDropDown/ExpandedDropdown.d.ts +1 -10
- package/dist/ui/ExpendedDropDown/ExpandedDropdown.js +1 -1
- package/dist/ui/FlexibleBlock.js +3 -2
- package/dist/ui/RatingBlock.d.ts +2 -1
- package/dist/ui/RatingBlock.js +4 -4
- package/dist/ui/SeatSection/SeatSection.js +20 -2
- package/dist/ui/TopAmenities/TopAmenities.d.ts +2 -1
- package/dist/ui/TopAmenities/TopAmenities.js +11 -5
- package/dist/ui/mobileweb/BottomAmenitiesMobile.d.ts +2 -1
- package/dist/ui/mobileweb/BottomAmenitiesMobile.js +18 -18
- package/dist/ui/mobileweb/ExpandedDropdownMobile.d.ts +11 -0
- package/dist/ui/mobileweb/ExpandedDropdownMobile.js +32 -0
- package/dist/ui/mobileweb/TopAmenitieMobile.d.ts +5 -1
- package/dist/ui/mobileweb/TopAmenitieMobile.js +42 -9
- package/package.json +1 -1
- package/src/assets/images/anims/service_list/priority_stage.json +1 -1
- package/src/components/ServiceItem/PeruServiceItemDesktop.tsx +1 -0
- package/src/components/ServiceItem/RatingHover.tsx +51 -48
- package/src/components/ServiceItem/ServiceItemDesktop.tsx +178 -29
- package/src/components/ServiceItem/ServiceItemMobile.tsx +127 -64
- package/src/components/ServiceItem/mobileTypes.ts +2 -0
- package/src/ui/AmenitiesBlock.tsx +34 -34
- package/src/ui/BottomAmenities/BottomAmenities.tsx +8 -8
- package/src/ui/DateTimeSection/DateTimeSection.tsx +2 -2
- package/src/ui/DirectoBlock.tsx +2 -2
- package/src/ui/DurationBlock.tsx +2 -2
- package/src/ui/ExpendedDropDown/ExpandedDropdown.tsx +0 -12
- package/src/ui/FlexibleBlock.tsx +3 -2
- package/src/ui/RatingBlock.tsx +4 -2
- package/src/ui/SeatSection/SeatSection.tsx +22 -2
- package/src/ui/TopAmenities/TopAmenities.tsx +40 -29
- package/src/ui/mobileweb/BottomAmenitiesMobile.tsx +65 -64
- package/src/ui/mobileweb/ExpandedDropdownMobile.tsx +56 -0
- package/src/ui/mobileweb/TopAmenitieMobile.tsx +65 -21
|
@@ -1 +1 @@
|
|
|
1
|
-
{"nm":"Main Scene","ddd":0,"h":
|
|
1
|
+
{"nm":"Main Scene","ddd":0,"h":500,"w":500,"meta":{"g":"@lottiefiles/creator 1.25.0"},"layers":[{"ty":0,"nm":" Main Scene","sr":1,"st":0,"op":90,"ip":0,"hd":false,"ddd":0,"bm":0,"hasMask":false,"ao":0,"ks":{"a":{"a":0,"k":[250,250]},"s":{"a":0,"k":[100,100]},"sk":{"a":0,"k":0},"p":{"a":0,"k":[250,250]},"r":{"a":0,"k":0},"sa":{"a":0,"k":0},"o":{"a":0,"k":100}},"w":500,"h":500,"refId":"precomp_Main Scene_c6717324-fe11-4912-8421-1a94a5c0a552","ind":1}],"v":"5.7.0","fr":30,"op":90,"ip":0,"assets":[{"nm":"Main Scene","id":"precomp_Main Scene_c6717324-fe11-4912-8421-1a94a5c0a552","layers":[{"ty":4,"nm":"Shape Layer - SVG","sr":1,"st":0,"op":90,"ip":0,"hd":false,"ln":"Capa_1","ddd":0,"bm":0,"hasMask":false,"ao":0,"ks":{"a":{"a":0,"k":[32.5,32.5]},"s":{"a":1,"k":[{"o":{"x":0.167,"y":0.167},"i":{"x":0.833,"y":0.833},"s":[0,0],"t":4},{"s":[619.0851,619.0851],"t":14}]},"sk":{"a":0,"k":0},"p":{"a":0,"k":[249.94198808735723,248.20464459007883]},"r":{"a":0,"k":0},"sa":{"a":0,"k":0},"o":{"a":1,"k":[{"o":{"x":0.167,"y":0.167},"i":{"x":0.833,"y":0.833},"s":[0],"t":0},{"s":[100],"t":7}]}},"shapes":[{"ty":"gr","bm":0,"hd":false,"nm":"Group 1","it":[{"ty":"sh","bm":0,"hd":false,"nm":"Path 1","d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[1.0100000000000051,0.14999999999999858],[0,0],[0,0],[1.0400000000000063,0],[0.46000000000000085,-0.9199999999999999],[0,0],[0,0],[0.3200000000000003,-0.9899999999999984],[-0.75,-0.740000000000002],[0,0],[0,0],[-0.8599999999999994,-0.6299999999999955],[-0.9000000000000004,0.480000000000004],[0,0],[0,0],[-0.4299999999999997,0],[-0.47000000000000597,0.3400000000000034],[0.14999999999999858,1.0300000000000011],[0,0],[0,0],[0.3299999999999983,0.990000000000002],[0,0]],"o":[[-0.3200000000000003,-0.9899999999999984],[0,0],[0,0],[-0.46999999999999886,-0.96],[-1.0400000000000063,0],[0,0],[0,0],[-1.0099999999999998,0.14999999999999858],[-0.32000000000000006,0.9899999999999984],[0,0],[0,0],[-0.17999999999999972,1.0300000000000011],[0.8300000000000001,0.6300000000000026],[0,0],[0,0],[0.3999999999999986,0.21999999999999886],[0.5399999999999991,0],[0.8299999999999983,-0.6300000000000026],[0,0],[0,0],[0.7199999999999989,-0.7399999999999984],[0,0],[0,0]],"v":[[62.9,25.51],[60.739999999999995,23.67],[42.89999999999999,21.020000000000003],[34.93999999999999,4.510000000000002],[32.52999999999999,3.0000000000000018],[30.119999999999987,4.510000000000002],[22.149999999999988,21.020000000000003],[4.309999999999988,23.67],[2.149999999999988,25.51],[2.829999999999988,28.310000000000002],[15.729999999999988,41.17],[12.669999999999987,59.34],[13.749999999999988,62.03],[16.559999999999988,62.25],[32.48999999999999,53.66],[48.41999999999999,62.25],[49.679999999999986,62.58],[51.26999999999999,62.059999999999995],[52.34999999999999,59.37],[49.289999999999985,41.199999999999996],[62.18999999999998,28.339999999999996],[62.86999999999998,25.539999999999996],[62.90999999999998,25.499999999999996]]}}},{"ty":"st","bm":0,"hd":false,"nm":"Stroke","lc":1,"lj":1,"ml":4,"o":{"a":0,"k":100},"w":{"a":0,"k":3.58},"c":{"a":0,"k":[0.9765,0.5373,0.2706]}},{"ty":"tr","a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"sk":{"a":0,"k":0},"p":{"a":0,"k":[0,0]},"r":{"a":0,"k":0},"sa":{"a":0,"k":0},"o":{"a":0,"k":100}}]}],"ind":1}]}]}
|
|
@@ -316,7 +316,7 @@ function PeruServiceItemDesktop({ serviceItem, onBookButtonPress, colors, metaDa
|
|
|
316
316
|
{
|
|
317
317
|
key: "rating",
|
|
318
318
|
width: "30%",
|
|
319
|
-
render: (React.createElement(RatingBlock, { showRating: showRating, serviceItem: serviceItem, isSoldOut: isSoldOut, colors: colors, t: t, translation: translation })),
|
|
319
|
+
render: (React.createElement(RatingBlock, { showRating: showRating, serviceItem: serviceItem, isSoldOut: isSoldOut, colors: colors, t: t, translation: translation, isPeru: isPeru })),
|
|
320
320
|
},
|
|
321
321
|
{
|
|
322
322
|
key: "duration",
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
import RatingItem from "./RatingItem";
|
|
3
|
-
const RatingHover = ({ serviceItem, isSoldOut, colors, t = (key) => key, translation, }) => {
|
|
3
|
+
const RatingHover = ({ serviceItem, isSoldOut, colors, t = (key) => key, translation, isPeru, }) => {
|
|
4
|
+
const ratingIndex = isPeru ? 7 : 6;
|
|
4
5
|
return (React.createElement("div", { className: "flex items-center" },
|
|
5
6
|
React.createElement("div", { className: "w-[18px] h-auto mr-[4px] relative" },
|
|
6
7
|
React.createElement("img", { src: serviceItem.icons.rating, alt: "origin", className: `w-[16px] h-[16px] mr-[4px] object-contain mb-[4px] ${isSoldOut ? "grayscale" : ""}`, onMouseEnter: (e) => {
|
|
@@ -22,37 +23,37 @@ const RatingHover = ({ serviceItem, isSoldOut, colors, t = (key) => key, transla
|
|
|
22
23
|
React.createElement("div", { className: "text-[12px] bold-text" }, translation === null || translation === void 0 ? void 0 : translation.ratingMouseOverText),
|
|
23
24
|
React.createElement("div", { className: "text-[12px] font-light" }, serviceItem.operator_service_name)),
|
|
24
25
|
React.createElement("div", { className: "px-3 py-2 flex flex-col gap-[10px] font9" },
|
|
25
|
-
React.createElement(RatingItem, { rating: serviceItem.operator_details[
|
|
26
|
-
serviceItem.operator_details[
|
|
27
|
-
serviceItem.operator_details[
|
|
28
|
-
parseFloat(serviceItem.operator_details[
|
|
29
|
-
serviceItem.operator_details[
|
|
30
|
-
? +parseFloat(serviceItem.operator_details[
|
|
31
|
-
serviceItem.operator_details[
|
|
26
|
+
React.createElement(RatingItem, { rating: serviceItem.operator_details[ratingIndex] &&
|
|
27
|
+
serviceItem.operator_details[ratingIndex][Object.keys(serviceItem.operator_details[ratingIndex] &&
|
|
28
|
+
serviceItem.operator_details[ratingIndex])[0]] &&
|
|
29
|
+
parseFloat(serviceItem.operator_details[ratingIndex][Object.keys(serviceItem.operator_details[ratingIndex] &&
|
|
30
|
+
serviceItem.operator_details[ratingIndex])[0]]).toFixed(1)
|
|
31
|
+
? +parseFloat(serviceItem.operator_details[ratingIndex][Object.keys(serviceItem.operator_details[ratingIndex] &&
|
|
32
|
+
serviceItem.operator_details[ratingIndex])[0]]).toFixed(1)
|
|
32
33
|
: 0, label: translation === null || translation === void 0 ? void 0 : translation.busQuality, isSoldOut: isSoldOut }),
|
|
33
|
-
React.createElement(RatingItem, { rating: serviceItem.operator_details[
|
|
34
|
-
serviceItem.operator_details[
|
|
35
|
-
serviceItem.operator_details[
|
|
36
|
-
parseFloat(serviceItem.operator_details[
|
|
37
|
-
serviceItem.operator_details[
|
|
38
|
-
? +parseFloat(serviceItem.operator_details[
|
|
39
|
-
serviceItem.operator_details[
|
|
34
|
+
React.createElement(RatingItem, { rating: serviceItem.operator_details[ratingIndex] &&
|
|
35
|
+
serviceItem.operator_details[ratingIndex][Object.keys(serviceItem.operator_details[ratingIndex] &&
|
|
36
|
+
serviceItem.operator_details[ratingIndex])[1]] &&
|
|
37
|
+
parseFloat(serviceItem.operator_details[ratingIndex][Object.keys(serviceItem.operator_details[ratingIndex] &&
|
|
38
|
+
serviceItem.operator_details[ratingIndex])[1]]).toFixed(1)
|
|
39
|
+
? +parseFloat(serviceItem.operator_details[ratingIndex][Object.keys(serviceItem.operator_details[ratingIndex] &&
|
|
40
|
+
serviceItem.operator_details[ratingIndex])[1]]).toFixed(1)
|
|
40
41
|
: 0, label: translation === null || translation === void 0 ? void 0 : translation.punctuality, isSoldOut: isSoldOut }),
|
|
41
|
-
React.createElement(RatingItem, { rating: serviceItem.operator_details[
|
|
42
|
-
serviceItem.operator_details[
|
|
43
|
-
serviceItem.operator_details[
|
|
44
|
-
parseFloat(serviceItem.operator_details[
|
|
45
|
-
serviceItem.operator_details[
|
|
46
|
-
? +parseFloat(serviceItem.operator_details[
|
|
47
|
-
serviceItem.operator_details[
|
|
42
|
+
React.createElement(RatingItem, { rating: serviceItem.operator_details[ratingIndex] &&
|
|
43
|
+
serviceItem.operator_details[ratingIndex][Object.keys(serviceItem.operator_details[ratingIndex] &&
|
|
44
|
+
serviceItem.operator_details[ratingIndex])[2]] &&
|
|
45
|
+
parseFloat(serviceItem.operator_details[ratingIndex][Object.keys(serviceItem.operator_details[ratingIndex] &&
|
|
46
|
+
serviceItem.operator_details[ratingIndex])[2]]).toFixed(1)
|
|
47
|
+
? +parseFloat(serviceItem.operator_details[ratingIndex][Object.keys(serviceItem.operator_details[ratingIndex] &&
|
|
48
|
+
serviceItem.operator_details[ratingIndex])[2]]).toFixed(1)
|
|
48
49
|
: 0, label: translation === null || translation === void 0 ? void 0 : translation.serviceQuality, isSoldOut: isSoldOut }),
|
|
49
|
-
React.createElement(RatingItem, { rating: serviceItem.operator_details[
|
|
50
|
-
serviceItem.operator_details[
|
|
51
|
-
serviceItem.operator_details[
|
|
52
|
-
parseFloat(serviceItem.operator_details[
|
|
53
|
-
serviceItem.operator_details[
|
|
54
|
-
? +parseFloat(serviceItem.operator_details[
|
|
55
|
-
serviceItem.operator_details[
|
|
50
|
+
React.createElement(RatingItem, { rating: serviceItem.operator_details[ratingIndex] &&
|
|
51
|
+
serviceItem.operator_details[ratingIndex][Object.keys(serviceItem.operator_details[ratingIndex] &&
|
|
52
|
+
serviceItem.operator_details[ratingIndex])[3]] &&
|
|
53
|
+
parseFloat(serviceItem.operator_details[ratingIndex][Object.keys(serviceItem.operator_details[ratingIndex] &&
|
|
54
|
+
serviceItem.operator_details[ratingIndex])[3]]).toFixed(1)
|
|
55
|
+
? +parseFloat(serviceItem.operator_details[ratingIndex][Object.keys(serviceItem.operator_details[ratingIndex] &&
|
|
56
|
+
serviceItem.operator_details[ratingIndex])[3]]).toFixed(1)
|
|
56
57
|
: 0, label: translation === null || translation === void 0 ? void 0 : translation.serviceRecommendation, isSoldOut: isSoldOut })),
|
|
57
58
|
React.createElement("div", { className: "px-1 py-2 text-center text-[12px] font9", style: {
|
|
58
59
|
backgroundColor: isSoldOut ? "#f5f5f5" : colors.ratingBottomColor,
|
|
@@ -27,7 +27,6 @@ import PetBlock from "../../ui/PetBlock";
|
|
|
27
27
|
import FlexibleBlock from "../../ui/FlexibleBlock";
|
|
28
28
|
import AmenitiesBlock from "../../ui/AmenitiesBlock";
|
|
29
29
|
import KuposButton from "../../ui/KuposButton/KuposButton";
|
|
30
|
-
import TopAmenities from "../../ui/TopAmenities/TopAmenities";
|
|
31
30
|
import BottomAmenities from "../../ui/BottomAmenities/BottomAmenities";
|
|
32
31
|
import SeatSection from "../../ui/SeatSection/SeatSection";
|
|
33
32
|
import DateTimeSection from "../../ui/DateTimeSection/DateTimeSection";
|
|
@@ -110,7 +109,7 @@ function ServiceItemPB({ serviceItem, onBookButtonPress, colors, metaData, child
|
|
|
110
109
|
};
|
|
111
110
|
const checkMidnight = () => {
|
|
112
111
|
var _a, _b;
|
|
113
|
-
setIsExpand(null);
|
|
112
|
+
setIsExpand === null || setIsExpand === void 0 ? void 0 : setIsExpand(null);
|
|
114
113
|
if ((cityOrigin === null || cityOrigin === void 0 ? void 0 : cityOrigin.label) &&
|
|
115
114
|
(cityDestination === null || cityDestination === void 0 ? void 0 : cityDestination.label) &&
|
|
116
115
|
((cityOrigin.label.toLowerCase().includes("argentina") &&
|
|
@@ -184,6 +183,30 @@ function ServiceItemPB({ serviceItem, onBookButtonPress, colors, metaData, child
|
|
|
184
183
|
onBookButtonPress();
|
|
185
184
|
};
|
|
186
185
|
const countdownSeconds = 7830;
|
|
186
|
+
const startCountdown = (node) => {
|
|
187
|
+
if (!node)
|
|
188
|
+
return;
|
|
189
|
+
const prevId = node.dataset.countdownId;
|
|
190
|
+
if (prevId)
|
|
191
|
+
clearInterval(Number(prevId));
|
|
192
|
+
let remaining = countdownSeconds;
|
|
193
|
+
const formatTime = (totalSecs) => {
|
|
194
|
+
const h = Math.floor(totalSecs / 3600);
|
|
195
|
+
const m = Math.floor((totalSecs % 3600) / 60);
|
|
196
|
+
const s = totalSecs % 60;
|
|
197
|
+
return `${String(h).padStart(2, "0")}:${String(m).padStart(2, "0")}:${String(s).padStart(2, "0")}`;
|
|
198
|
+
};
|
|
199
|
+
node.textContent = formatTime(remaining);
|
|
200
|
+
const id = setInterval(() => {
|
|
201
|
+
remaining -= 1;
|
|
202
|
+
if (remaining <= 0) {
|
|
203
|
+
remaining = 0;
|
|
204
|
+
clearInterval(id);
|
|
205
|
+
}
|
|
206
|
+
node.textContent = formatTime(remaining);
|
|
207
|
+
}, 1000);
|
|
208
|
+
node.dataset.countdownId = String(id);
|
|
209
|
+
};
|
|
187
210
|
const items = [
|
|
188
211
|
{
|
|
189
212
|
key: "amenities",
|
|
@@ -200,7 +223,7 @@ function ServiceItemPB({ serviceItem, onBookButtonPress, colors, metaData, child
|
|
|
200
223
|
{
|
|
201
224
|
key: "directo",
|
|
202
225
|
width: "12%",
|
|
203
|
-
condition: serviceItem === null || serviceItem === void 0 ? void 0 : serviceItem.is_direct_trip,
|
|
226
|
+
condition: (serviceItem === null || serviceItem === void 0 ? void 0 : serviceItem.is_direct_trip) === true,
|
|
204
227
|
render: (React.createElement(DirectoBlock, { translation: translation, getAnimationIcon: getAnimationIcon, colors: colors, isSoldOut: isSoldOut })),
|
|
205
228
|
},
|
|
206
229
|
{
|
|
@@ -213,31 +236,21 @@ function ServiceItemPB({ serviceItem, onBookButtonPress, colors, metaData, child
|
|
|
213
236
|
{
|
|
214
237
|
key: "flexible",
|
|
215
238
|
width: "20%",
|
|
216
|
-
condition: serviceItem.is_change_ticket,
|
|
239
|
+
condition: serviceItem.is_change_ticket === true,
|
|
217
240
|
render: (React.createElement(FlexibleBlock, { translation: translation, getAnimationIcon: getAnimationIcon, colors: colors, serviceItem: serviceItem, isSoldOut: isSoldOut })),
|
|
218
241
|
},
|
|
219
242
|
];
|
|
220
243
|
const otherItems = items.filter((i) => i.key !== "pet" && i.key !== "flexible" && !!i.condition);
|
|
221
|
-
return (React.createElement(React.Fragment, null, isPeruSites ? (React.createElement(PeruServiceItemDesktop, { serviceItem: serviceItem, onBookButtonPress: onBookButtonPress, colors: colors, metaData: metaData, children: children, busStage: busStage, serviceDetailsLoading: serviceDetailsLoading, cityOrigin: cityOrigin, cityDestination: cityDestination, translation: translation, orignLabel: orignLabel, destinationLabel: destinationLabel, currencySign: currencySign, isCiva: isCiva, showRating: showRating, showLastSeats: showLastSeats, removeArrivalTime: removeArrivalTime, removeDuplicateSeats: removeDuplicateSeats, isPeruSites: isPeruSites, t: (key) => t(key), showAvailableSeats: showAvailableSeats, isSeatIcon: isSeatIcon, isPeru: isPeru, siteType: siteType, isAllinBus: isAllinBus })) : (React.createElement("div", {
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
React.createElement("div", { id: `service-card-${serviceItem.id}`, className: "bg-white mx-auto relative ", style: {
|
|
232
|
-
border: countdownSeconds > 0
|
|
233
|
-
? `1px solid ${colors.priceColor}`
|
|
234
|
-
: "1px solid #ccc",
|
|
235
|
-
borderRadius: showTopLabel
|
|
236
|
-
? "10px 0 10px 10px"
|
|
237
|
-
: countdownSeconds > 0
|
|
238
|
-
? "10px 0 10px 10px"
|
|
239
|
-
: "10px",
|
|
240
|
-
} },
|
|
244
|
+
return (React.createElement(React.Fragment, null, isPeruSites ? (React.createElement(PeruServiceItemDesktop, { serviceItem: serviceItem, onBookButtonPress: onBookButtonPress, colors: colors, metaData: metaData, children: children, busStage: busStage, serviceDetailsLoading: serviceDetailsLoading, cityOrigin: cityOrigin, cityDestination: cityDestination, translation: translation, orignLabel: orignLabel, destinationLabel: destinationLabel, currencySign: currencySign, isCiva: isCiva, showRating: showRating, showLastSeats: showLastSeats, removeArrivalTime: removeArrivalTime, removeDuplicateSeats: removeDuplicateSeats, isPeruSites: isPeruSites, t: (key) => t(key), showAvailableSeats: showAvailableSeats, isSeatIcon: isSeatIcon, isPeru: isPeru, siteType: siteType, isAllinBus: isAllinBus })) : (React.createElement("div", {
|
|
245
|
+
// className={`relative ${
|
|
246
|
+
// serviceItem.offer_text ? "mb-[55px]" : "mb-[10px]"
|
|
247
|
+
// } mt-[14px]`}
|
|
248
|
+
className: `relative ${serviceItem.offer_text ? "mb-[55px]" : "mb-[10px]"} ${(serviceItem === null || serviceItem === void 0 ? void 0 : serviceItem.is_direct_trip) ||
|
|
249
|
+
(serviceItem === null || serviceItem === void 0 ? void 0 : serviceItem.train_type_label) === "Tren Express (Nuevo)" ||
|
|
250
|
+
showTopLabel
|
|
251
|
+
? "mt-[24px]"
|
|
252
|
+
: "mt-[20px]"} ` },
|
|
253
|
+
React.createElement("div", { id: `service-card-${serviceItem.id}`, className: "bg-white mx-auto relative rounded-[10px] border border-[#ccc]" },
|
|
241
254
|
React.createElement("div", {
|
|
242
255
|
// className="p-[15px] pt-[20px]"
|
|
243
256
|
className: " pt-[20px]", style: {
|
|
@@ -258,7 +271,7 @@ function ServiceItemPB({ serviceItem, onBookButtonPress, colors, metaData, child
|
|
|
258
271
|
className: "" },
|
|
259
272
|
React.createElement("img", { src: serviceItem.operator_details[0], alt: "service logo", className: `h-auto w-[150px] object-contain ${isSoldOut ? "grayscale" : ""}` }),
|
|
260
273
|
isCiva ? (React.createElement("div", { className: "text-[13.33px] black-text ml-2" }, serviceItem.operator_details[2])) : null),
|
|
261
|
-
React.createElement(RatingBlock, { showRating: showRating, serviceItem: serviceItem, isSoldOut: isSoldOut, colors: colors, t: t, translation: translation })),
|
|
274
|
+
React.createElement(RatingBlock, { showRating: showRating, serviceItem: serviceItem, isSoldOut: isSoldOut, colors: colors, t: t, translation: translation, isPeru: isPeru })),
|
|
262
275
|
React.createElement(DateTimeSection, { serviceItem: serviceItem, isSoldOut: isSoldOut, isCiva: isCiva, isLinatal: isLinatal, removeArrivalTime: removeArrivalTime, orignLabel: orignLabel, destinationLabel: destinationLabel, busStage: busStage, metaData: metaData, colors: colors }),
|
|
263
276
|
React.createElement("div", { style: {
|
|
264
277
|
width: "1px",
|
|
@@ -283,15 +296,57 @@ function ServiceItemPB({ serviceItem, onBookButtonPress, colors, metaData, child
|
|
|
283
296
|
gridTemplateRows: isItemExpanded ? "1fr" : "0fr",
|
|
284
297
|
opacity: isItemExpanded ? 1 : 0,
|
|
285
298
|
transition: "grid-template-rows 0.3s ease-in-out, opacity 0.25s ease-in-out",
|
|
299
|
+
position: "relative",
|
|
300
|
+
zIndex: -1,
|
|
286
301
|
} },
|
|
287
302
|
React.createElement("div", { style: { overflow: "hidden", minHeight: 0, marginTop: "-10px" } },
|
|
288
|
-
React.createElement(ExpandedDropdown, { serviceItem: serviceItem
|
|
303
|
+
React.createElement(ExpandedDropdown, { serviceItem: serviceItem }))),
|
|
289
304
|
children,
|
|
290
305
|
(serviceItem === null || serviceItem === void 0 ? void 0 : serviceItem.offer_text) && (React.createElement("div", { className: "text-white p-[10px_15px] text-left w-full flex items-center absolute -bottom-[36px] pt-[50px] -z-10 rounded-b-[14px] text-[14px]", style: {
|
|
291
306
|
backgroundColor: colors === null || colors === void 0 ? void 0 : colors.bottomStripColor,
|
|
292
307
|
opacity: isSoldOut ? 0.5 : 1,
|
|
293
308
|
} },
|
|
294
|
-
React.createElement(
|
|
295
|
-
|
|
309
|
+
React.createElement("div", { className: "flex justify-between items-center w-full" },
|
|
310
|
+
React.createElement("div", { className: "flex items-center" },
|
|
311
|
+
React.createElement(LottiePlayer, { animationData: getAnimationIcon("bombAnimation"), width: "18px", height: "18px" }),
|
|
312
|
+
React.createElement("span", { className: "bold-text ml-[8px]" },
|
|
313
|
+
" ",
|
|
314
|
+
(serviceItem === null || serviceItem === void 0 ? void 0 : serviceItem.offer_text) || "")),
|
|
315
|
+
React.createElement("div", null,
|
|
316
|
+
"Termina en\u00A0",
|
|
317
|
+
React.createElement("span", { className: "bold-text text-end", ref: startCountdown, style: {
|
|
318
|
+
fontVariantNumeric: "tabular-nums",
|
|
319
|
+
display: "inline-block",
|
|
320
|
+
// minWidth: "70px",
|
|
321
|
+
} }))))),
|
|
322
|
+
React.createElement("div", { className: "absolute -top-[11px] left-0 w-full flex items-center justify-end gap-[12px] pr-[15px] z-10 " },
|
|
323
|
+
showTopLabel && (React.createElement("div", { className: `flex items-center gap-[10px] py-[4px] px-[14px] rounded-[38px] text-[12.5px] z-10`, style: {
|
|
324
|
+
backgroundColor: isSoldOut
|
|
325
|
+
? "#ddd"
|
|
326
|
+
: colors.ratingBottomColor,
|
|
327
|
+
} },
|
|
328
|
+
React.createElement("div", { className: isSoldOut ? "grayscale" : "" },
|
|
329
|
+
React.createElement(LottiePlayer
|
|
330
|
+
// animationData={serviceItem.icons.priorityStageAnim}
|
|
331
|
+
, {
|
|
332
|
+
// animationData={serviceItem.icons.priorityStageAnim}
|
|
333
|
+
animationData: getAnimationIcon("priorityStageAnim"), width: "14px", height: "14px" })),
|
|
334
|
+
React.createElement("div", { className: isSoldOut ? "text-white" : `text-[${colors.topLabelColor}]` }, showTopLabel))),
|
|
335
|
+
(serviceItem === null || serviceItem === void 0 ? void 0 : serviceItem.is_transpordo) && (React.createElement("div", { className: `flex items-center gap-[10px] py-[4px] text-white px-[14px] rounded-[38px] text-[12.5px] z-20`, style: {
|
|
336
|
+
backgroundColor: isSoldOut ? "#ddd" : colors.tooltipColor,
|
|
337
|
+
} },
|
|
338
|
+
React.createElement(LottiePlayer, { animationData: serviceItem.icons.connectingServiceIcon,
|
|
339
|
+
// animationData={getAnimationIcon(connectingServiceIcon)}
|
|
340
|
+
width: "14px", height: "14px" }),
|
|
341
|
+
React.createElement("div", null, "Conexión"))),
|
|
342
|
+
(serviceItem === null || serviceItem === void 0 ? void 0 : serviceItem.train_type_label) === "Tren Express (Nuevo)" && (React.createElement("div", { className: `flex items-center gap-[10px] py-[4px] text-white px-[14px] rounded-[38px] text-[12.5px] z-20 `, style: {
|
|
343
|
+
backgroundColor: isSoldOut ? "#ddd" : colors.tooltipColor,
|
|
344
|
+
} },
|
|
345
|
+
React.createElement(LottiePlayer
|
|
346
|
+
// animationData={serviceItem.icons.directoAnim}
|
|
347
|
+
, {
|
|
348
|
+
// animationData={serviceItem.icons.directoAnim}
|
|
349
|
+
animationData: getAnimationIcon("directoAnim"), width: "14px", height: "14px" }),
|
|
350
|
+
React.createElement("div", null, "Tren Express"))))))));
|
|
296
351
|
}
|
|
297
352
|
export default ServiceItemPB;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
import { MobileServiceItemProps } from "./mobileTypes";
|
|
3
|
-
declare function ServiceItemMobile({ serviceItem, onBookButtonPress, colors, busStage, orignLabel, destinationLabel, amenitiesData, setShowDropdown, showDropdown, setAmenetiesAtomValue, isCiva, currencySign, isPeru, showRating, showLastSeats, removeDuplicateSeats, isLinatal, }: MobileServiceItemProps): React.ReactElement;
|
|
3
|
+
declare function ServiceItemMobile({ serviceItem, onBookButtonPress, colors, busStage, orignLabel, destinationLabel, amenitiesData, setShowDropdown, showDropdown, isExpanded, setIsExpanded, setAmenetiesAtomValue, isCiva, currencySign, isPeru, showRating, showLastSeats, removeDuplicateSeats, isLinatal, }: MobileServiceItemProps): React.ReactElement;
|
|
4
4
|
export default ServiceItemMobile;
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
import LottiePlayer from "../../assets/LottiePlayer";
|
|
3
3
|
import commonService from "../../utils/CommonService";
|
|
4
|
-
import TopAmenitieMobile from "../../ui/mobileweb/TopAmenitieMobile";
|
|
5
4
|
import BottomAmenitiesMobile from "../../ui/mobileweb/BottomAmenitiesMobile";
|
|
6
5
|
import DateTimeSectionMobile from "../../ui/mobileweb/DateTimeSectionMobile";
|
|
6
|
+
import ExpandedDropdownMobile from "../../ui/mobileweb/ExpandedDropdownMobile";
|
|
7
7
|
const SEAT_EXCEPTIONS = ["Asiento mascota"];
|
|
8
8
|
const exceptions = [
|
|
9
9
|
"gy",
|
|
@@ -16,11 +16,37 @@ const exceptions = [
|
|
|
16
16
|
"blanco",
|
|
17
17
|
"asiento_mascota",
|
|
18
18
|
];
|
|
19
|
-
function ServiceItemMobile({ serviceItem, onBookButtonPress, colors, busStage, orignLabel, destinationLabel, amenitiesData, setShowDropdown, showDropdown, setAmenetiesAtomValue, isCiva, currencySign, isPeru, showRating, showLastSeats, removeDuplicateSeats, isLinatal, }) {
|
|
19
|
+
function ServiceItemMobile({ serviceItem, onBookButtonPress, colors, busStage, orignLabel, destinationLabel, amenitiesData, setShowDropdown, showDropdown, isExpanded, setIsExpanded, setAmenetiesAtomValue, isCiva, currencySign, isPeru, showRating, showLastSeats, removeDuplicateSeats, isLinatal, }) {
|
|
20
20
|
var _a, _b, _c;
|
|
21
|
+
const isItemExpanded = serviceItem.id === isExpanded;
|
|
21
22
|
const isPetSeat = (Object.keys(serviceItem === null || serviceItem === void 0 ? void 0 : serviceItem.pet_seat_info) || []).length > 0;
|
|
22
23
|
let isSoldOut = serviceItem.available_seats <= 0;
|
|
23
24
|
const showPromo = Math.random() > 0.5;
|
|
25
|
+
const countdownSeconds = 7830;
|
|
26
|
+
const startCountdown = (node) => {
|
|
27
|
+
if (!node)
|
|
28
|
+
return;
|
|
29
|
+
const prevId = node.dataset.countdownId;
|
|
30
|
+
if (prevId)
|
|
31
|
+
clearInterval(Number(prevId));
|
|
32
|
+
let remaining = countdownSeconds;
|
|
33
|
+
const formatTime = (totalSecs) => {
|
|
34
|
+
const h = Math.floor(totalSecs / 3600);
|
|
35
|
+
const m = Math.floor((totalSecs % 3600) / 60);
|
|
36
|
+
const s = totalSecs % 60;
|
|
37
|
+
return `${String(h).padStart(2, "0")}:${String(m).padStart(2, "0")}:${String(s).padStart(2, "0")}`;
|
|
38
|
+
};
|
|
39
|
+
node.textContent = formatTime(remaining);
|
|
40
|
+
const id = setInterval(() => {
|
|
41
|
+
remaining -= 1;
|
|
42
|
+
if (remaining <= 0) {
|
|
43
|
+
remaining = 0;
|
|
44
|
+
clearInterval(id);
|
|
45
|
+
}
|
|
46
|
+
node.textContent = formatTime(remaining);
|
|
47
|
+
}, 1000);
|
|
48
|
+
node.dataset.countdownId = String(id);
|
|
49
|
+
};
|
|
24
50
|
const labelId = typeof serviceItem.boarding_stages === "string"
|
|
25
51
|
? serviceItem.boarding_stages.split("|")[0]
|
|
26
52
|
: "";
|
|
@@ -72,26 +98,16 @@ function ServiceItemMobile({ serviceItem, onBookButtonPress, colors, busStage, o
|
|
|
72
98
|
isConexion ||
|
|
73
99
|
(serviceItem === null || serviceItem === void 0 ? void 0 : serviceItem.train_type_label) === "Tren Express (Nuevo)" ||
|
|
74
100
|
showTopLabel
|
|
75
|
-
? "mt-[
|
|
101
|
+
? "mt-[20px]"
|
|
76
102
|
: "mt-[10px]"} `, style: { backgroundColor: "#fff", zIndex: 1 } },
|
|
77
|
-
React.createElement(TopAmenitieMobile, { showTopLabel: showTopLabel, isSoldOut: isSoldOut, seatPriceColor: colors.seatPriceColor, bombAnim: serviceItem.icons.bombAnim, priorityStageAnim: serviceItem.icons.priorityStageAnim }),
|
|
78
103
|
React.createElement("div", { className: " rounded-[20px]", style: {
|
|
79
104
|
backgroundColor: "#fff",
|
|
80
105
|
zIndex: 1,
|
|
81
106
|
// borderRadius: showTopLabel ? "10px 0 10px 10px" : "10px",
|
|
82
|
-
borderRadius: "
|
|
83
|
-
border:
|
|
107
|
+
borderRadius: "12px",
|
|
108
|
+
border: "1px solid #ccc",
|
|
84
109
|
} },
|
|
85
|
-
React.createElement("div", {
|
|
86
|
-
// className={` ${
|
|
87
|
-
// serviceItem?.train_type_label === "Tren Express (Nuevo)" ||
|
|
88
|
-
// showTopLabel ||
|
|
89
|
-
// serviceItem?.is_direct_trip ||
|
|
90
|
-
// serviceItem?.is_transpordo
|
|
91
|
-
// ? "mt-[10px]"
|
|
92
|
-
// : ""
|
|
93
|
-
// }`}
|
|
94
|
-
style: { padding: "12px 12px 8px 12px" } },
|
|
110
|
+
React.createElement("div", { style: { padding: "12px 12px 8px 12px" } },
|
|
95
111
|
React.createElement("div", { className: "flex justify-between items-center mb-[10px]" },
|
|
96
112
|
React.createElement("div", { className: "flex items-center justify-between" },
|
|
97
113
|
React.createElement("div", { className: "w-[120px] overflow-y-hidden" },
|
|
@@ -102,17 +118,21 @@ function ServiceItemMobile({ serviceItem, onBookButtonPress, colors, busStage, o
|
|
|
102
118
|
React.createElement("img", { src: serviceItem.icons.rating, alt: "origin", className: `w-[12px] h-[12px] mr-[4px] object-contain ${isSoldOut ? "grayscale" : ""}` }),
|
|
103
119
|
React.createElement("span", { style: { lineHeight: "normal" } }, getServiceStars(serviceItem))),
|
|
104
120
|
React.createElement("div", { className: "flex items-center cursor-pointer ", style: { color: isSoldOut ? "#bbb" : "text-[#464647]" } },
|
|
105
|
-
React.createElement("span", { className: "ml-[3px] min-[420]:text-[13px] text-[12px]" }, serviceItem.operator_details[2]))))) : null),
|
|
121
|
+
React.createElement("span", { className: "ml-[3px] min-[420]:text-[13px] text-[12px] text-ellipsis" }, serviceItem.operator_details[2]))))) : null),
|
|
106
122
|
showLastSeats ? (React.createElement("div", { className: "flex justify-end " }, (serviceItem === null || serviceItem === void 0 ? void 0 : serviceItem.available_seats) < 10 &&
|
|
107
123
|
(serviceItem === null || serviceItem === void 0 ? void 0 : serviceItem.available_seats) > 0 && (React.createElement("div", { className: "text-[10px] text-[#464647] text-center" }, "\u00A1 \u00DAltimos Asientos!")))) : null),
|
|
108
124
|
React.createElement(DateTimeSectionMobile, { onBookButtonPress: onBookButtonPress, isCiva: isCiva, isSoldOut: isSoldOut, isLinatal: isLinatal, isPeru: isPeru, orignLabel: orignLabel, destinationLabel: destinationLabel, originIcon: (_a = serviceItem.icons) === null || _a === void 0 ? void 0 : _a.origin, destinationIcon: (_b = serviceItem.icons) === null || _b === void 0 ? void 0 : _b.destination, travelDate: serviceItem.travel_date, arrivalDate: serviceItem.arrival_date, depTime: serviceItem.dep_time, arrTime: serviceItem.arr_time, seatTypes: serviceItem.seat_types, seatPriceColor: colors.seatPriceColor, currencySign: currencySign, availableSeats: serviceItem.available_seats, removeDuplicateSeats: removeDuplicateSeats }),
|
|
109
125
|
React.createElement("div", { className: "bg-[#E6E6E6] mt-[10px] mb-[10px] h-[1px]" }),
|
|
110
|
-
React.createElement(BottomAmenitiesMobile, { isSoldOut: isSoldOut, amenitiesNodes: amenities(), hoursIcon: renderIcon("hours", "14px"), duration: (_c = serviceItem.duration) === null || _c === void 0 ? void 0 : _c.toString(), isDirectTrip: serviceItem === null || serviceItem === void 0 ? void 0 : serviceItem.is_direct_trip, directoColor: colors.directoColor, directoAnim: serviceItem.icons.directoAnim, isChangeTicket: serviceItem.is_change_ticket, isPetSeat: isPetSeat, petSeatInfo: serviceItem.pet_seat_info, petFriendlyAnim: serviceItem.icons.petFriendlyAnim, flexibleAnim: serviceItem.icons.flexibleAnim, isTrackingEnabled: serviceItem === null || serviceItem === void 0 ? void 0 : serviceItem.is_tracking_enabled, locationAnim: serviceItem.icons.locationAnim, downArrowIcon: serviceItem.icons.downArrow, showDropdown:
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
126
|
+
React.createElement(BottomAmenitiesMobile, { isSoldOut: isSoldOut, amenitiesNodes: amenities(), hoursIcon: renderIcon("hours", "14px"), duration: (_c = serviceItem.duration) === null || _c === void 0 ? void 0 : _c.toString(), isDirectTrip: serviceItem === null || serviceItem === void 0 ? void 0 : serviceItem.is_direct_trip, directoColor: colors.directoColor, directoAnim: serviceItem.icons.directoAnim, isChangeTicket: serviceItem.is_change_ticket, isPetSeat: isPetSeat, petSeatInfo: serviceItem.pet_seat_info, petFriendlyAnim: serviceItem.icons.petFriendlyAnim, flexibleAnim: serviceItem.icons.flexibleAnim, isTrackingEnabled: serviceItem === null || serviceItem === void 0 ? void 0 : serviceItem.is_tracking_enabled, locationAnim: serviceItem.icons.locationAnim, downArrowIcon: serviceItem.icons.downArrow, showDropdown: isItemExpanded, setShowDropdown: () => setIsExpanded(isItemExpanded ? null : serviceItem.id),
|
|
127
|
+
// onDropdownToggle={() => {
|
|
128
|
+
// setShowDropdown(!showDropdown);
|
|
129
|
+
// setAmenetiesAtomValue({
|
|
130
|
+
// service: serviceItem,
|
|
131
|
+
// showTopLabel: showTopLabel,
|
|
132
|
+
// });
|
|
133
|
+
// }}
|
|
134
|
+
onDropdownToggle: () => {
|
|
135
|
+
setIsExpanded(isItemExpanded ? null : serviceItem.id);
|
|
116
136
|
} })),
|
|
117
137
|
(serviceItem === null || serviceItem === void 0 ? void 0 : serviceItem.offer_text) && (React.createElement("div", { className: ` text-white p-[10px_15px] text-left w-full flex items-center absolute -bottom-[35px] pt-[50px] z-10 rounded-b-[14px] min-[420]:text-[14px] text-[12px]`, style: {
|
|
118
138
|
backgroundColor: isSoldOut ? "#ccc" : colors === null || colors === void 0 ? void 0 : colors.bottomStripColor,
|
|
@@ -121,8 +141,45 @@ function ServiceItemMobile({ serviceItem, onBookButtonPress, colors, busStage, o
|
|
|
121
141
|
left: "0px",
|
|
122
142
|
opacity: isSoldOut ? 0.5 : 1,
|
|
123
143
|
} },
|
|
124
|
-
React.createElement(
|
|
125
|
-
|
|
126
|
-
|
|
144
|
+
React.createElement("div", { className: "flex justify-between items-center w-full" },
|
|
145
|
+
React.createElement("div", { className: "flex items-center" },
|
|
146
|
+
React.createElement(LottiePlayer, { animationData: serviceItem.icons.bombAnim, width: "18px", height: "18px" }),
|
|
147
|
+
React.createElement("span", { className: "bold-text ml-[8px]" },
|
|
148
|
+
" ",
|
|
149
|
+
(serviceItem === null || serviceItem === void 0 ? void 0 : serviceItem.offer_text) || "")),
|
|
150
|
+
React.createElement("div", null,
|
|
151
|
+
"Termina en\u00A0",
|
|
152
|
+
React.createElement("span", { className: "bold-text text-end", ref: startCountdown, style: {
|
|
153
|
+
fontVariantNumeric: "tabular-nums",
|
|
154
|
+
display: "inline-block",
|
|
155
|
+
// minWidth: "70px",
|
|
156
|
+
} }))))),
|
|
157
|
+
React.createElement("div", { className: "absolute -top-[14px] left-0 w-full flex items-center justify-end gap-[12px] pr-[13px] z-10 " },
|
|
158
|
+
showTopLabel && (React.createElement("div", { className: `flex items-center gap-[2px] py-[4px] px-[10px] rounded-[38px] min-[420]:text-[12px] text-[10px] z-20 `, style: {
|
|
159
|
+
backgroundColor: isSoldOut ? "#ccc" : colors.ratingBottomColor,
|
|
160
|
+
} },
|
|
161
|
+
React.createElement("div", { className: isSoldOut ? "grayscale" : "" },
|
|
162
|
+
React.createElement(LottiePlayer, { animationData: serviceItem.icons.priorityStageAnim, width: "18px", height: "18px" })),
|
|
163
|
+
React.createElement("div", { className: isSoldOut ? "text-[#bbb]" : `text-[${colors.topLabelColor}]` }, showTopLabel))),
|
|
164
|
+
isConexion && (React.createElement("div", { className: `flex items-center gap-[2px] py-[5px] text-white px-[10px] rounded-[38px] min-[420]:text-[12px] text-[11px] z-20 ${isSoldOut ? "text-white" : `text-[${colors.topLabelColor}]`}`, style: {
|
|
165
|
+
backgroundColor: !isSoldOut && colors.ratingBottomColor,
|
|
166
|
+
} },
|
|
167
|
+
renderIcon("airportIcon", "14px"),
|
|
168
|
+
React.createElement("div", null, "Conexi\u00F3n"))),
|
|
169
|
+
(serviceItem === null || serviceItem === void 0 ? void 0 : serviceItem.train_type_label) === "Tren Express (Nuevo)" && (React.createElement("div", { className: `flex items-center gap-[2px] py-[5px] text-white px-[10px] rounded-[38px] min-[420]:text-[12px] text-[10px] z-20 `, style: {
|
|
170
|
+
backgroundColor: isSoldOut ? "#ddd" : colors.tooltipColor,
|
|
171
|
+
} },
|
|
172
|
+
React.createElement(LottiePlayer, { animationData: serviceItem.icons.directoAnim, width: "20px", height: "20px" }),
|
|
173
|
+
React.createElement("div", null, "Tren Express"))))),
|
|
174
|
+
React.createElement("div", { style: {
|
|
175
|
+
display: "grid",
|
|
176
|
+
gridTemplateRows: isItemExpanded ? "1fr" : "0fr",
|
|
177
|
+
opacity: isItemExpanded ? 1 : 0,
|
|
178
|
+
transition: "grid-template-rows 0.3s ease-in-out, opacity 0.25s ease-in-out",
|
|
179
|
+
position: "relative",
|
|
180
|
+
zIndex: -1,
|
|
181
|
+
} },
|
|
182
|
+
React.createElement("div", { style: { overflow: "hidden", minHeight: 0, marginTop: "-10px" } },
|
|
183
|
+
React.createElement(ExpandedDropdownMobile, { serviceItem: serviceItem })))));
|
|
127
184
|
}
|
|
128
185
|
export default ServiceItemMobile;
|
|
@@ -121,6 +121,8 @@ export interface MobileServiceItemProps {
|
|
|
121
121
|
terminals?: any[];
|
|
122
122
|
showDropdown?: boolean;
|
|
123
123
|
setShowDropdown?: (value: boolean) => void;
|
|
124
|
+
isExpanded?: string | null;
|
|
125
|
+
setIsExpanded?: (value: string | null) => void;
|
|
124
126
|
setAmenetiesAtomValue?: (value: {
|
|
125
127
|
service: MobileServiceItemProps["serviceItem"];
|
|
126
128
|
showTopLabel: string | boolean;
|