import PropTypes from 'prop-types' import { useContext, useState } from 'react' // material-ui import { styled, useTheme } from '@mui/material/styles' import { IconButton, Box, Typography, Divider, Button } from '@mui/material' // project imports import MainCard from 'ui-component/cards/MainCard' import NodeInputHandler from './NodeInputHandler' import NodeOutputHandler from './NodeOutputHandler' import AdditionalParamsDialog from 'ui-component/dialog/AdditionalParamsDialog' // const import { baseURL } from 'store/constant' import { IconTrash, IconCopy } from '@tabler/icons' import { flowContext } from 'store/context/ReactFlowContext' const CardWrapper = styled(MainCard)(({ theme }) => ({ background: theme.palette.card.main, color: theme.darkTextPrimary, border: 'solid 1px', borderColor: theme.palette.primary[200] + 75, width: '300px', height: 'auto', padding: '10px', boxShadow: '0 2px 14px 0 rgb(32 40 45 / 8%)', '&:hover': { borderColor: theme.palette.primary.main } })) // ===========================|| CANVAS NODE ||=========================== // const CanvasNode = ({ data }) => { const theme = useTheme() const { deleteNode, duplicateNode } = useContext(flowContext) const [showDialog, setShowDialog] = useState(false) const [dialogProps, setDialogProps] = useState({}) const onDialogClicked = () => { const dialogProps = { data, inputParams: data.inputParams.filter((param) => param.additionalParams), confirmButtonName: 'Save', cancelButtonName: 'Cancel' } setDialogProps(dialogProps) setShowDialog(true) } return ( <>
Notification
{data.label}
{ duplicateNode(data.id) }} sx={{ height: 35, width: 35, '&:hover': { color: theme?.palette.primary.main } }} color={theme?.customization?.isDarkMode ? theme.colors?.paper : 'inherit'} > { deleteNode(data.id) }} sx={{ height: 35, width: 35, mr: 1, '&:hover': { color: 'red' } }} color={theme?.customization?.isDarkMode ? theme.colors?.paper : 'inherit'} >
{(data.inputAnchors.length > 0 || data.inputParams.length > 0) && ( <> Inputs )} {data.inputAnchors.map((inputAnchor, index) => ( ))} {data.inputParams.map((inputParam, index) => ( ))} {data.inputParams.find((param) => param.additionalParams) && (
param.additionalParams).length === data.inputParams.length + data.inputAnchors.length ? 20 : 0 }} >
)} Output {data.outputAnchors.map((outputAnchor, index) => ( ))}
setShowDialog(false)} > ) } CanvasNode.propTypes = { data: PropTypes.object } export default CanvasNode