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
- setIsSelected(!isSelected);
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
- var shouldShowRemove = isSelected && isHovered;
109
- var shouldShowSelected = isSelected && !isHovered;
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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mautourco-components",
3
- "version": "0.2.81",
3
+ "version": "0.2.83",
4
4
  "private": false,
5
5
  "description": "Bibliothèque de composants Mautourco pour le redesign",
6
6
  "main": "dist/index.js",
@@ -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
- setIsSelected(!isSelected);
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
- const shouldShowRemove = isSelected && isHovered;
201
- const shouldShowSelected = isSelected && !isHovered;
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'