@embeddable.com/remarkable-ui 2.0.44 → 2.0.45

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/index.d.ts CHANGED
@@ -384,6 +384,7 @@ declare const SelectListOption: FC<SelectListOptionProps>;
384
384
  type MultiSelectFieldProps = {
385
385
  startIcon?: React.ComponentType<IconProps>;
386
386
  disabled?: boolean;
387
+ disableApplyButton?: boolean;
387
388
  isClearable?: boolean;
388
389
  isLoading?: boolean;
389
390
  isSearchable?: boolean;
@@ -394,6 +395,7 @@ type MultiSelectFieldProps = {
394
395
  values?: string[];
395
396
  avoidCollisions?: boolean;
396
397
  onChange: (value: string[]) => void;
398
+ onPendingChange?: (values: string[]) => void;
397
399
  onSearch?: (search: string) => void;
398
400
  error?: boolean;
399
401
  errorMessage?: string;
package/dist/index.js CHANGED
@@ -2787,6 +2787,7 @@ var MultiSelectField = ({
2787
2787
  label,
2788
2788
  required,
2789
2789
  disabled,
2790
+ disableApplyButton,
2790
2791
  isClearable,
2791
2792
  isLoading,
2792
2793
  isSearchable,
@@ -2797,6 +2798,7 @@ var MultiSelectField = ({
2797
2798
  values = [],
2798
2799
  avoidCollisions,
2799
2800
  onChange,
2801
+ onPendingChange,
2800
2802
  onSearch,
2801
2803
  error = false,
2802
2804
  errorMessage
@@ -2809,6 +2811,7 @@ var MultiSelectField = ({
2809
2811
  useSelectSearchFocus(isOpen, searchFieldRef);
2810
2812
  useEffect8(() => {
2811
2813
  setPreValues(values);
2814
+ onPendingChange?.(values);
2812
2815
  }, [JSON.stringify(values)]);
2813
2816
  useEffect8(() => {
2814
2817
  if (isLoading) {
@@ -2834,9 +2837,13 @@ var MultiSelectField = ({
2834
2837
  e.preventDefault();
2835
2838
  if (!newValue) return;
2836
2839
  if (preValues.includes(newValue)) {
2837
- setPreValues(preValues.filter((v) => v !== newValue));
2840
+ const next = preValues.filter((v) => v !== newValue);
2841
+ setPreValues(next);
2842
+ onPendingChange?.(next);
2838
2843
  } else {
2839
- setPreValues([...preValues, newValue]);
2844
+ const next = [...preValues, newValue];
2845
+ setPreValues(next);
2846
+ onPendingChange?.(next);
2840
2847
  }
2841
2848
  };
2842
2849
  const handleSearch = (newSearch) => {
@@ -2852,6 +2859,7 @@ var MultiSelectField = ({
2852
2859
  const handleClearAll = () => {
2853
2860
  setSearchValue("");
2854
2861
  onSearch?.("");
2862
+ onPendingChange?.([]);
2855
2863
  onChange([]);
2856
2864
  };
2857
2865
  const hasError = error || !!errorMessage;
@@ -2920,7 +2928,7 @@ var MultiSelectField = ({
2920
2928
  Button,
2921
2929
  {
2922
2930
  className: styles23.submitButton,
2923
- disabled: isSubmitDisabled || isLoading,
2931
+ disabled: isSubmitDisabled || isLoading || disableApplyButton,
2924
2932
  variant: "primary",
2925
2933
  size: "medium",
2926
2934
  onClick: () => handleSave(preValues),