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/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 [isSelecting, setIsSelecting] = useState(false);
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
- setIsSelecting(true);
73686
+ console.log("Starting selection, blocking onBlur"); // Debug log
73687
+ isSelectingRef.current = true;
73687
73688
  if (multi) {
73688
73689
  onChange(values);
73689
- setIsSelecting(false);
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 onChange completes
73696
- setTimeout(() => setIsSelecting(false), 0);
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 (isSelecting) {
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
- }, [isSelecting, restProps]);
73727
+ }, [restProps]);
73716
73728
  const menuProps = useMemo$1(() => ({
73717
73729
  groups: options,
73718
73730
  placeholder: placeholderSearch,