refactor: Update parameterComponent to disable editing when disabled prop is true

This commit is contained in:
Gabriel Luiz Freitas Almeida 2024-06-20 21:17:33 -03:00
commit 4e705b8af1
3 changed files with 11 additions and 5 deletions

View file

@ -1,7 +1,7 @@
import { cloneDeep } from "lodash"; import { cloneDeep } from "lodash";
import { ReactNode, useEffect, useRef, useState } from "react"; import { ReactNode, useEffect, useRef, useState } from "react";
import { useHotkeys } from "react-hotkeys-hook"; import { useHotkeys } from "react-hotkeys-hook";
import { Handle, Position, useUpdateNodeInternals } from "reactflow"; import { useUpdateNodeInternals } from "reactflow";
import CodeAreaComponent from "../../../../components/codeAreaComponent"; import CodeAreaComponent from "../../../../components/codeAreaComponent";
import DictComponent from "../../../../components/dictComponent"; import DictComponent from "../../../../components/dictComponent";
import Dropdown from "../../../../components/dropdownComponent"; import Dropdown from "../../../../components/dropdownComponent";
@ -24,9 +24,8 @@ import useFlowStore from "../../../../stores/flowStore";
import useFlowsManagerStore from "../../../../stores/flowsManagerStore"; import useFlowsManagerStore from "../../../../stores/flowsManagerStore";
import { useShortcutsStore } from "../../../../stores/shortcuts"; import { useShortcutsStore } from "../../../../stores/shortcuts";
import { useTypesStore } from "../../../../stores/typesStore"; import { useTypesStore } from "../../../../stores/typesStore";
import { APIClassType, VertexDataTypeAPI } from "../../../../types/api"; import { APIClassType } from "../../../../types/api";
import { ParameterComponentType } from "../../../../types/components"; import { ParameterComponentType } from "../../../../types/components";
import { isErrorLog } from "../../../../types/utils/typeCheckingUtils";
import { import {
debouncedHandleUpdateValues, debouncedHandleUpdateValues,
handleUpdateValues, handleUpdateValues,
@ -625,7 +624,9 @@ export default function ParameterComponent({
</Case> </Case>
<Case condition={left === true && type === "NestedDict"}> <Case condition={left === true && type === "NestedDict"}>
<div className="mt-2 w-full"> <div
className={"mt-2 w-full" + (disabled ? " cursor-not-allowed" : "")}
>
<DictComponent <DictComponent
disabled={disabled} disabled={disabled}
editNode={false} editNode={false}

View file

@ -25,6 +25,7 @@ export default function DictComponent({
className={classNames( className={classNames(
value.length > 1 && editNode ? "my-1" : "", value.length > 1 && editNode ? "my-1" : "",
"flex w-full flex-col gap-3", "flex w-full flex-col gap-3",
disabled ? "pointer-events-none" : "",
)} )}
> >
{ {
@ -34,6 +35,7 @@ export default function DictComponent({
onChange={(obj) => { onChange={(obj) => {
onChange(obj); onChange(obj);
}} }}
disabled={disabled}
> >
<Input <Input
type="text" type="text"
@ -42,7 +44,7 @@ export default function DictComponent({
? "input-edit-node input-disable pointer-events-none cursor-pointer" ? "input-edit-node input-disable pointer-events-none cursor-pointer"
: "input-disable pointer-events-none cursor-pointer" : "input-disable pointer-events-none cursor-pointer"
} }
placeholder="Click to edit your dictionary..." placeholder={disabled ? "" : "Click to edit your dictionary..."}
data-testid="dict-input" data-testid="dict-input"
/> />
</DictAreaModal> </DictAreaModal>

View file

@ -18,10 +18,12 @@ export default function DictAreaModal({
children, children,
onChange, onChange,
value, value,
disabled = false,
}: { }: {
children: JSX.Element; children: JSX.Element;
onChange?: (value: Object) => void; onChange?: (value: Object) => void;
value: Object; value: Object;
disabled?: boolean;
}): JSX.Element { }): JSX.Element {
const [open, setOpen] = useState(false); const [open, setOpen] = useState(false);
const isDark = useDarkStore((state) => state.dark); const isDark = useDarkStore((state) => state.dark);
@ -35,6 +37,7 @@ export default function DictAreaModal({
<BaseModal <BaseModal
size="medium-h-full" size="medium-h-full"
open={open} open={open}
disable={disabled}
setOpen={setOpen} setOpen={setOpen}
onSubmit={ onSubmit={
onChange onChange