related-ui-components 2.7.4 → 2.7.6
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/module/app.js +3 -19
- package/lib/module/app.js.map +1 -1
- package/lib/module/components/Card/templates/SelaDealCard.js +16 -13
- package/lib/module/components/Card/templates/SelaDealCard.js.map +1 -1
- package/lib/module/components/TravelBooking/FlightSummary.js +219 -112
- package/lib/module/components/TravelBooking/FlightSummary.js.map +1 -1
- package/lib/module/components/TravelBooking/SummaryBar.js +239 -172
- package/lib/module/components/TravelBooking/SummaryBar.js.map +1 -1
- package/lib/module/components/TravelBooking/TravelBooking.js +407 -241
- package/lib/module/components/TravelBooking/TravelBooking.js.map +1 -1
- package/lib/module/components/TravelBooking/index.js +5 -4
- package/lib/module/components/TravelBooking/index.js.map +1 -1
- package/lib/module/index.js +2 -2
- package/lib/typescript/src/app.d.ts.map +1 -1
- package/lib/typescript/src/components/Card/templates/SelaDealCard.d.ts.map +1 -1
- package/lib/typescript/src/components/TravelBooking/FlightSummary.d.ts +25 -11
- package/lib/typescript/src/components/TravelBooking/FlightSummary.d.ts.map +1 -1
- package/lib/typescript/src/components/TravelBooking/SummaryBar.d.ts +1 -16
- package/lib/typescript/src/components/TravelBooking/SummaryBar.d.ts.map +1 -1
- package/lib/typescript/src/components/TravelBooking/TravelBooking.d.ts +1 -83
- package/lib/typescript/src/components/TravelBooking/TravelBooking.d.ts.map +1 -1
- package/lib/typescript/src/components/TravelBooking/index.d.ts +0 -4
- package/lib/typescript/src/components/TravelBooking/index.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/app.tsx +14 -3
- package/src/components/Card/templates/SelaDealCard.tsx +12 -9
- package/src/components/TravelBooking/FlightSummary.tsx +264 -164
- package/src/components/TravelBooking/SummaryBar.tsx +239 -239
- package/src/components/TravelBooking/TravelBooking.tsx +407 -407
- package/src/components/TravelBooking/index.ts +4 -4
- package/src/index.ts +3 -3
package/lib/module/app.js
CHANGED
|
@@ -4,14 +4,12 @@ import React, { useState } from "react";
|
|
|
4
4
|
import { SafeAreaView, StyleSheet, StatusBar } from "react-native";
|
|
5
5
|
// Adjust path as needed
|
|
6
6
|
import { GestureHandlerRootView } from "react-native-gesture-handler";
|
|
7
|
-
import {
|
|
7
|
+
import { FlightSummary } from "./components/index.js";
|
|
8
8
|
import { lightTheme, RelatedProvider, useTheme } from "./theme/index.js";
|
|
9
9
|
import { BottomSheetStackProvider } from "./contexts/index.js";
|
|
10
10
|
import { SafeAreaProvider } from "react-native-safe-area-context";
|
|
11
|
-
import { Ionicons } from "@expo/vector-icons";
|
|
12
|
-
|
|
13
|
-
// Sample data - replace with your actual image URLs
|
|
14
11
|
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
12
|
+
// Sample data - replace with your actual image URLs
|
|
15
13
|
const DUMMY_DATA = [{
|
|
16
14
|
id: "1",
|
|
17
15
|
image: "https://images.pexels.com/photos/3354648/pexels-photo-3354648.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=1",
|
|
@@ -64,21 +62,7 @@ const App = () => {
|
|
|
64
62
|
barStyle: "light-content"
|
|
65
63
|
}), /*#__PURE__*/_jsx(SafeAreaView, {
|
|
66
64
|
style: styles.appContainer,
|
|
67
|
-
children: /*#__PURE__*/_jsx(
|
|
68
|
-
textContainerStyle: {
|
|
69
|
-
flex: 1
|
|
70
|
-
}
|
|
71
|
-
// containerStyle={{ flex: 1, alignItems: "center" }}
|
|
72
|
-
,
|
|
73
|
-
text: "hola",
|
|
74
|
-
textStyle: {
|
|
75
|
-
fontSize: 20
|
|
76
|
-
},
|
|
77
|
-
icon: /*#__PURE__*/_jsx(Ionicons, {
|
|
78
|
-
name: "accessibility"
|
|
79
|
-
}),
|
|
80
|
-
orientation: "horizontal"
|
|
81
|
-
})
|
|
65
|
+
children: /*#__PURE__*/_jsx(FlightSummary, {})
|
|
82
66
|
})]
|
|
83
67
|
})
|
|
84
68
|
})
|
package/lib/module/app.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useState","SafeAreaView","StyleSheet","StatusBar","GestureHandlerRootView","
|
|
1
|
+
{"version":3,"names":["React","useState","SafeAreaView","StyleSheet","StatusBar","GestureHandlerRootView","FlightSummary","lightTheme","RelatedProvider","useTheme","BottomSheetStackProvider","SafeAreaProvider","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","DUMMY_DATA","id","image","title","App","theme","departureDate","setDepartureDate","undefined","returnDate","setReturnDate","progress","setProgress","handleAnimate","newProgress","Math","floor","random","children","style","flex","barStyle","styles","appContainer","create","backgroundColor","justifyContent","alignItems"],"sourceRoot":"..\\..\\src","sources":["app.tsx"],"mappings":";;AAAA,OAAOA,KAAK,IAAeC,QAAQ,QAAQ,OAAO;AAClD,SAASC,YAAY,EAAEC,UAAU,EAAEC,SAAS,QAAkC,cAAc;AACV;AAClF,SAASC,sBAAsB,QAAQ,8BAA8B;AACrE,SAIEC,aAAa,QAOR,uBAAc;AACrB,SAASC,UAAU,EAAEC,eAAe,EAAEC,QAAQ,QAAQ,kBAAS;AAG/D,SAASC,wBAAwB,QAAQ,qBAAY;AACrD,SAASC,gBAAgB,QAAQ,gCAAgC;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA,EAAAC,QAAA,IAAAC,SAAA;AAGlE;AACA,MAAMC,UAAU,GAAG,CACjB;EACEC,EAAE,EAAE,GAAG;EACPC,KAAK,EACH,iHAAiH;EACnHC,KAAK,EAAE;AACT,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;EACEF,EAAE,EAAE,GAAG;EACPC,KAAK,EACH,iHAAiH;EACnHC,KAAK,EAAE;AACT,CAAC,EACD;EACEF,EAAE,EAAE,GAAG;EACPC,KAAK,EACH,iHAAiH;EACnHC,KAAK,EAAE;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AAAA,CACD;AAED,MAAMC,GAAG,GAAGA,CAAA,KAAM;EAChB,MAAM;IAAEC;EAAM,CAAC,GAAGd,QAAQ,CAAC,CAAC;EAE5B,MAAM,CAACe,aAAa,EAAEC,gBAAgB,CAAC,GAAGxB,QAAQ,CAChDyB,SACF,CAAC;EACD,MAAM,CAACC,UAAU,EAAEC,aAAa,CAAC,GAAG3B,QAAQ,CAAqByB,SAAS,CAAC;EAE3E,MAAM,CAACG,QAAQ,EAAEC,WAAW,CAAC,GAAG7B,QAAQ,CAAC,EAAE,CAAC;EAC5C,MAAM8B,aAAa,GAAGA,CAAA,KAAM;IAC1B;IACA,MAAMC,WAAW,GAAGC,IAAI,CAACC,KAAK,CAACD,IAAI,CAACE,MAAM,CAAC,CAAC,GAAG,GAAG,CAAC;IACnDL,WAAW,CAACE,WAAW,CAAC;EAC1B,CAAC;EAID,oBACEnB,IAAA,CAAAI,SAAA;IAAAmB,QAAA,eACEvB,IAAA,CAACF,gBAAgB;MAAAyB,QAAA,eACfvB,IAAA,CAACR,sBAAsB;QAACgC,KAAK,EAAE;UAAEC,IAAI,EAAE;QAAE,CAAE;QAAAF,QAAA,eACzCvB,IAAA,CAACL,eAAe;UAACe,KAAK,EAAEhB,UAAW;UAAA6B,QAAA,eACjCrB,KAAA,CAACL,wBAAwB;YAAA0B,QAAA,gBACvBvB,IAAA,CAACT,SAAS;cAACmC,QAAQ,EAAC;YAAe,CAAE,CAAC,eACtC1B,IAAA,CAACX,YAAY;cAACmC,KAAK,EAAEG,MAAM,CAACC,YAAa;cAAAL,QAAA,eAwCvCvB,IAAA,CAACP,aAAa,IAAgB;YAAC,CAiCnB,CAAC;UAAA,CACS;QAAC,CACZ;MAAC,CACI;IAAC,CACT;EAAC,CACnB,CAAC;AAEP,CAAC;AAED,MAAMkC,MAAM,GAAGrC,UAAU,CAACuC,MAAM,CAAC;EAC/BD,YAAY,EAAE;IACZH,IAAI,EAAE,CAAC;IACPK,eAAe,EAAE,MAAM;IACvBC,cAAc,EAAE,QAAQ;IAAE;IAC1BC,UAAU,EAAC;EACb;AACF,CAAC,CAAC;AAEF,eAAevB,GAAG","ignoreList":[]}
|
|
@@ -59,12 +59,10 @@ const SelaDealCard = ({
|
|
|
59
59
|
const finalPriceContainerStyle = [styles.priceContainerBase, variant === "horizontal" ? styles.priceContainerHorizontal : styles.priceContainerVertical, priceContainerStyle];
|
|
60
60
|
const finalPriceStyle = [styles.priceTextBase, priceStyle];
|
|
61
61
|
const providerTextStyle = [styles.providerNameBase, {
|
|
62
|
-
color: theme.onSurface
|
|
63
|
-
textAlign: isRTL ? "right" : "left"
|
|
62
|
+
color: theme.onSurface
|
|
64
63
|
}, providerNameStyle];
|
|
65
64
|
const descriptionTextStyle = [styles.descriptionBase, {
|
|
66
|
-
color: theme.onSurface
|
|
67
|
-
textAlign: isRTL ? "right" : "left"
|
|
65
|
+
color: theme.onSurface
|
|
68
66
|
}, descriptionStyle];
|
|
69
67
|
return /*#__PURE__*/_jsxs(Card, {
|
|
70
68
|
onPress: onPress,
|
|
@@ -92,9 +90,11 @@ const SelaDealCard = ({
|
|
|
92
90
|
}), /*#__PURE__*/_jsxs(View, {
|
|
93
91
|
style: styles.overlayContainer,
|
|
94
92
|
children: [/*#__PURE__*/_jsx(View, {
|
|
95
|
-
style: [styles.topSection
|
|
96
|
-
|
|
97
|
-
|
|
93
|
+
style: [styles.topSection
|
|
94
|
+
// {
|
|
95
|
+
// alignItems: "flex-start",
|
|
96
|
+
// },
|
|
97
|
+
],
|
|
98
98
|
children: label && /*#__PURE__*/_jsx(View, {
|
|
99
99
|
style: finalLabelContainerStyle,
|
|
100
100
|
children: /*#__PURE__*/_jsx(Text, {
|
|
@@ -163,7 +163,9 @@ const getStyles = (theme, isRTL) => StyleSheet.create({
|
|
|
163
163
|
padding: 16,
|
|
164
164
|
justifyContent: "space-between"
|
|
165
165
|
},
|
|
166
|
-
topSection: {
|
|
166
|
+
topSection: {
|
|
167
|
+
flexDirection: "row"
|
|
168
|
+
},
|
|
167
169
|
labelContainerBase: {
|
|
168
170
|
paddingVertical: 6,
|
|
169
171
|
paddingHorizontal: 12,
|
|
@@ -188,20 +190,20 @@ const getStyles = (theme, isRTL) => StyleSheet.create({
|
|
|
188
190
|
paddingVertical: 8,
|
|
189
191
|
paddingHorizontal: 16,
|
|
190
192
|
borderRadius: 10,
|
|
191
|
-
overflow: "hidden"
|
|
192
|
-
|
|
193
|
+
overflow: "hidden",
|
|
194
|
+
backgroundColor: theme.primary
|
|
193
195
|
},
|
|
194
196
|
priceTextBase: {
|
|
195
197
|
fontSize: 16,
|
|
196
198
|
color: theme.onPrimary
|
|
197
199
|
},
|
|
198
200
|
bottomContentHorizontal: {
|
|
199
|
-
flexDirection:
|
|
200
|
-
justifyContent: "space-between",
|
|
201
|
+
flexDirection: "row",
|
|
201
202
|
alignItems: "flex-end"
|
|
202
203
|
},
|
|
203
204
|
textBlockHorizontal: {
|
|
204
205
|
flex: 1,
|
|
206
|
+
alignItems: "flex-start",
|
|
205
207
|
marginRight: 10
|
|
206
208
|
},
|
|
207
209
|
priceContainerHorizontal: {},
|
|
@@ -209,7 +211,8 @@ const getStyles = (theme, isRTL) => StyleSheet.create({
|
|
|
209
211
|
flexDirection: "column"
|
|
210
212
|
},
|
|
211
213
|
textBlockVertical: {
|
|
212
|
-
marginBottom: 12
|
|
214
|
+
marginBottom: 12,
|
|
215
|
+
alignItems: "flex-start"
|
|
213
216
|
},
|
|
214
217
|
priceContainerVertical: {
|
|
215
218
|
alignSelf: "stretch",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useEffect","useState","View","StyleSheet","Image","Card","useTheme","LockOverlay","BlurView","ThemedText","Text","jsx","_jsx","jsxs","_jsxs","SelaDealCard","variant","backgroundImage","label","labelStyle","labelContainerStyle","providerName","providerNameStyle","description","descriptionStyle","price","priceStyle","priceContainerStyle","onPress","style","width","height","isRTL","propIsRTL","borderRadius","darkOverlayEnabled","darkOverlayColor","lockOverlay","priceContainerBlur","theme","themeIsRTL","undefined","styles","getStyles","dynamicHeight","setDynamicHeight","uri","getSize","imgWidth","imgHeight","aspectRatio","finalLabelContainerStyle","labelContainerBase","finalLabelStyle","labelTextBase","finalPriceContainerStyle","priceContainerBase","priceContainerHorizontal","priceContainerVertical","finalPriceStyle","priceTextBase","providerTextStyle","providerNameBase","color","onSurface","
|
|
1
|
+
{"version":3,"names":["React","useEffect","useState","View","StyleSheet","Image","Card","useTheme","LockOverlay","BlurView","ThemedText","Text","jsx","_jsx","jsxs","_jsxs","SelaDealCard","variant","backgroundImage","label","labelStyle","labelContainerStyle","providerName","providerNameStyle","description","descriptionStyle","price","priceStyle","priceContainerStyle","onPress","style","width","height","isRTL","propIsRTL","borderRadius","darkOverlayEnabled","darkOverlayColor","lockOverlay","priceContainerBlur","theme","themeIsRTL","undefined","styles","getStyles","dynamicHeight","setDynamicHeight","uri","getSize","imgWidth","imgHeight","aspectRatio","finalLabelContainerStyle","labelContainerBase","finalLabelStyle","labelTextBase","finalPriceContainerStyle","priceContainerBase","priceContainerHorizontal","priceContainerVertical","finalPriceStyle","priceTextBase","providerTextStyle","providerNameBase","color","onSurface","descriptionTextStyle","descriptionBase","cardBase","source","resizeMode","children","absoluteFill","backgroundColor","visible","contentPosition","iconSize","text","overlayOpacity","overlayContainer","topSection","bottomContentHorizontal","textBlockHorizontal","bottomContentVertical","textBlockVertical","experimentalBlurMethod","intensity","tint","primary","create","overflow","position","flex","padding","justifyContent","flexDirection","paddingVertical","paddingHorizontal","background","fontWeight","fontSize","onBackground","marginBottom","secondary","helper","onPrimary","alignItems","marginRight","alignSelf"],"sourceRoot":"..\\..\\..\\..\\..\\src","sources":["components/Card/templates/SelaDealCard.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -2,10 +2,19 @@
|
|
|
2
2
|
|
|
3
3
|
import { useTheme } from "../../theme/index.js";
|
|
4
4
|
import React, { useCallback, useEffect, useMemo, useState } from "react";
|
|
5
|
-
import { StyleSheet, TouchableOpacity, View } from "react-native";
|
|
5
|
+
import { StyleSheet, Text, TouchableOpacity, View } from "react-native";
|
|
6
6
|
import { NumericStepper } from "../NumericStepper/index.js";
|
|
7
|
-
import
|
|
7
|
+
import RNPickerSelect from "react-native-picker-select";
|
|
8
|
+
import { Ionicons } from "@expo/vector-icons";
|
|
9
|
+
|
|
10
|
+
// --- TYPE DEFINITIONS (Updated) ---
|
|
11
|
+
|
|
12
|
+
// Represents an individual child or infant with a selectable age
|
|
13
|
+
|
|
14
|
+
// Updated FlightSelection to handle individual passengers
|
|
8
15
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
16
|
+
// --- CONFIGURATION ---
|
|
17
|
+
|
|
9
18
|
const DEFAULT_PASSENGERS = [{
|
|
10
19
|
key: "adults",
|
|
11
20
|
name: "Adults",
|
|
@@ -19,14 +28,24 @@ const DEFAULT_PASSENGERS = [{
|
|
|
19
28
|
description: "2 - 11 years old",
|
|
20
29
|
defaultValue: 0,
|
|
21
30
|
minValue: 0,
|
|
22
|
-
maxValue:
|
|
31
|
+
maxValue: 6,
|
|
32
|
+
ageRange: {
|
|
33
|
+
min: 2,
|
|
34
|
+
max: 11
|
|
35
|
+
},
|
|
36
|
+
defaultAge: 5
|
|
23
37
|
}, {
|
|
24
38
|
key: "infants",
|
|
25
39
|
name: "Infants",
|
|
26
40
|
description: "0 - 1 years old",
|
|
27
41
|
defaultValue: 0,
|
|
28
42
|
minValue: 0,
|
|
29
|
-
maxValue:
|
|
43
|
+
maxValue: 4,
|
|
44
|
+
ageRange: {
|
|
45
|
+
min: 0,
|
|
46
|
+
max: 1
|
|
47
|
+
},
|
|
48
|
+
defaultAge: 0
|
|
30
49
|
}];
|
|
31
50
|
const DEFAULT_FLIGHT_TYPES = [{
|
|
32
51
|
value: "ROUND_TRIP",
|
|
@@ -45,27 +64,38 @@ const DEFAULT_FLIGHT_CLASSES = [{
|
|
|
45
64
|
value: "FIRST",
|
|
46
65
|
name: "First"
|
|
47
66
|
}];
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
67
|
+
|
|
68
|
+
// --- HELPER FUNCTION ---
|
|
69
|
+
const getInitialPassengerState = config => {
|
|
70
|
+
return {
|
|
71
|
+
adults: config.find(p => p.key === "adults")?.defaultValue ?? 1,
|
|
72
|
+
children: Array.from({
|
|
73
|
+
length: config.find(p => p.key === "children")?.defaultValue ?? 0
|
|
74
|
+
}, (_, i) => ({
|
|
75
|
+
id: `child_${i}_${Date.now()}`,
|
|
76
|
+
age: config.find(p => p.key === "children")?.defaultAge ?? 2
|
|
77
|
+
})),
|
|
78
|
+
infants: Array.from({
|
|
79
|
+
length: config.find(p => p.key === "infants")?.defaultValue ?? 0
|
|
80
|
+
}, (_, i) => ({
|
|
81
|
+
id: `infant_${i}_${Date.now()}`,
|
|
82
|
+
age: config.find(p => p.key === "infants")?.defaultAge ?? 0
|
|
83
|
+
}))
|
|
84
|
+
};
|
|
53
85
|
};
|
|
54
86
|
|
|
55
|
-
// ---
|
|
87
|
+
// --- PROPS INTERFACE ---
|
|
56
88
|
|
|
57
|
-
// ---
|
|
89
|
+
// --- COMPONENT IMPLEMENTATION ---
|
|
58
90
|
const FlightSummary = ({
|
|
59
|
-
// Data
|
|
60
91
|
passengersData: passengersProp = DEFAULT_PASSENGERS,
|
|
61
92
|
flightTypesData: flightTypesProp = DEFAULT_FLIGHT_TYPES,
|
|
62
93
|
flightClassesData: flightClassesProp = DEFAULT_FLIGHT_CLASSES,
|
|
63
94
|
flightClassLabel = "Class",
|
|
64
95
|
flightTypeLabel = "Type",
|
|
65
|
-
// State & Callbacks
|
|
66
96
|
selection,
|
|
67
97
|
onSelectionChange,
|
|
68
|
-
|
|
98
|
+
formatPassengerAgeLabel = (passengerType, index) => `${passengerType} ${index} Age`,
|
|
69
99
|
containerStyle,
|
|
70
100
|
buttonGroupContainerStyle,
|
|
71
101
|
buttonStyle,
|
|
@@ -77,11 +107,13 @@ const FlightSummary = ({
|
|
|
77
107
|
passengerLabelContainerStyle,
|
|
78
108
|
passengerNameStyle,
|
|
79
109
|
passengerDescriptionStyle,
|
|
110
|
+
labelStyle,
|
|
111
|
+
agePickerRowStyle,
|
|
112
|
+
agePickerLabelStyle,
|
|
80
113
|
stepperContainerStyle,
|
|
81
114
|
stepperButtonStyle,
|
|
82
115
|
stepperButtonTextStyle,
|
|
83
|
-
stepperValueTextStyle
|
|
84
|
-
labelStyle
|
|
116
|
+
stepperValueTextStyle
|
|
85
117
|
}) => {
|
|
86
118
|
const {
|
|
87
119
|
theme,
|
|
@@ -93,67 +125,71 @@ const FlightSummary = ({
|
|
|
93
125
|
const flightClasses = useMemo(() => flightClassesProp, [flightClassesProp]);
|
|
94
126
|
const [selectedFlightType, setSelectedFlightType] = useState(selection?.flightType ?? flightTypes[0].value);
|
|
95
127
|
const [selectedFlightClass, setSelectedFlightClass] = useState(selection?.flightClass ?? flightClasses[0].value);
|
|
96
|
-
const [
|
|
97
|
-
const handleFlightTypeSelect = useCallback(type => {
|
|
98
|
-
setSelectedFlightType(type.value);
|
|
99
|
-
const newState = {
|
|
100
|
-
flightType: type.value,
|
|
101
|
-
flightClass: selectedFlightClass,
|
|
102
|
-
passengers: passengerCounts
|
|
103
|
-
};
|
|
104
|
-
onSelectionChange?.(newState);
|
|
105
|
-
}, [selectedFlightClass, passengerCounts, onSelectionChange]);
|
|
106
|
-
const handlePassengerChange = useCallback((passengerKey, action) => {
|
|
107
|
-
setPassengerCounts(prevCounts => {
|
|
108
|
-
const passengerInfo = passengersConfig.find(p => p.key === passengerKey);
|
|
109
|
-
if (!passengerInfo) return prevCounts;
|
|
110
|
-
const currentVal = prevCounts[passengerKey];
|
|
111
|
-
const minValue = passengerInfo.minValue;
|
|
112
|
-
const maxValue = passengerInfo.maxValue ?? 99;
|
|
113
|
-
let newValue = currentVal;
|
|
114
|
-
if (action === "increment") {
|
|
115
|
-
newValue = Math.min(maxValue, currentVal + 1);
|
|
116
|
-
} else if (action === "decrement") {
|
|
117
|
-
newValue = Math.max(minValue, currentVal - 1);
|
|
118
|
-
}
|
|
128
|
+
const [passengers, setPassengers] = useState(selection?.passengers ?? getInitialPassengerState(passengersConfig));
|
|
119
129
|
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
130
|
+
// Memoize the state to be sent upwards
|
|
131
|
+
const currentSelection = useMemo(() => ({
|
|
132
|
+
flightType: selectedFlightType,
|
|
133
|
+
flightClass: selectedFlightClass,
|
|
134
|
+
passengers
|
|
135
|
+
}), [selectedFlightType, selectedFlightClass, passengers]);
|
|
136
|
+
|
|
137
|
+
// Effect to call onSelectionChange when the memoized state changes
|
|
138
|
+
useEffect(() => {
|
|
139
|
+
onSelectionChange?.(currentSelection);
|
|
140
|
+
}, [currentSelection, onSelectionChange]);
|
|
141
|
+
const handlePassengerCountChange = useCallback((key, action) => {
|
|
142
|
+
setPassengers(prev => {
|
|
143
|
+
const config = passengersConfig.find(p => p.key === key);
|
|
144
|
+
if (!config) return prev;
|
|
145
|
+
let newPassengersState = {
|
|
146
|
+
...prev
|
|
127
147
|
};
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
148
|
+
if (key === "adults") {
|
|
149
|
+
const currentVal = prev.adults;
|
|
150
|
+
const min = config.minValue;
|
|
151
|
+
const max = config.maxValue ?? 99;
|
|
152
|
+
let newValue = currentVal;
|
|
153
|
+
if (action === "increment") newValue = Math.min(max, currentVal + 1);else newValue = Math.max(min, currentVal - 1);
|
|
154
|
+
newPassengersState.adults = newValue;
|
|
155
|
+
} else {
|
|
156
|
+
// Handle children and infants (arrays)
|
|
157
|
+
const currentArray = prev[key];
|
|
158
|
+
if (action === "increment") {
|
|
159
|
+
if (currentArray.length < (config.maxValue ?? 99)) {
|
|
160
|
+
const newPassenger = {
|
|
161
|
+
id: `${key}_${Date.now()}`,
|
|
162
|
+
age: config.defaultAge ?? 0
|
|
163
|
+
};
|
|
164
|
+
newPassengersState[key] = [...currentArray, newPassenger];
|
|
165
|
+
}
|
|
166
|
+
} else {
|
|
167
|
+
if (currentArray.length > config.minValue) {
|
|
168
|
+
newPassengersState[key] = currentArray.slice(0, -1);
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
return newPassengersState;
|
|
173
|
+
});
|
|
174
|
+
}, [passengersConfig]);
|
|
175
|
+
const handleIndividualAgeChange = useCallback((key, id, newAge) => {
|
|
176
|
+
// Prevent update if newAge is null/undefined (from picker placeholder)
|
|
177
|
+
if (newAge === null || newAge === undefined) return;
|
|
178
|
+
setPassengers(prev => {
|
|
179
|
+
const newArray = prev[key].map(p => p.id === id ? {
|
|
180
|
+
...p,
|
|
181
|
+
age: newAge
|
|
182
|
+
} : p);
|
|
183
|
+
return {
|
|
184
|
+
...prev,
|
|
185
|
+
[key]: newArray
|
|
132
186
|
};
|
|
133
|
-
onSelectionChange?.(newState);
|
|
134
|
-
return newCounts;
|
|
135
187
|
});
|
|
136
|
-
}, [
|
|
137
|
-
// No dependency on passengerCounts due to updater function usage
|
|
138
|
-
]);
|
|
139
|
-
const handleFlightClassSelect = useCallback(fClass => {
|
|
140
|
-
setSelectedFlightClass(fClass.value);
|
|
141
|
-
const newState = {
|
|
142
|
-
flightType: selectedFlightType,
|
|
143
|
-
flightClass: fClass.value,
|
|
144
|
-
passengers: passengerCounts
|
|
145
|
-
};
|
|
146
|
-
onSelectionChange?.(newState);
|
|
147
|
-
}, [selectedFlightType, passengerCounts, onSelectionChange]);
|
|
148
|
-
|
|
149
|
-
// --- Render Helpers ---
|
|
188
|
+
}, []);
|
|
150
189
|
const renderButtonGroup = (items, selectedValue, onSelect, label) => /*#__PURE__*/_jsxs(View, {
|
|
190
|
+
style: styles.sectionContainer,
|
|
151
191
|
children: [/*#__PURE__*/_jsx(Text, {
|
|
152
|
-
style: [
|
|
153
|
-
color: theme.labelText,
|
|
154
|
-
fontSize: 12,
|
|
155
|
-
marginBottom: 6
|
|
156
|
-
}, labelStyle],
|
|
192
|
+
style: [styles.sectionLabel, labelStyle],
|
|
157
193
|
children: label
|
|
158
194
|
}), /*#__PURE__*/_jsx(View, {
|
|
159
195
|
style: [styles.buttonGroupContainer, buttonGroupContainerStyle],
|
|
@@ -171,43 +207,79 @@ const FlightSummary = ({
|
|
|
171
207
|
})
|
|
172
208
|
})]
|
|
173
209
|
});
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
210
|
+
|
|
211
|
+
// Helper to generate age items for the picker
|
|
212
|
+
const getAgePickerItems = config => {
|
|
213
|
+
if (!config?.ageRange) return [];
|
|
214
|
+
const {
|
|
215
|
+
min,
|
|
216
|
+
max
|
|
217
|
+
} = config.ageRange;
|
|
218
|
+
return Array.from({
|
|
219
|
+
length: max - min + 1
|
|
220
|
+
}, (_, i) => ({
|
|
221
|
+
label: `${min + i}`,
|
|
222
|
+
value: min + i
|
|
223
|
+
}));
|
|
224
|
+
};
|
|
181
225
|
return /*#__PURE__*/_jsxs(View, {
|
|
182
226
|
style: [styles.container, containerStyle],
|
|
183
|
-
children: [renderButtonGroup(flightTypes, selectedFlightType,
|
|
227
|
+
children: [renderButtonGroup(flightTypes, selectedFlightType, item => setSelectedFlightType(item.value), flightTypeLabel), /*#__PURE__*/_jsx(View, {
|
|
184
228
|
style: [styles.passengerSection, passengerSectionStyle],
|
|
185
|
-
children: passengersConfig.map(
|
|
186
|
-
style: [styles.passengerRow, passengerRowStyle],
|
|
229
|
+
children: passengersConfig.map(config => /*#__PURE__*/_jsxs(View, {
|
|
187
230
|
children: [/*#__PURE__*/_jsxs(View, {
|
|
188
|
-
style: [styles.
|
|
189
|
-
children: [/*#__PURE__*/
|
|
190
|
-
style: [styles.
|
|
191
|
-
children:
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
231
|
+
style: [styles.passengerRow, passengerRowStyle],
|
|
232
|
+
children: [/*#__PURE__*/_jsxs(View, {
|
|
233
|
+
style: [styles.passengerLabelContainer, passengerLabelContainerStyle],
|
|
234
|
+
children: [/*#__PURE__*/_jsx(Text, {
|
|
235
|
+
style: [styles.passengerName, passengerNameStyle],
|
|
236
|
+
children: config.name
|
|
237
|
+
}), /*#__PURE__*/_jsx(Text, {
|
|
238
|
+
style: [styles.passengerDescription, passengerDescriptionStyle],
|
|
239
|
+
children: config.description
|
|
240
|
+
})]
|
|
241
|
+
}), /*#__PURE__*/_jsx(NumericStepper, {
|
|
242
|
+
value: config.key === "adults" ? passengers.adults : passengers[config.key].length,
|
|
243
|
+
minValue: config.minValue,
|
|
244
|
+
maxValue: config.maxValue,
|
|
245
|
+
onIncrement: () => handlePassengerCountChange(config.key, "increment"),
|
|
246
|
+
onDecrement: () => handlePassengerCountChange(config.key, "decrement"),
|
|
247
|
+
style: stepperContainerStyle,
|
|
248
|
+
buttonStyle: stepperButtonStyle,
|
|
249
|
+
buttonTextStyle: stepperButtonTextStyle,
|
|
250
|
+
valueTextStyle: stepperValueTextStyle
|
|
195
251
|
})]
|
|
196
|
-
}), /*#__PURE__*/
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
252
|
+
}), (config.key === "children" || config.key === "infants") && passengers[config.key].map((passenger, index) => /*#__PURE__*/_jsxs(View, {
|
|
253
|
+
style: [styles.agePickerRow, agePickerRowStyle],
|
|
254
|
+
children: [/*#__PURE__*/_jsxs(Text, {
|
|
255
|
+
style: [styles.agePickerLabel, agePickerLabelStyle],
|
|
256
|
+
children: [" ", formatPassengerAgeLabel(config.name, index + 1)]
|
|
257
|
+
}), /*#__PURE__*/_jsx(View, {
|
|
258
|
+
style: styles.pickerContainer,
|
|
259
|
+
children: /*#__PURE__*/_jsx(RNPickerSelect, {
|
|
260
|
+
value: passenger.age,
|
|
261
|
+
onValueChange: value => handleIndividualAgeChange(config.key, passenger.id, value),
|
|
262
|
+
items: getAgePickerItems(config),
|
|
263
|
+
placeholder: {},
|
|
264
|
+
style: {
|
|
265
|
+
inputIOS: styles.pickerInput,
|
|
266
|
+
inputAndroid: styles.pickerInput,
|
|
267
|
+
iconContainer: styles.pickerIconContainer
|
|
268
|
+
},
|
|
269
|
+
textInputProps: {
|
|
270
|
+
pointerEvents: "none"
|
|
271
|
+
},
|
|
272
|
+
useNativeAndroidPickerStyle: false,
|
|
273
|
+
Icon: () => /*#__PURE__*/_jsx(Ionicons, {
|
|
274
|
+
name: "chevron-down",
|
|
275
|
+
size: 20,
|
|
276
|
+
color: theme.helper
|
|
277
|
+
})
|
|
278
|
+
})
|
|
279
|
+
})]
|
|
280
|
+
}, passenger.id))]
|
|
281
|
+
}, config.key))
|
|
282
|
+
}), renderButtonGroup(flightClasses, selectedFlightClass, item => setSelectedFlightClass(item.value), flightClassLabel)]
|
|
211
283
|
});
|
|
212
284
|
};
|
|
213
285
|
const themedStyles = (theme, isRTL) => StyleSheet.create({
|
|
@@ -215,11 +287,18 @@ const themedStyles = (theme, isRTL) => StyleSheet.create({
|
|
|
215
287
|
backgroundColor: theme.surface,
|
|
216
288
|
padding: 16
|
|
217
289
|
},
|
|
290
|
+
sectionContainer: {
|
|
291
|
+
marginBottom: 20
|
|
292
|
+
},
|
|
293
|
+
sectionLabel: {
|
|
294
|
+
color: theme.labelText,
|
|
295
|
+
fontSize: 12,
|
|
296
|
+
fontWeight: "600",
|
|
297
|
+
textTransform: "uppercase",
|
|
298
|
+
marginBottom: 8
|
|
299
|
+
},
|
|
218
300
|
buttonGroupContainer: {
|
|
219
301
|
flexDirection: "row",
|
|
220
|
-
// marginBottom: 10,
|
|
221
|
-
marginTop: 5,
|
|
222
|
-
justifyContent: "flex-start",
|
|
223
302
|
flexWrap: "wrap",
|
|
224
303
|
gap: 8
|
|
225
304
|
},
|
|
@@ -242,8 +321,7 @@ const themedStyles = (theme, isRTL) => StyleSheet.create({
|
|
|
242
321
|
},
|
|
243
322
|
selectedButtonText: {
|
|
244
323
|
color: theme.onPrimary,
|
|
245
|
-
fontWeight: "bold"
|
|
246
|
-
fontSize: 14
|
|
324
|
+
fontWeight: "bold"
|
|
247
325
|
},
|
|
248
326
|
passengerSection: {
|
|
249
327
|
marginVertical: 15
|
|
@@ -255,14 +333,11 @@ const themedStyles = (theme, isRTL) => StyleSheet.create({
|
|
|
255
333
|
paddingVertical: 10,
|
|
256
334
|
borderBottomWidth: StyleSheet.hairlineWidth,
|
|
257
335
|
borderBottomColor: theme.divider
|
|
258
|
-
// Remove width: '100%' unless absolutely necessary
|
|
259
336
|
},
|
|
260
337
|
passengerLabelContainer: {
|
|
261
338
|
flexDirection: "column",
|
|
262
339
|
alignItems: "flex-start",
|
|
263
340
|
flexShrink: 1
|
|
264
|
-
// marginRight: isRTL ? 0 : 8,
|
|
265
|
-
// marginLeft: isRTL ? 8 : 0,
|
|
266
341
|
},
|
|
267
342
|
passengerName: {
|
|
268
343
|
fontSize: 16,
|
|
@@ -271,8 +346,40 @@ const themedStyles = (theme, isRTL) => StyleSheet.create({
|
|
|
271
346
|
},
|
|
272
347
|
passengerDescription: {
|
|
273
348
|
fontSize: 12,
|
|
274
|
-
color: theme.
|
|
349
|
+
color: theme.helper,
|
|
275
350
|
opacity: 0.8
|
|
351
|
+
},
|
|
352
|
+
agePickerRow: {
|
|
353
|
+
flexDirection: "row",
|
|
354
|
+
alignItems: "center",
|
|
355
|
+
justifyContent: "space-between",
|
|
356
|
+
paddingVertical: 8,
|
|
357
|
+
paddingHorizontal: 16,
|
|
358
|
+
backgroundColor: theme.background,
|
|
359
|
+
borderBottomWidth: StyleSheet.hairlineWidth,
|
|
360
|
+
borderColor: theme.divider
|
|
361
|
+
},
|
|
362
|
+
agePickerLabel: {
|
|
363
|
+
fontSize: 14,
|
|
364
|
+
color: theme.onBackground
|
|
365
|
+
},
|
|
366
|
+
pickerContainer: {
|
|
367
|
+
width: 120,
|
|
368
|
+
height: 40,
|
|
369
|
+
borderWidth: 1,
|
|
370
|
+
borderColor: theme.border,
|
|
371
|
+
borderRadius: 8,
|
|
372
|
+
justifyContent: "center"
|
|
373
|
+
},
|
|
374
|
+
pickerInput: {
|
|
375
|
+
fontSize: 14,
|
|
376
|
+
paddingHorizontal: 10,
|
|
377
|
+
paddingVertical: 8,
|
|
378
|
+
color: theme.onSurface
|
|
379
|
+
},
|
|
380
|
+
pickerIconContainer: {
|
|
381
|
+
top: 10,
|
|
382
|
+
right: 10
|
|
276
383
|
}
|
|
277
384
|
});
|
|
278
385
|
export default FlightSummary;
|