fix: refactor TypeAsyncDropdown value handling for improved clarity and consistency
This commit is contained in:
parent
57b87bf707
commit
5f69723075
|
|
@ -191,8 +191,55 @@ export const TypeAsyncDropdown: React.FC<any> = ({
|
||||||
const clearable =
|
const clearable =
|
||||||
mode === "dropdown" && required ? false : mode === "multi" ? true : true;
|
mode === "dropdown" && required ? false : mode === "multi" ? true : true;
|
||||||
let value = fm.data[name];
|
let value = fm.data[name];
|
||||||
if (mode === "multi") {
|
if (value) {
|
||||||
if (Array.isArray(value) && value?.length) {
|
if (mode === "multi") {
|
||||||
|
if (Array.isArray(value) && value?.length) {
|
||||||
|
value = value.map((e) => {
|
||||||
|
return {
|
||||||
|
...e,
|
||||||
|
value: getValue(e),
|
||||||
|
label: getLabel(e),
|
||||||
|
};
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
value = [];
|
||||||
|
}
|
||||||
|
} else if (typeof value === "object") {
|
||||||
|
value = value
|
||||||
|
? {
|
||||||
|
value: getValue(value),
|
||||||
|
label: getLabel(value),
|
||||||
|
}
|
||||||
|
: null;
|
||||||
|
} else if (
|
||||||
|
!target &&
|
||||||
|
typeof value !== "object" &&
|
||||||
|
typeof value === "string" &&
|
||||||
|
value
|
||||||
|
) {
|
||||||
|
value = value
|
||||||
|
? onValue === onLabel
|
||||||
|
? {
|
||||||
|
value: value,
|
||||||
|
label: value,
|
||||||
|
}
|
||||||
|
: {
|
||||||
|
value: value,
|
||||||
|
label: getLabel(value),
|
||||||
|
}
|
||||||
|
: null;
|
||||||
|
} else if (typeof value === "string") {
|
||||||
|
value =
|
||||||
|
onValue === onLabel
|
||||||
|
? {
|
||||||
|
value: value,
|
||||||
|
label: value,
|
||||||
|
}
|
||||||
|
: {
|
||||||
|
value: value,
|
||||||
|
label: typeof onLabel === "string" ? value : getLabel(value),
|
||||||
|
};
|
||||||
|
} else if (Array.isArray(value) && value?.length) {
|
||||||
value = value.map((e) => {
|
value = value.map((e) => {
|
||||||
return {
|
return {
|
||||||
...e,
|
...e,
|
||||||
|
|
@ -200,55 +247,15 @@ export const TypeAsyncDropdown: React.FC<any> = ({
|
||||||
label: getLabel(e),
|
label: getLabel(e),
|
||||||
};
|
};
|
||||||
});
|
});
|
||||||
} else {
|
} else if (typeof value === "object" && value) {
|
||||||
value = [];
|
value = value
|
||||||
}
|
|
||||||
} else if (typeof value === "object") {
|
|
||||||
value = {
|
|
||||||
value: getValue(value),
|
|
||||||
label: getLabel(value),
|
|
||||||
};
|
|
||||||
} else if (
|
|
||||||
!target &&
|
|
||||||
typeof value !== "object" &&
|
|
||||||
typeof value === "string" &&
|
|
||||||
value
|
|
||||||
) {
|
|
||||||
value =
|
|
||||||
onValue === onLabel
|
|
||||||
? {
|
? {
|
||||||
value: value,
|
...value,
|
||||||
label: value,
|
value: getValue(value),
|
||||||
}
|
|
||||||
: {
|
|
||||||
value: value,
|
|
||||||
label: getLabel(value),
|
label: getLabel(value),
|
||||||
};
|
|
||||||
} else if (typeof value === "string") {
|
|
||||||
value =
|
|
||||||
onValue === onLabel
|
|
||||||
? {
|
|
||||||
value: value,
|
|
||||||
label: value,
|
|
||||||
}
|
}
|
||||||
: {
|
: value;
|
||||||
value: value,
|
}
|
||||||
label: typeof onLabel === "string" ? value : getLabel(value),
|
|
||||||
};
|
|
||||||
} else if (Array.isArray(value) && value?.length) {
|
|
||||||
value = value.map((e) => {
|
|
||||||
return {
|
|
||||||
...e,
|
|
||||||
value: getValue(e),
|
|
||||||
label: getLabel(e),
|
|
||||||
};
|
|
||||||
});
|
|
||||||
} else if (typeof value === "object" && value) {
|
|
||||||
value = {
|
|
||||||
...value,
|
|
||||||
value: getValue(value),
|
|
||||||
label: getLabel(value),
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
const CustomMenu = (props: any) => {
|
const CustomMenu = (props: any) => {
|
||||||
return (
|
return (
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue