fis-component 0.0.92 → 0.0.93
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/cjs/index.js +19 -7
- package/dist/cjs/index.js.map +1 -1
- package/dist/esm/index.js +19 -7
- package/dist/esm/index.js.map +1 -1
- package/package.json +1 -1
package/dist/cjs/index.js
CHANGED
|
@@ -73648,7 +73648,7 @@ const FISSelect = React.forwardRef(({ className, style, size = "md", options, va
|
|
|
73648
73648
|
const [isOpen, setIsOpen] = React.useState(false);
|
|
73649
73649
|
const [referenceElement, setReferenceElement] = React.useState(null);
|
|
73650
73650
|
const [popperElement, setPopperElement] = React.useState(null);
|
|
73651
|
-
const
|
|
73651
|
+
const isSelectingRef = React.useRef(false);
|
|
73652
73652
|
const popperOptions = React.useMemo(() => ({
|
|
73653
73653
|
modifiers: [
|
|
73654
73654
|
{ name: "preventOverflow", options: { padding: 0, altAxis: true } },
|
|
@@ -73703,36 +73703,48 @@ const FISSelect = React.forwardRef(({ className, style, size = "md", options, va
|
|
|
73703
73703
|
}
|
|
73704
73704
|
}, [multi, onChange, value]);
|
|
73705
73705
|
const handleMenuChange = React.useCallback((values) => {
|
|
73706
|
-
|
|
73706
|
+
console.log("Starting selection, blocking onBlur"); // Debug log
|
|
73707
|
+
isSelectingRef.current = true;
|
|
73707
73708
|
if (multi) {
|
|
73708
73709
|
onChange(values);
|
|
73709
|
-
|
|
73710
|
+
isSelectingRef.current = false;
|
|
73710
73711
|
}
|
|
73711
73712
|
else {
|
|
73712
73713
|
if (values.length > 0) {
|
|
73713
73714
|
onChange(values[0]);
|
|
73714
73715
|
setIsOpen(false);
|
|
73715
|
-
// Reset selecting flag after
|
|
73716
|
-
setTimeout(() =>
|
|
73716
|
+
// Reset selecting flag after a longer delay to ensure validation completes
|
|
73717
|
+
setTimeout(() => {
|
|
73718
|
+
console.log("Selection complete, allowing onBlur"); // Debug log
|
|
73719
|
+
isSelectingRef.current = false;
|
|
73720
|
+
}, 100);
|
|
73717
73721
|
}
|
|
73718
73722
|
}
|
|
73719
73723
|
}, [multi, onChange]);
|
|
73720
73724
|
const handleMenuClick = React.useCallback(() => {
|
|
73721
73725
|
if (!multi) {
|
|
73726
|
+
console.log("Menu click, setting isSelecting to true"); // Debug log
|
|
73727
|
+
isSelectingRef.current = true;
|
|
73722
73728
|
setIsOpen(false);
|
|
73729
|
+
setTimeout(() => {
|
|
73730
|
+
console.log("Menu click complete, allowing onBlur"); // Debug log
|
|
73731
|
+
isSelectingRef.current = false;
|
|
73732
|
+
}, 100);
|
|
73723
73733
|
}
|
|
73724
73734
|
}, [multi]);
|
|
73725
73735
|
// Handle onBlur to prevent validation flash during selection
|
|
73726
73736
|
const handleBlur = React.useCallback((event) => {
|
|
73727
73737
|
// Don't trigger onBlur validation if user is currently selecting an option
|
|
73728
|
-
if (
|
|
73738
|
+
if (isSelectingRef.current) {
|
|
73739
|
+
console.log("Blocking onBlur during selection"); // Debug log
|
|
73729
73740
|
return;
|
|
73730
73741
|
}
|
|
73742
|
+
console.log("Allowing onBlur to proceed"); // Debug log
|
|
73731
73743
|
// Call original onBlur if provided
|
|
73732
73744
|
if (restProps.onBlur) {
|
|
73733
73745
|
restProps.onBlur(event);
|
|
73734
73746
|
}
|
|
73735
|
-
}, [
|
|
73747
|
+
}, [restProps]);
|
|
73736
73748
|
const menuProps = React.useMemo(() => ({
|
|
73737
73749
|
groups: options,
|
|
73738
73750
|
placeholder: placeholderSearch,
|