// imports import yaml from 'yaml'; import React, { useEffect, useState } from 'react'; // icons import Tooltip from '../../../Tooltip'; import Loading from '../../../Loading'; import ApiSignal from '../../../../signals/Api'; import ButtonIcon from '../../../Button/Icon'; import { useSignal } from '../../../../signal'; import { ComponentsSignal } from '../../../../signals/Nodes'; import { IconTrash, IconRefresh } from '@chirper/react/src/icons'; /** * component studio messages * * @param props * @returns */ const ComponentWorkflowChatItem = (props = {}) => { // signals const [api] = useSignal(ApiSignal); const [components] = useSignal(ComponentsSignal); // retrying const [retrying, setRetrying] = useState(false); // parse nodes const [nodes, setNodes] = useState([]); // use effect useEffect(() => { setNodes(yaml.parse(props.item?.value || props.workflow?.commit?.value || '[]')); }, [props.item?.value, props.workflow?.commit?.value]); /** * on retry */ const onRetry = () => { // retrying setRetrying(true); // retry props.onRetry(props.item).then(() => { // retrying setRetrying(false); }).catch(() => { // retrying setRetrying(false); }); }; // return messages return (