@voyantjs/bookings-ui 0.80.17 → 0.80.18
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"travelers-section.d.ts","sourceRoot":"","sources":["../../src/components/travelers-section.tsx"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"travelers-section.d.ts","sourceRoot":"","sources":["../../src/components/travelers-section.tsx"],"names":[],"mappings":"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"}
|
|
@@ -194,15 +194,24 @@ export function TravelersSection({ value, onChange, roomUnits, roomGroups, billi
|
|
|
194
194
|
// end up with `roomUnitId: null`. Once units arrive, back-fill any
|
|
195
195
|
// missing assignments so the static fallback's role hint (Child /
|
|
196
196
|
// Infant) is honored and `redistributeByAge` doesn't silently price
|
|
197
|
-
// them as adults.
|
|
197
|
+
// them as adults. Runs exactly once per units-load transition — after
|
|
198
|
+
// that, `roomUnitId: null` is treated as the operator's explicit
|
|
199
|
+
// "No room" choice from the Room select and left alone. Reset on
|
|
200
|
+
// empty `roomUnits` so the next load (e.g. product change) rehydrates.
|
|
201
|
+
const hasHydratedNullsRef = React.useRef(false);
|
|
198
202
|
React.useEffect(() => {
|
|
199
|
-
if (!roomUnits || roomUnits.length === 0)
|
|
203
|
+
if (!roomUnits || roomUnits.length === 0) {
|
|
204
|
+
hasHydratedNullsRef.current = false;
|
|
205
|
+
return;
|
|
206
|
+
}
|
|
207
|
+
if (hasHydratedNullsRef.current)
|
|
200
208
|
return;
|
|
209
|
+
hasHydratedNullsRef.current = true;
|
|
201
210
|
if (!value.travelers.some((t) => !t.roomUnitId))
|
|
202
211
|
return;
|
|
203
212
|
const next = value.travelers.map((t) => t.roomUnitId ? t : { ...t, roomUnitId: pickRoomUnitIdForNewTraveler(t.dateOfBirth, t.role) });
|
|
204
|
-
// Guard against
|
|
205
|
-
// (e.g. empty roomGroups): no point dispatching an
|
|
213
|
+
// Guard against a stray onChange if hydration can't find a unit
|
|
214
|
+
// (e.g. empty roomGroups): no point dispatching an update that
|
|
206
215
|
// doesn't actually change anything.
|
|
207
216
|
const changed = next.some((t, i) => t.roomUnitId !== value.travelers[i]?.roomUnitId);
|
|
208
217
|
if (!changed)
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@voyantjs/bookings-ui",
|
|
3
|
-
"version": "0.80.
|
|
3
|
+
"version": "0.80.18",
|
|
4
4
|
"license": "Apache-2.0",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -51,24 +51,24 @@
|
|
|
51
51
|
"react-dom": "^19.0.0",
|
|
52
52
|
"react-hook-form": "^7.60.0",
|
|
53
53
|
"zod": "^4.3.6",
|
|
54
|
-
"@voyantjs/availability-react": "0.80.
|
|
55
|
-
"@voyantjs/bookings-react": "0.80.
|
|
56
|
-
"@voyantjs/catalog": "0.80.
|
|
57
|
-
"@voyantjs/catalog-react": "0.80.
|
|
58
|
-
"@voyantjs/crm-react": "0.80.
|
|
59
|
-
"@voyantjs/crm-ui": "0.80.
|
|
60
|
-
"@voyantjs/extras-react": "0.80.
|
|
61
|
-
"@voyantjs/finance-react": "0.80.
|
|
62
|
-
"@voyantjs/identity-react": "0.80.
|
|
63
|
-
"@voyantjs/legal-react": "0.80.
|
|
64
|
-
"@voyantjs/pricing-react": "0.80.
|
|
65
|
-
"@voyantjs/products-react": "0.80.
|
|
66
|
-
"@voyantjs/suppliers-react": "0.80.
|
|
67
|
-
"@voyantjs/ui": "0.80.
|
|
54
|
+
"@voyantjs/availability-react": "0.80.18",
|
|
55
|
+
"@voyantjs/bookings-react": "0.80.18",
|
|
56
|
+
"@voyantjs/catalog": "0.80.18",
|
|
57
|
+
"@voyantjs/catalog-react": "0.80.18",
|
|
58
|
+
"@voyantjs/crm-react": "0.80.18",
|
|
59
|
+
"@voyantjs/crm-ui": "0.80.18",
|
|
60
|
+
"@voyantjs/extras-react": "0.80.18",
|
|
61
|
+
"@voyantjs/finance-react": "0.80.18",
|
|
62
|
+
"@voyantjs/identity-react": "0.80.18",
|
|
63
|
+
"@voyantjs/legal-react": "0.80.18",
|
|
64
|
+
"@voyantjs/pricing-react": "0.80.18",
|
|
65
|
+
"@voyantjs/products-react": "0.80.18",
|
|
66
|
+
"@voyantjs/suppliers-react": "0.80.18",
|
|
67
|
+
"@voyantjs/ui": "0.80.18"
|
|
68
68
|
},
|
|
69
69
|
"dependencies": {
|
|
70
70
|
"sonner": "^2.0.7",
|
|
71
|
-
"@voyantjs/i18n": "0.80.
|
|
71
|
+
"@voyantjs/i18n": "0.80.18"
|
|
72
72
|
},
|
|
73
73
|
"devDependencies": {
|
|
74
74
|
"@tanstack/react-query": "^5.100.11",
|
|
@@ -82,20 +82,20 @@
|
|
|
82
82
|
"typescript": "^6.0.2",
|
|
83
83
|
"vitest": "^4.1.2",
|
|
84
84
|
"zod": "^4.3.6",
|
|
85
|
-
"@voyantjs/availability-react": "0.80.
|
|
86
|
-
"@voyantjs/bookings-react": "0.80.
|
|
87
|
-
"@voyantjs/catalog": "0.80.
|
|
88
|
-
"@voyantjs/catalog-react": "0.80.
|
|
89
|
-
"@voyantjs/crm-react": "0.80.
|
|
90
|
-
"@voyantjs/crm-ui": "0.80.
|
|
91
|
-
"@voyantjs/extras-react": "0.80.
|
|
92
|
-
"@voyantjs/finance-react": "0.80.
|
|
93
|
-
"@voyantjs/identity-react": "0.80.
|
|
94
|
-
"@voyantjs/legal-react": "0.80.
|
|
95
|
-
"@voyantjs/pricing-react": "0.80.
|
|
96
|
-
"@voyantjs/products-react": "0.80.
|
|
97
|
-
"@voyantjs/suppliers-react": "0.80.
|
|
98
|
-
"@voyantjs/ui": "0.80.
|
|
85
|
+
"@voyantjs/availability-react": "0.80.18",
|
|
86
|
+
"@voyantjs/bookings-react": "0.80.18",
|
|
87
|
+
"@voyantjs/catalog": "0.80.18",
|
|
88
|
+
"@voyantjs/catalog-react": "0.80.18",
|
|
89
|
+
"@voyantjs/crm-react": "0.80.18",
|
|
90
|
+
"@voyantjs/crm-ui": "0.80.18",
|
|
91
|
+
"@voyantjs/extras-react": "0.80.18",
|
|
92
|
+
"@voyantjs/finance-react": "0.80.18",
|
|
93
|
+
"@voyantjs/identity-react": "0.80.18",
|
|
94
|
+
"@voyantjs/legal-react": "0.80.18",
|
|
95
|
+
"@voyantjs/pricing-react": "0.80.18",
|
|
96
|
+
"@voyantjs/products-react": "0.80.18",
|
|
97
|
+
"@voyantjs/suppliers-react": "0.80.18",
|
|
98
|
+
"@voyantjs/ui": "0.80.18",
|
|
99
99
|
"@voyantjs/voyant-typescript-config": "0.1.0"
|
|
100
100
|
},
|
|
101
101
|
"files": [
|