import React from "react"; import { useTranslation } from "react-i18next"; import { Title, Stack, Divider } from "@mantine/core"; import AddCircleOutline from "@mui/icons-material/AddCircleOutline"; import SettingsIcon from "@mui/icons-material/Settings"; import AutomationEntry from "./AutomationEntry"; import { useSuggestedAutomations } from "../../../hooks/tools/automate/useSuggestedAutomations"; import { AutomationConfig, SuggestedAutomation } from "../../../types/automation"; import { iconMap } from './iconMap'; import { ToolRegistryEntry } from '../../../data/toolsTaxonomy'; interface AutomationSelectionProps { savedAutomations: AutomationConfig[]; onCreateNew: () => void; onRun: (automation: AutomationConfig) => void; onEdit: (automation: AutomationConfig) => void; onDelete: (automation: AutomationConfig) => void; onCopyFromSuggested: (automation: SuggestedAutomation) => void; toolRegistry: Record; } export default function AutomationSelection({ savedAutomations, onCreateNew, onRun, onEdit, onDelete, onCopyFromSuggested, toolRegistry }: AutomationSelectionProps) { const { t } = useTranslation(); const suggestedAutomations = useSuggestedAutomations(); return (
{t("automate.selection.saved.title", "Saved")} {/* Saved Automations */} {savedAutomations.map((automation) => { const IconComponent = automation.icon ? iconMap[automation.icon as keyof typeof iconMap] : SettingsIcon; return ( typeof op === 'string' ? op : op.operation)} onClick={() => onRun(automation)} showMenu={true} onEdit={() => onEdit(automation)} onDelete={() => onDelete(automation)} toolRegistry={toolRegistry} /> ); })} {/* Suggested Automations */}
{t("automate.selection.suggested.title", "Suggested")} {suggestedAutomations.map((automation) => ( op.operation)} onClick={() => onRun(automation)} showMenu={true} onCopy={() => onCopyFromSuggested(automation)} toolRegistry={toolRegistry} /> ))}
); }