mautourco-components 0.2.81 → 0.2.83
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.
|
@@ -29,8 +29,10 @@ var CarBookingCard = function (_a) {
|
|
|
29
29
|
var dropdownRef = useRef(null);
|
|
30
30
|
var panelRef = useRef(null);
|
|
31
31
|
// Synchronize internal isSelected state with the state prop when it changes from parent
|
|
32
|
+
// Also reset isHovered to prevent text staying as "Remove" when state changes
|
|
32
33
|
useEffect(function () {
|
|
33
34
|
setIsSelected(state === 'selected');
|
|
35
|
+
setIsHovered(false);
|
|
34
36
|
}, [state]);
|
|
35
37
|
var resolvedShowSupplement = showSupplement !== null && showSupplement !== void 0 ? showSupplement : Boolean(supplements.length > 0 && transfers.length > 0);
|
|
36
38
|
var hasSupplementsSelected = selectedSupplements.some(function (s) { return s.value > 0; });
|
|
@@ -100,13 +102,21 @@ var CarBookingCard = function (_a) {
|
|
|
100
102
|
};
|
|
101
103
|
// Handle CTA click: toggle between "Add to quote" and "Selected" and pass supplement data
|
|
102
104
|
var handleCtaClick = function (e) {
|
|
103
|
-
|
|
105
|
+
var newIsSelected = !isSelected;
|
|
106
|
+
setIsSelected(newIsSelected);
|
|
107
|
+
// Reset hover state when deselecting to prevent text staying as "Remove"
|
|
108
|
+
if (!newIsSelected) {
|
|
109
|
+
setIsHovered(false);
|
|
110
|
+
}
|
|
104
111
|
// Pass the selected supplements to the parent component
|
|
105
112
|
onCtaClick === null || onCtaClick === void 0 ? void 0 : onCtaClick(e, selectedSupplements.length > 0 ? selectedSupplements : undefined);
|
|
106
113
|
};
|
|
107
114
|
// Determine button state based on selection and hover
|
|
108
|
-
|
|
109
|
-
|
|
115
|
+
// Use both isSelected (internal state) and state prop to ensure synchronization
|
|
116
|
+
// If state prop is 'default', always show default label regardless of isSelected
|
|
117
|
+
var isActuallySelected = isSelected && (state === 'selected' || state === 'hover');
|
|
118
|
+
var shouldShowRemove = isActuallySelected && isHovered;
|
|
119
|
+
var shouldShowSelected = isActuallySelected && !isHovered;
|
|
110
120
|
var resolvedCtaLabel = shouldShowRemove
|
|
111
121
|
? 'Remove'
|
|
112
122
|
: shouldShowSelected
|
package/package.json
CHANGED
|
@@ -107,8 +107,10 @@ const CarBookingCard: React.FC<CarBookingCardProps> = ({
|
|
|
107
107
|
const panelRef = useRef<HTMLDivElement>(null);
|
|
108
108
|
|
|
109
109
|
// Synchronize internal isSelected state with the state prop when it changes from parent
|
|
110
|
+
// Also reset isHovered to prevent text staying as "Remove" when state changes
|
|
110
111
|
useEffect(() => {
|
|
111
112
|
setIsSelected(state === 'selected');
|
|
113
|
+
setIsHovered(false);
|
|
112
114
|
}, [state]);
|
|
113
115
|
|
|
114
116
|
const resolvedShowSupplement =
|
|
@@ -191,14 +193,22 @@ const CarBookingCard: React.FC<CarBookingCardProps> = ({
|
|
|
191
193
|
|
|
192
194
|
// Handle CTA click: toggle between "Add to quote" and "Selected" and pass supplement data
|
|
193
195
|
const handleCtaClick = (e: React.MouseEvent<HTMLButtonElement>) => {
|
|
194
|
-
|
|
196
|
+
const newIsSelected = !isSelected;
|
|
197
|
+
setIsSelected(newIsSelected);
|
|
198
|
+
// Reset hover state when deselecting to prevent text staying as "Remove"
|
|
199
|
+
if (!newIsSelected) {
|
|
200
|
+
setIsHovered(false);
|
|
201
|
+
}
|
|
195
202
|
// Pass the selected supplements to the parent component
|
|
196
203
|
onCtaClick?.(e, selectedSupplements.length > 0 ? selectedSupplements : undefined);
|
|
197
204
|
};
|
|
198
205
|
|
|
199
206
|
// Determine button state based on selection and hover
|
|
200
|
-
|
|
201
|
-
|
|
207
|
+
// Use both isSelected (internal state) and state prop to ensure synchronization
|
|
208
|
+
// If state prop is 'default', always show default label regardless of isSelected
|
|
209
|
+
const isActuallySelected = isSelected && (state === 'selected' || state === 'hover');
|
|
210
|
+
const shouldShowRemove = isActuallySelected && isHovered;
|
|
211
|
+
const shouldShowSelected = isActuallySelected && !isHovered;
|
|
202
212
|
|
|
203
213
|
const resolvedCtaLabel = shouldShowRemove
|
|
204
214
|
? 'Remove'
|