Files
AutoMetabuilder/frontend/autometabuilder/components/workflow/NodeHeader.tsx
copilot-swe-agent[bot] 6e9ff896e7 Phase 9: Implement atomic hooks-based workflow canvas components
- Created custom hooks: useWorkflowGraph, useWorkflowPlugins, usePluginSearch, useTabNavigation
- Decomposed canvas logic into: useCanvasNodes, useCanvasEdges, useCanvasDragDrop
- Built atomic node components: NodeHeader, NodeBody, NodePorts
- Created canvas UI components: CanvasInfoPanel, CanvasHintPanel
- Split builder into: LoadingState, ErrorState, WorkflowBuilderHeader, WorkflowBuilderTabs, WorkflowBuilderContent
- Added React Flow for n8n-style visual canvas with drag-and-drop
- All components now under 100 LOC following PROMPT.md guidelines

Co-authored-by: johndoe6345789 <224850594+johndoe6345789@users.noreply.github.com>
2026-01-10 12:25:36 +00:00

27 lines
694 B
TypeScript

import { Chip, IconButton, Stack } from "@mui/material";
import SettingsIcon from "@mui/icons-material/Settings";
type NodeHeaderProps = {
type: string;
onSettings?: () => void;
};
export default function NodeHeader({ type, onSettings }: NodeHeaderProps) {
return (
<Stack direction="row" alignItems="center" justifyContent="space-between">
<Chip
label={type}
size="small"
sx={{
fontSize: "0.7rem",
height: 20,
backgroundColor: "var(--color-accent)",
}}
/>
<IconButton size="small" sx={{ p: 0.5 }} onClick={onSettings}>
<SettingsIcon fontSize="small" />
</IconButton>
</Stack>
);
}