@dartech/arsenal-ui 1.4.22 → 1.4.24
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 +29 -11
- package/package.json +1 -1
package/index.js
CHANGED
@@ -810,7 +810,6 @@ const ControlAutocomplete = _a => {
|
|
810
810
|
};
|
811
811
|
|
812
812
|
function ControlQueryAutocomplete(_a) {
|
813
|
-
var _b;
|
814
813
|
var {
|
815
814
|
name,
|
816
815
|
label,
|
@@ -832,7 +831,7 @@ function ControlQueryAutocomplete(_a) {
|
|
832
831
|
requiredErrorText = ''
|
833
832
|
} = _a,
|
834
833
|
autocompleteProps = __rest(_a, ["name", "label", "control", "required", "searchBy", "labelKey", "multiple", "disabled", "valueKey", "sortBy", "hideErrorMessage", "disableCloseOnSelect", "textFieldProps", "onChange", "queryFunction", "validate", "itemQueryFunction", "requiredErrorText"]);
|
835
|
-
const
|
834
|
+
const _b = useController({
|
836
835
|
control,
|
837
836
|
name,
|
838
837
|
defaultValue: multiple ? [] : null,
|
@@ -841,19 +840,19 @@ function ControlQueryAutocomplete(_a) {
|
|
841
840
|
validate
|
842
841
|
}
|
843
842
|
}),
|
844
|
-
|
843
|
+
_c = _b.field,
|
845
844
|
{
|
846
845
|
ref,
|
847
846
|
onChange: setFieldValue,
|
848
847
|
value: formValue
|
849
|
-
} =
|
850
|
-
fieldProps = __rest(
|
848
|
+
} = _c,
|
849
|
+
fieldProps = __rest(_c, ["ref", "onChange", "value"]),
|
851
850
|
{
|
852
851
|
fieldState: {
|
853
852
|
error,
|
854
853
|
isDirty
|
855
854
|
}
|
856
|
-
} =
|
855
|
+
} = _b;
|
857
856
|
const {
|
858
857
|
getOptionLabel,
|
859
858
|
isOptionEqualToValue,
|
@@ -862,6 +861,7 @@ function ControlQueryAutocomplete(_a) {
|
|
862
861
|
valueKey,
|
863
862
|
labelKey
|
864
863
|
});
|
864
|
+
const [options, setOptions] = useState([]);
|
865
865
|
const [open, setOpen] = useState(false);
|
866
866
|
const [inputValue, setInputValue] = useState('');
|
867
867
|
const [searchValue, setSearchValue] = useState('');
|
@@ -880,6 +880,11 @@ function ControlQueryAutocomplete(_a) {
|
|
880
880
|
ignoreQueryPrefix: true
|
881
881
|
});
|
882
882
|
return queryFunction(params);
|
883
|
+
}, {
|
884
|
+
// keepPreviousData: true,
|
885
|
+
onSuccess(data) {
|
886
|
+
setOptions(state => [...state, ...data.collection]);
|
887
|
+
}
|
883
888
|
});
|
884
889
|
const debouncedChange = useDebounce(val => {
|
885
890
|
setPage(0);
|
@@ -895,6 +900,7 @@ function ControlQueryAutocomplete(_a) {
|
|
895
900
|
onChange(event, value);
|
896
901
|
}
|
897
902
|
}, [setFieldValue, onChange]);
|
903
|
+
console.log(isDirty, formValue, searchValue);
|
898
904
|
useEffect(() => {
|
899
905
|
if (!isDirty && formValue && itemQueryFunction) {
|
900
906
|
let requestValue = formValue;
|
@@ -904,15 +910,15 @@ function ControlQueryAutocomplete(_a) {
|
|
904
910
|
itemQueryFunction(requestValue).then(item => {
|
905
911
|
setFieldValue(item);
|
906
912
|
setInputValue(_get(item, labelKey));
|
907
|
-
}).catch();
|
913
|
+
}).catch(console.error);
|
908
914
|
}
|
909
915
|
}, [formValue, isDirty, valueKey, labelKey, itemQueryFunction, setFieldValue]);
|
910
916
|
const handleOnScroll = useCallback(event => {
|
911
917
|
const listboxNode = event.currentTarget;
|
912
|
-
if (listboxNode.scrollHeight - listboxNode.scrollTop - listboxNode.clientHeight <= 1 &&
|
918
|
+
if (listboxNode.scrollHeight - listboxNode.scrollTop - listboxNode.clientHeight <= 1 && options.length < (data === null || data === void 0 ? void 0 : data.totalItems)) {
|
913
919
|
setPage(page => page + 1);
|
914
920
|
}
|
915
|
-
}, [data]);
|
921
|
+
}, [data, options]);
|
916
922
|
const handleOpen = () => {
|
917
923
|
setOpen(true);
|
918
924
|
};
|
@@ -925,7 +931,7 @@ function ControlQueryAutocomplete(_a) {
|
|
925
931
|
disablePortal: true,
|
926
932
|
size: "small",
|
927
933
|
readOnly: disabled,
|
928
|
-
options:
|
934
|
+
options: options,
|
929
935
|
multiple: multiple,
|
930
936
|
getOptionLabel: getOptionLabel,
|
931
937
|
isOptionEqualToValue: isOptionEqualToValue,
|
@@ -1568,7 +1574,6 @@ const formatPropertyValue = (propertyType, value, params) => {
|
|
1568
1574
|
break;
|
1569
1575
|
}
|
1570
1576
|
case PropertyType.JSON:
|
1571
|
-
case PropertyType.ANY:
|
1572
1577
|
try {
|
1573
1578
|
if (typeof value !== 'string') {
|
1574
1579
|
parsedValue = JSON.stringify(value);
|
@@ -1579,6 +1584,19 @@ const formatPropertyValue = (propertyType, value, params) => {
|
|
1579
1584
|
parsedValue = null;
|
1580
1585
|
}
|
1581
1586
|
break;
|
1587
|
+
case PropertyType.ANY:
|
1588
|
+
try {
|
1589
|
+
if (typeof value === 'string') {
|
1590
|
+
parsedValue = JSON.parse(parsedValue);
|
1591
|
+
} else {
|
1592
|
+
parsedValue = value;
|
1593
|
+
}
|
1594
|
+
// parsedValue = JSON.parse(parsedValue as string);
|
1595
|
+
} catch (e) {
|
1596
|
+
// console.log(e);
|
1597
|
+
parsedValue = value;
|
1598
|
+
}
|
1599
|
+
break;
|
1582
1600
|
case PropertyType.ENTITY:
|
1583
1601
|
parsedValue = formatDefinitionData(params.properties, value);
|
1584
1602
|
break;
|