@dartech/arsenal-ui 1.3.69 → 1.3.70

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/index.js CHANGED
@@ -4043,12 +4043,11 @@ const PropertyFiller = ({
4043
4043
  const {
4044
4044
  control,
4045
4045
  clearErrors,
4046
- setValue
4046
+ setValue,
4047
+ watch
4047
4048
  } = useFormContext();
4048
4049
  const {
4049
- field: {
4050
- value
4051
- },
4050
+ // field: { value },
4052
4051
  fieldState: {
4053
4052
  error,
4054
4053
  isDirty
@@ -4059,11 +4058,13 @@ const PropertyFiller = ({
4059
4058
  defaultValue: property.defaultValue,
4060
4059
  rules: {
4061
4060
  validate: val => {
4062
- if (required && val === null) return 'Please, fill this field555';
4061
+ if (required && val === null) return 'Please, fill this field';
4063
4062
  return true;
4064
4063
  }
4065
4064
  }
4066
4065
  });
4066
+ const value = watch(name);
4067
+ const prevValueRef = useRef({});
4067
4068
  const {
4068
4069
  propertyType,
4069
4070
  valueLabel,
@@ -4082,24 +4083,32 @@ const PropertyFiller = ({
4082
4083
  });
4083
4084
  const handleFillOptionChange = useCallback(event => {
4084
4085
  const selectedType = event.target.value;
4086
+ prevValueRef.current = Object.assign(Object.assign({}, prevValueRef.current), {
4087
+ [fillOption]: value
4088
+ });
4085
4089
  setFillOption(selectedType);
4090
+ const prevValue = prevValueRef.current[selectedType];
4086
4091
  if (selectedType === 'null') {
4087
- setValue(name, null);
4092
+ setValue(name, null, {
4093
+ shouldDirty: true
4094
+ });
4088
4095
  } else if (selectedType === 'widget') {
4089
4096
  if (propertyType === PropertyType.JSON && value && typeof value !== 'string' && fillOption === 'dem_builder' && 'properties' in value) {
4090
4097
  const definitionValue = Object.assign(Object.assign({}, value), {
4091
4098
  properties: propertiesArrayToObject(value.property || [])
4092
4099
  });
4093
4100
  try {
4094
- setValue(name, JSON.stringify(definitionValue, null, '\t'));
4101
+ setValue(name, prevValue !== null && prevValue !== void 0 ? prevValue : JSON.stringify(definitionValue, null, '\t'));
4095
4102
  } catch (error) {
4096
4103
  console.log('Stringify failed', error);
4097
4104
  }
4098
4105
  } else {
4099
- setValue(name, property.defaultValue || defaultProperyValue);
4106
+ setValue(name, prevValue !== null && prevValue !== void 0 ? prevValue : property.defaultValue || defaultProperyValue);
4100
4107
  }
4101
4108
  } else if (selectedType === 'expression' || selectedType === 'string') {
4102
- setValue(name, '');
4109
+ setValue(name, prevValue !== null && prevValue !== void 0 ? prevValue : '', {
4110
+ shouldDirty: true
4111
+ });
4103
4112
  } else if (selectedType === 'dem_builder') {
4104
4113
  const defaultArrayValue = {
4105
4114
  code: '',
@@ -4111,12 +4120,18 @@ const PropertyFiller = ({
4111
4120
  try {
4112
4121
  const definitionValue = JSON.parse(value);
4113
4122
  definitionValue['properties'] = propertiesObjectToArray(definitionValue['properties'] || {});
4114
- setValue(name, definitionValue);
4123
+ setValue(name, prevValue !== null && prevValue !== void 0 ? prevValue : definitionValue, {
4124
+ shouldDirty: true
4125
+ });
4115
4126
  } catch (error) {
4116
- setValue(name, defaultArrayValue);
4127
+ setValue(name, prevValue !== null && prevValue !== void 0 ? prevValue : defaultArrayValue, {
4128
+ shouldDirty: true
4129
+ });
4117
4130
  }
4118
4131
  } else {
4119
- setValue(name, defaultArrayValue);
4132
+ setValue(name, prevValue !== null && prevValue !== void 0 ? prevValue : defaultArrayValue, {
4133
+ shouldDirty: true
4134
+ });
4120
4135
  }
4121
4136
  }
4122
4137
  clearErrors();
@@ -4127,10 +4142,11 @@ const PropertyFiller = ({
4127
4142
  }
4128
4143
  }, [isDirty, property, name, setValue]);
4129
4144
  useEffect(() => {
4145
+ var _a;
4130
4146
  if (value === undefined || property.isRequired && value === null && !property.defaultValue) {
4131
- setValue(name, defaultProperyValue);
4147
+ setValue(name, (_a = prevValueRef.current[fillOption]) !== null && _a !== void 0 ? _a : defaultProperyValue);
4132
4148
  }
4133
- }, [value, setValue, defaultProperyValue, property, name]);
4149
+ }, [value, setValue, defaultProperyValue, property, name, fillOption]);
4134
4150
  return jsxs(Grid, Object.assign({
4135
4151
  xs: 12
4136
4152
  }, {
@@ -4354,13 +4370,13 @@ const MultiplePropertyFiller = ({
4354
4370
  const {
4355
4371
  control,
4356
4372
  clearErrors,
4357
- setValue
4373
+ setValue,
4374
+ watch
4358
4375
  } = useFormContext();
4359
4376
  const {
4360
4377
  field: {
4361
4378
  ref,
4362
- onChange,
4363
- value
4379
+ onChange
4364
4380
  },
4365
4381
  fieldState: {
4366
4382
  error,
@@ -4377,6 +4393,8 @@ const MultiplePropertyFiller = ({
4377
4393
  }
4378
4394
  }
4379
4395
  });
4396
+ const value = watch(name);
4397
+ const prevValueRef = useRef({});
4380
4398
  const {
4381
4399
  propertyType,
4382
4400
  valueLabel,
@@ -4396,13 +4414,21 @@ const MultiplePropertyFiller = ({
4396
4414
  });
4397
4415
  const handleFillOptionChange = event => {
4398
4416
  setSelectTouched(true);
4417
+ prevValueRef.current = Object.assign(Object.assign({}, prevValueRef.current), {
4418
+ [fillOption]: value
4419
+ });
4399
4420
  const selectedType = event.target.value;
4421
+ const prevValue = prevValueRef.current[selectedType];
4400
4422
  if (selectedType === 'null') {
4401
4423
  setValue(name, null);
4402
4424
  } else if (selectedType === 'expression' || selectedType === 'json_valid' || selectedType === 'json_notvalid') {
4403
- onChange('');
4425
+ setValue(name, prevValue !== null && prevValue !== void 0 ? prevValue : '', {
4426
+ shouldDirty: true
4427
+ });
4404
4428
  } else if (selectedType === 'widget') {
4405
- onChange([]);
4429
+ setValue(name, prevValue !== null && prevValue !== void 0 ? prevValue : [], {
4430
+ shouldDirty: true
4431
+ });
4406
4432
  }
4407
4433
  setFillOption(selectedType);
4408
4434
  clearErrors(name);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dartech/arsenal-ui",
3
- "version": "1.3.69",
3
+ "version": "1.3.70",
4
4
  "author": "DAR",
5
5
  "publishConfig": {
6
6
  "registry": "https://registry.npmjs.org/"
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  type Props = {
2
3
  name: string;
3
4
  label?: string;
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  type Props = {
2
3
  name: string;
3
4
  label?: string;
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  type Props = {
2
3
  name: string;
3
4
  format: string;
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  type Props = {
2
3
  name: string;
3
4
  label?: string;
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  type Props = {
2
3
  name: string;
3
4
  label?: string;
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  import { PropertyUnion } from '../../../interfaces';
2
3
  type PropertyItemProps = {
3
4
  property: PropertyUnion;