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/esm/index.js
CHANGED
|
@@ -73628,7 +73628,7 @@ const FISSelect = forwardRef(({ className, style, size = "md", options, value, d
|
|
|
73628
73628
|
const [isOpen, setIsOpen] = useState(false);
|
|
73629
73629
|
const [referenceElement, setReferenceElement] = useState(null);
|
|
73630
73630
|
const [popperElement, setPopperElement] = useState(null);
|
|
73631
|
-
const
|
|
73631
|
+
const isSelectingRef = useRef(false);
|
|
73632
73632
|
const popperOptions = useMemo$1(() => ({
|
|
73633
73633
|
modifiers: [
|
|
73634
73634
|
{ name: "preventOverflow", options: { padding: 0, altAxis: true } },
|
|
@@ -73683,36 +73683,48 @@ const FISSelect = forwardRef(({ className, style, size = "md", options, value, d
|
|
|
73683
73683
|
}
|
|
73684
73684
|
}, [multi, onChange, value]);
|
|
73685
73685
|
const handleMenuChange = useCallback((values) => {
|
|
73686
|
-
|
|
73686
|
+
console.log("Starting selection, blocking onBlur"); // Debug log
|
|
73687
|
+
isSelectingRef.current = true;
|
|
73687
73688
|
if (multi) {
|
|
73688
73689
|
onChange(values);
|
|
73689
|
-
|
|
73690
|
+
isSelectingRef.current = false;
|
|
73690
73691
|
}
|
|
73691
73692
|
else {
|
|
73692
73693
|
if (values.length > 0) {
|
|
73693
73694
|
onChange(values[0]);
|
|
73694
73695
|
setIsOpen(false);
|
|
73695
|
-
// Reset selecting flag after
|
|
73696
|
-
setTimeout(() =>
|
|
73696
|
+
// Reset selecting flag after a longer delay to ensure validation completes
|
|
73697
|
+
setTimeout(() => {
|
|
73698
|
+
console.log("Selection complete, allowing onBlur"); // Debug log
|
|
73699
|
+
isSelectingRef.current = false;
|
|
73700
|
+
}, 100);
|
|
73697
73701
|
}
|
|
73698
73702
|
}
|
|
73699
73703
|
}, [multi, onChange]);
|
|
73700
73704
|
const handleMenuClick = useCallback(() => {
|
|
73701
73705
|
if (!multi) {
|
|
73706
|
+
console.log("Menu click, setting isSelecting to true"); // Debug log
|
|
73707
|
+
isSelectingRef.current = true;
|
|
73702
73708
|
setIsOpen(false);
|
|
73709
|
+
setTimeout(() => {
|
|
73710
|
+
console.log("Menu click complete, allowing onBlur"); // Debug log
|
|
73711
|
+
isSelectingRef.current = false;
|
|
73712
|
+
}, 100);
|
|
73703
73713
|
}
|
|
73704
73714
|
}, [multi]);
|
|
73705
73715
|
// Handle onBlur to prevent validation flash during selection
|
|
73706
73716
|
const handleBlur = useCallback((event) => {
|
|
73707
73717
|
// Don't trigger onBlur validation if user is currently selecting an option
|
|
73708
|
-
if (
|
|
73718
|
+
if (isSelectingRef.current) {
|
|
73719
|
+
console.log("Blocking onBlur during selection"); // Debug log
|
|
73709
73720
|
return;
|
|
73710
73721
|
}
|
|
73722
|
+
console.log("Allowing onBlur to proceed"); // Debug log
|
|
73711
73723
|
// Call original onBlur if provided
|
|
73712
73724
|
if (restProps.onBlur) {
|
|
73713
73725
|
restProps.onBlur(event);
|
|
73714
73726
|
}
|
|
73715
|
-
}, [
|
|
73727
|
+
}, [restProps]);
|
|
73716
73728
|
const menuProps = useMemo$1(() => ({
|
|
73717
73729
|
groups: options,
|
|
73718
73730
|
placeholder: placeholderSearch,
|