@maif/react-forms 1.0.54 → 1.0.55

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/lib/esm/index.js CHANGED
@@ -3,7 +3,7 @@ import React, { useState, useEffect, useRef, useImperativeHandle } from 'react';
3
3
  import { yupResolver } from '@hookform/resolvers/yup';
4
4
  import classNames from 'classnames';
5
5
  import { Eye, EyeOff, PlusCircle, MinusCircle, Trash2, ChevronDown, ChevronUp, HelpCircle, Loader, Upload } from 'react-feather';
6
- import { useController, useFormContext, useForm, FormProvider, Controller, useFieldArray, useWatch } from 'react-hook-form';
6
+ import { useFormContext, useController, useForm, FormProvider, Controller, useFieldArray, useWatch } from 'react-hook-form';
7
7
  import { DatePicker } from 'react-rainbow-components';
8
8
  import ReactToolTip from 'react-tooltip';
9
9
  import { v4 } from 'uuid';
@@ -970,6 +970,9 @@ var valueToSelectOption = function valueToSelectOption(value) {
970
970
  };
971
971
 
972
972
  var SelectInput = /*#__PURE__*/React.forwardRef(function (props, _) {
973
+ var _useFormContext = useFormContext(),
974
+ getValues = _useFormContext.getValues;
975
+
973
976
  var classes = useCustomStyle();
974
977
  var possibleValues = (props.possibleValues || []).map(function (v) {
975
978
  return props.transformer ? typeof props.transformer === 'function' ? props.transformer(v) : {
@@ -1009,9 +1012,24 @@ var SelectInput = /*#__PURE__*/React.forwardRef(function (props, _) {
1009
1012
 
1010
1013
  if (cond) {
1011
1014
  setLoading(true);
1012
- var promise = isPromise(props.optionsFrom) ? props.optionsFrom : props.httpClient(props.optionsFrom, 'GET').then(function (r) {
1013
- return r.json();
1014
- });
1015
+ var promise;
1016
+
1017
+ if (isPromise(props.optionsFrom)) {
1018
+ promise = props.optionsFrom;
1019
+ } else if (typeof props.optionsFrom === 'function') {
1020
+ var result = props.optionsFrom({
1021
+ rawValues: getValues(),
1022
+ value: getValues(props.id)
1023
+ });
1024
+ promise = isPromise(result) ? result : props.httpClient(result, 'GET').then(function (r) {
1025
+ return r.json();
1026
+ });
1027
+ } else {
1028
+ promise = props.httpClient(props.optionsFrom, 'GET').then(function (r) {
1029
+ return r.json();
1030
+ });
1031
+ }
1032
+
1015
1033
  promise.then(function (values) {
1016
1034
  return values.map(function (x) {
1017
1035
  return props.transformer ? props.transformer(x) : valueToSelectOption(x, values, props.isMulti, props.transformer);
package/lib/index.js CHANGED
@@ -1004,6 +1004,9 @@ var valueToSelectOption = function valueToSelectOption(value) {
1004
1004
  };
1005
1005
 
1006
1006
  var SelectInput = /*#__PURE__*/React__default["default"].forwardRef(function (props, _) {
1007
+ var _useFormContext = reactHookForm.useFormContext(),
1008
+ getValues = _useFormContext.getValues;
1009
+
1007
1010
  var classes = useCustomStyle();
1008
1011
  var possibleValues = (props.possibleValues || []).map(function (v) {
1009
1012
  return props.transformer ? typeof props.transformer === 'function' ? props.transformer(v) : {
@@ -1043,9 +1046,24 @@ var SelectInput = /*#__PURE__*/React__default["default"].forwardRef(function (pr
1043
1046
 
1044
1047
  if (cond) {
1045
1048
  setLoading(true);
1046
- var promise = isPromise(props.optionsFrom) ? props.optionsFrom : props.httpClient(props.optionsFrom, 'GET').then(function (r) {
1047
- return r.json();
1048
- });
1049
+ var promise;
1050
+
1051
+ if (isPromise(props.optionsFrom)) {
1052
+ promise = props.optionsFrom;
1053
+ } else if (typeof props.optionsFrom === 'function') {
1054
+ var result = props.optionsFrom({
1055
+ rawValues: getValues(),
1056
+ value: getValues(props.id)
1057
+ });
1058
+ promise = isPromise(result) ? result : props.httpClient(result, 'GET').then(function (r) {
1059
+ return r.json();
1060
+ });
1061
+ } else {
1062
+ promise = props.httpClient(props.optionsFrom, 'GET').then(function (r) {
1063
+ return r.json();
1064
+ });
1065
+ }
1066
+
1049
1067
  promise.then(function (values) {
1050
1068
  return values.map(function (x) {
1051
1069
  return props.transformer ? props.transformer(x) : valueToSelectOption(x, values, props.isMulti, props.transformer);
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@maif/react-forms",
3
3
  "description": "Build react safe forms as fast as possible",
4
- "version": "1.0.54",
4
+ "version": "1.0.55",
5
5
  "main": "lib/index.js",
6
6
  "module": "lib/esm/index.js",
7
7
  "types": "lib/index.js",