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

View file

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

View file

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