/* ┌──────────────────────────────────────────────────────────────────────────────┐ │ @author: Davidson Gomes │ │ @file: /app/agents/workflows/nodes/components/message/MessageNode.tsx │ │ Developed by: Davidson Gomes │ │ Creation date: May 13, 2025 │ │ Contact: contato@evolution-api.com │ ├──────────────────────────────────────────────────────────────────────────────┤ │ @copyright © Evolution API 2025. All rights reserved. │ │ Licensed under the Apache License, Version 2.0 │ │ │ │ You may not use this file except in compliance with the License. │ │ You may obtain a copy of the License at │ │ │ │ http://www.apache.org/licenses/LICENSE-2.0 │ │ │ │ Unless required by applicable law or agreed to in writing, software │ │ distributed under the License is distributed on an "AS IS" BASIS, │ │ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. │ │ See the License for the specific language governing permissions and │ │ limitations under the License. │ ├──────────────────────────────────────────────────────────────────────────────┤ │ @important │ │ For any future changes to the code in this file, it is recommended to │ │ include, together with the modification, the information of the developer │ │ who changed it and the date of modification. │ └──────────────────────────────────────────────────────────────────────────────┘ */ /* eslint-disable no-unused-vars */ /* eslint-disable @typescript-eslint/no-explicit-any */ import { Handle, NodeProps, Position, useEdges } from "@xyflow/react"; import { MessageCircle, Text, Image, File, Video, ArrowRight } from "lucide-react"; import { MessageType, MessageTypeEnum } from "../../nodeFunctions"; import { Badge } from "@/components/ui/badge"; import { cn } from "@/lib/utils"; import { BaseNode } from "../../BaseNode"; export function MessageNode(props: NodeProps) { const { selected, data } = props; const edges = useEdges(); const isExecuting = data.isExecuting as boolean | undefined; const isHandleConnected = (handleId: string) => { return edges.some( (edge) => edge.source === props.id && edge.sourceHandle === handleId ); }; const isBottomHandleConnected = isHandleConnected("bottom-handle"); const message = data.message as MessageType | undefined; const getMessageTypeIcon = (type: string) => { switch (type) { case MessageTypeEnum.TEXT: return ; case "image": return ; case "file": return ; case "video": return