refactor: Update SwitchOutputView to accept outputName prop

Update the SwitchOutputView component to accept the outputName prop, allowing for dynamic rendering of different output views based on the selected output name.
This commit is contained in:
ogabrielluiz 2024-06-11 17:27:58 -03:00
commit 0c8e973ccf
3 changed files with 24 additions and 11 deletions

View file

@ -9,19 +9,24 @@ import { Case } from "../../../../../../shared/components/caseComponent";
import TextOutputView from "../../../../../../shared/components/textOutputView";
import useFlowStore from "../../../../../../stores/flowStore";
import ErrorOutput from "./components";
export default function SwitchOutputView(nodeId): JSX.Element {
const nodeIdentity = nodeId.nodeId;
// Define the props type
interface SwitchOutputViewProps {
nodeId: string;
outputName: string;
}
const SwitchOutputView: React.FC<SwitchOutputViewProps> = ({
nodeId,
outputName,
}) => {
const nodes = useFlowStore((state) => state.nodes);
const flowPool = useFlowStore((state) => state.flowPool);
const node = nodes.find((node) => node?.id === nodeIdentity);
const node = nodes.find((node) => node?.id === nodeId);
const flowPoolNode = (flowPool[nodeIdentity] ?? [])[
(flowPool[nodeIdentity]?.length ?? 1) - 1
const flowPoolNode = (flowPool[nodeId] ?? [])[
(flowPool[nodeId]?.length ?? 1) - 1
];
const results = flowPoolNode?.data?.logs[0] ?? "";
const results = flowPoolNode?.data?.logs[outputName] ?? "";
const resultType = results?.type;
let resultMessage = results?.message;
const RECORD_TYPES = ["record", "object", "array", "message"];
@ -73,4 +78,6 @@ export default function SwitchOutputView(nodeId): JSX.Element {
</Case>
</>
);
}
};
export default SwitchOutputView;

View file

@ -2,7 +2,12 @@ import { Button } from "../../../../components/ui/button";
import BaseModal from "../../../../modals/baseModal";
import SwitchOutputView from "./components/switchOutputView";
export default function OutputModal({ open, setOpen, nodeId }): JSX.Element {
export default function OutputModal({
open,
setOpen,
nodeId,
outputName,
}): JSX.Element {
return (
<BaseModal open={open} setOpen={setOpen} size="medium-tall">
<BaseModal.Header description="Inspect the output of the component below.">
@ -11,7 +16,7 @@ export default function OutputModal({ open, setOpen, nodeId }): JSX.Element {
</div>
</BaseModal.Header>
<BaseModal.Content>
<SwitchOutputView nodeId={nodeId} />
<SwitchOutputView nodeId={nodeId} outputName={outputName} />
</BaseModal.Content>
<BaseModal.Footer>
<div className="flex w-full justify-end pt-2">

View file

@ -625,6 +625,7 @@ export default function ParameterComponent({
open={openOutputModal}
nodeId={data.id}
setOpen={setOpenOutputModal}
outputName={outputName}
/>
)}
</>