diff --git a/.gitignore b/.gitignore index a45496a..5fa7951 100644 --- a/.gitignore +++ b/.gitignore @@ -50,3 +50,4 @@ packages/db/prisma/migrations/migration_lock.toml apps/http-backend/tsconfig.tsbuildinfo packages/common/tsconfig.tsbuildinfo packages/db/tsconfig.tsbuildinfo +apps/http-backend/tsconfig.tsbuildinfo diff --git a/apps/http-backend/src/routes/userRoutes/userRoutes.ts b/apps/http-backend/src/routes/userRoutes/userRoutes.ts index cbc4df0..50664ab 100644 --- a/apps/http-backend/src/routes/userRoutes/userRoutes.ts +++ b/apps/http-backend/src/routes/userRoutes/userRoutes.ts @@ -372,8 +372,20 @@ router.get( userId: userId, }, include: { - Trigger: true, - nodes: { orderBy: { stage: "asc" } }, + Trigger: { + include: { + triggerType: { + select:{icon : true} + } + } + }, + nodes: { orderBy: { stage: "asc" }, + include: { + AvailableNode: { + select: { icon: true} + } + } + }, }, }); if (!getWorkflow) { @@ -381,9 +393,22 @@ router.get( message: "Workflow Not found or not authorized", }); } + const workflow = { + ...getWorkflow, + Trigger: getWorkflow.Trigger ? { + ...getWorkflow.Trigger, + icon: getWorkflow.Trigger.triggerType.icon || null, + AvailableTrigger: undefined + } : null, + nodes: getWorkflow.nodes.map(node=> ({ + ...node, + icon: node.AvailableNode.icon || null, + AvailableNode: undefined + })) + } return res.status(statusCodes.OK).json({ message: "workflow Fetched succesfully", - Data: getWorkflow, + Data: workflow, }); } catch (error: any) { console.log("Error Fetching the workflow ", error.message); diff --git a/apps/http-backend/tsconfig.tsbuildinfo b/apps/http-backend/tsconfig.tsbuildinfo deleted file mode 100644 index ea011f3..0000000 --- a/apps/http-backend/tsconfig.tsbuildinfo +++ /dev/null @@ -1 +0,0 @@ -{"root":["./src/index.ts","./src/routes/google_callback.ts","./src/routes/sheet.routes.ts","./src/routes/userRoutes/executionRoutes.ts","./src/routes/userRoutes/userMiddleware.ts","./src/routes/userRoutes/userRoutes.ts","./src/scheduler/token-scheduler.ts","./src/services/token-refresh.service.ts"],"version":"5.7.3"} \ No newline at end of file diff --git a/apps/web/app/components/Actions/ActionSidebar.tsx b/apps/web/app/components/Actions/ActionSidebar.tsx index 8a38629..fc64e83 100644 --- a/apps/web/app/components/Actions/ActionSidebar.tsx +++ b/apps/web/app/components/Actions/ActionSidebar.tsx @@ -60,7 +60,9 @@ export const ActionSideBar = ({ isOpen, onClose, onSelectAction }: SideBarProps) {availableActions.length ? ( availableActions.map((action: any) => ( - {'icon' in action && action.icon ? action.icon : '⚡'} {action.name} +
+ {'icon' in action && action.icon ? : '⚡'} {action.name} +
)) ) : ( diff --git a/apps/web/app/components/nodes/BaseNode.tsx b/apps/web/app/components/nodes/BaseNode.tsx index ad90be6..8cf1869 100644 --- a/apps/web/app/components/nodes/BaseNode.tsx +++ b/apps/web/app/components/nodes/BaseNode.tsx @@ -89,15 +89,21 @@ export default function BaseNode({ id, type, data }: BaseNodeProps) { } return ( -
+
{/* Icon + Label */} -
- {icon || "📦"} +
+ + { icon ? + : ("⚡")} + + {label}
+
{data.isConfigured ? ( - + ✓ Configured ) : ( @@ -105,15 +111,16 @@ export default function BaseNode({ id, type, data }: BaseNodeProps) { Not Configured )} +
{/* Buttons */}
{onConfigure && ( )} {onTest && ( @@ -121,7 +128,7 @@ export default function BaseNode({ id, type, data }: BaseNodeProps) { onClick={onTest} className="text-xs px-2 py-1 bg-blue-100 rounded hover:bg-blue-200" > - ▶️ Test + )}
diff --git a/apps/web/app/components/nodes/TriggerSidebar.tsx b/apps/web/app/components/nodes/TriggerSidebar.tsx index 9764e3d..f25feef 100644 --- a/apps/web/app/components/nodes/TriggerSidebar.tsx +++ b/apps/web/app/components/nodes/TriggerSidebar.tsx @@ -54,7 +54,9 @@ export const TriggerSideBar = ({ isOpen, onClose, onSelectTrigger }: SideBarPro {triggers.map((trigger) => ( {/* Display a placeholder icon if 'icon' is missing */} - {"icon" in trigger ? (trigger as any).icon : "⚡"} {trigger.name} +
+ {'icon' in trigger && trigger.icon ? : '⚡'} {trigger.name} +
))} diff --git a/apps/web/app/components/ui/variable-panel.tsx b/apps/web/app/components/ui/variable-panel.tsx index 149f538..3de49f1 100644 --- a/apps/web/app/components/ui/variable-panel.tsx +++ b/apps/web/app/components/ui/variable-panel.tsx @@ -80,7 +80,7 @@ export function VariablePanel({ previousNodes, onInsert, activeField }: Variable {/* Node Header */}
- {node.icon || "⚙️"} + {node.nodeName}
{isTested && ( diff --git a/apps/web/app/hooks/useAutoSave.ts b/apps/web/app/hooks/useAutoSave.ts index 9af0360..b18fbdb 100644 --- a/apps/web/app/hooks/useAutoSave.ts +++ b/apps/web/app/hooks/useAutoSave.ts @@ -65,7 +65,9 @@ export function useAutoSave(workflowId: string){ const { isChanged } = store.getState().workflow if(isChanged.edges || isChanged.nodes || isChanged.trigger){ e.preventDefault() - batchSave(); + // batchSave(); + e.returnValue = true; + return true } } diff --git a/apps/web/app/workflows/[id]/components/ConfigModal.tsx b/apps/web/app/workflows/[id]/components/ConfigModal.tsx index c19418b..e7b1ec2 100644 --- a/apps/web/app/workflows/[id]/components/ConfigModal.tsx +++ b/apps/web/app/workflows/[id]/components/ConfigModal.tsx @@ -23,7 +23,6 @@ interface ConfigModalProps { isOpen: boolean; selectedNode: any | null; onClose: () => void; - // onSave: (selectedNode: string, config: any, userId: string) => Promise; workflowId?: string; previousNodes: PreviousNodeOutput[]; } @@ -32,7 +31,6 @@ export default function ConfigModal({ isOpen, selectedNode, onClose, - // onSave, workflowId, previousNodes, }: ConfigModalProps) { @@ -407,28 +405,18 @@ export default function ConfigModal({ return (
+ className="fixed inset-0 flex gap-2 items-center justify-between z-50 p-4 bg-white/80">
+ className="rounded-lg shadow-xl max-w-md m-10 w-full h-[90%] overflow-y-scroll py-2 flex flex-col bg-black/80 "> {/* Header */}
-

- Configure {selectedNode.name} +

+ {selectedNode.name}

- + }
- {/* */} +