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 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 [isSelecting, setIsSelecting] = React.useState(false);
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
- setIsSelecting(true);
73706
+ console.log("Starting selection, blocking onBlur"); // Debug log
73707
+ isSelectingRef.current = true;
73707
73708
  if (multi) {
73708
73709
  onChange(values);
73709
- setIsSelecting(false);
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 onChange completes
73716
- setTimeout(() => setIsSelecting(false), 0);
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 (isSelecting) {
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
- }, [isSelecting, restProps]);
73747
+ }, [restProps]);
73736
73748
  const menuProps = React.useMemo(() => ({
73737
73749
  groups: options,
73738
73750
  placeholder: placeholderSearch,