Fix rangeSpec bug and handle response error in ParameterComponent

This commit is contained in:
Gabriel Luiz Freitas Almeida 2024-03-31 10:38:01 -03:00
commit 9cfbe0f216
6 changed files with 24 additions and 10 deletions

View file

@ -269,6 +269,9 @@ def run_build_config(
# Allow user to build TemplateField as well
# as a dict with the same keys as TemplateField
field_dict = get_field_dict(field)
# Let's check if "rangeSpec" is a RangeSpec object
if "rangeSpec" in field_dict and isinstance(field_dict["rangeSpec"], RangeSpec):
field_dict["rangeSpec"] = field_dict["rangeSpec"].model_dump()
build_config[field_name] = field_dict
return build_config, custom_instance
@ -423,9 +426,6 @@ def update_field_dict(
logger.error(f"Error while running update_build_config: {str(exc)}")
raise UpdateBuildConfigError(f"Error while running update_build_config: {str(exc)}") from exc
# Let's check if "range_spec" is a RangeSpec object
if "rangeSpec" in field_dict and isinstance(field_dict["rangeSpec"], RangeSpec):
field_dict["rangeSpec"] = field_dict["rangeSpec"].model_dump()
return build_config

View file

@ -27,7 +27,11 @@ import useAlertStore from "../../../../stores/alertStore";
import useFlowStore from "../../../../stores/flowStore";
import useFlowsManagerStore from "../../../../stores/flowsManagerStore";
import { useTypesStore } from "../../../../stores/typesStore";
import { APIClassType, ResponseErrorTypeAPI } from "../../../../types/api";
import {
APIClassType,
ResponseErrorDetailAPI,
ResponseErrorTypeAPI,
} from "../../../../types/api";
import { ParameterComponentType } from "../../../../types/components";
import {
handleUpdateValues,
@ -104,10 +108,11 @@ export default function ParameterComponent({
});
}
} catch (error) {
let responseError = error as ResponseErrorTypeAPI;
let responseError = error as ResponseErrorDetailAPI;
setErrorData({
title: "Error while updating the Component",
list: [responseError.response.data.detail.error ?? "Unknown error"],
list: [responseError.response.data.detail ?? "Unknown error"],
});
}
setIsLoading(false);
@ -136,10 +141,11 @@ export default function ParameterComponent({
});
}
} catch (error) {
let responseError = error as ResponseErrorTypeAPI;
let responseError = error as ResponseErrorDetailAPI;
setErrorData({
title: "Error while updating the Component",
list: [responseError.response.data.detail.error ?? "Unknown error"],
list: [responseError.response.data.detail ?? "Unknown error"],
});
}
setIsLoading(false);

View file

@ -566,6 +566,11 @@ export default function CodeTabsComponent({
<IntComponent
disabled={false}
editNode={true}
rangeSpec={
node.data.node.template[
templateField
].rangeSpec
}
value={
!node.data.node.template[
templateField

View file

@ -9,6 +9,7 @@ import { Input } from "../ui/input";
export default function IntComponent({
value,
onChange,
rangeSpec,
disabled,
editNode = false,
id = "",
@ -32,7 +33,8 @@ export default function IntComponent({
}}
type="number"
step="1"
min={0}
min={rangeSpec?.min ?? min}
max={rangeSpec?.max ?? undefined}
onInput={(event: React.ChangeEvent<HTMLInputElement>) => {
if (Number(event.target.value) < min) {
event.target.value = min.toString();

View file

@ -317,7 +317,7 @@ export default function NodeToolbarComponent({
selected &&
(event.ctrlKey || event.metaKey) &&
event.shiftKey &&
event.key === "C"
event.key === "U"
) {
event.preventDefault();
if (hasCode) return setOpenModal((state) => !state);

View file

@ -170,6 +170,7 @@ export type RangeSpecType = {
export type IntComponentType = {
value: string;
disabled?: boolean;
rangeSpec: RangeSpecType;
onChange: (value: string) => void;
editNode?: boolean;
id?: string;