diff --git a/frontend/src/components/tools/certSign/CertSignAutomationSettings.tsx b/frontend/src/components/tools/certSign/CertSignAutomationSettings.tsx new file mode 100644 index 000000000..74da5b745 --- /dev/null +++ b/frontend/src/components/tools/certSign/CertSignAutomationSettings.tsx @@ -0,0 +1,60 @@ +/** + * CertSignAutomationSettings - Used for automation only + * + * This component combines all certificate signing settings into a single step interface + * for use in the automation system. It includes sign mode, certificate format, certificate files, + * and signature appearance settings in one unified component. + */ + +import { Stack } from "@mantine/core"; +import { CertSignParameters } from "../../../hooks/tools/certSign/useCertSignParameters"; +import CertificateTypeSettings from "./CertificateTypeSettings"; +import CertificateFormatSettings from "./CertificateFormatSettings"; +import CertificateFilesSettings from "./CertificateFilesSettings"; +import SignatureAppearanceSettings from "./SignatureAppearanceSettings"; + +interface CertSignAutomationSettingsProps { + parameters: CertSignParameters; + onParameterChange: (key: K, value: CertSignParameters[K]) => void; + disabled?: boolean; +} + +const CertSignAutomationSettings = ({ parameters, onParameterChange, disabled = false }: CertSignAutomationSettingsProps) => { + return ( + + {/* Sign Mode Selection (Manual vs Auto) */} + + + {/* Certificate Format - only show for Manual mode */} + {parameters.signMode === 'MANUAL' && ( + + )} + + {/* Certificate Files - only show for Manual mode */} + {parameters.signMode === 'MANUAL' && ( + + )} + + {/* Signature Appearance Settings */} + + + ); +}; + +export default CertSignAutomationSettings; diff --git a/frontend/src/data/useTranslatedToolRegistry.tsx b/frontend/src/data/useTranslatedToolRegistry.tsx index a37a354f5..00c2035b7 100644 --- a/frontend/src/data/useTranslatedToolRegistry.tsx +++ b/frontend/src/data/useTranslatedToolRegistry.tsx @@ -94,6 +94,7 @@ import ExtractImages from "../tools/ExtractImages"; import ExtractImagesSettings from "../components/tools/extractImages/ExtractImagesSettings"; import ReplaceColorSettings from "../components/tools/replaceColor/ReplaceColorSettings"; import AddStampAutomationSettings from "../components/tools/addStamp/AddStampAutomationSettings"; +import CertSignAutomationSettings from "../components/tools/certSign/CertSignAutomationSettings"; const showPlaceholderTools = true; // Show all tools; grey out unavailable ones in UI @@ -223,7 +224,7 @@ export function useFlatToolRegistry(): ToolRegistry { maxFiles: -1, endpoints: ["cert-sign"], operationConfig: certSignOperationConfig, - automationSettings: CertificateTypeSettings, //TODO:: not all settings shown + automationSettings: CertSignAutomationSettings, }, sign: { icon: , diff --git a/frontend/src/hooks/tools/automate/useAutomationForm.ts b/frontend/src/hooks/tools/automate/useAutomationForm.ts index b6e14e93a..4b5dc7b5d 100644 --- a/frontend/src/hooks/tools/automate/useAutomationForm.ts +++ b/frontend/src/hooks/tools/automate/useAutomationForm.ts @@ -2,7 +2,7 @@ import { useState, useEffect, useCallback } from 'react'; import { useTranslation } from 'react-i18next'; import { AutomationTool, AutomationConfig, AutomationMode } from '../../../types/automation'; import { AUTOMATION_CONSTANTS } from '../../../constants/automation'; -import { ToolRegistry, isValidToolId } from '../../../data/toolsTaxonomy'; +import { ToolRegistry } from '../../../data/toolsTaxonomy'; import { ToolId } from 'src/types/toolId'; @@ -71,9 +71,9 @@ export function useAutomationForm({ mode, existingAutomation, toolRegistry }: Us }, [mode, existingAutomation, t, getToolName]); const addTool = (operation: string) => { - const toolEntry = toolRegistry[operation]; + const toolEntry = toolRegistry[operation as ToolId]; // If tool has no settingsComponent, it's automatically configured - const isConfigured = !toolEntry?.settingsComponent; + const isConfigured = !toolEntry?.automationSettings; const newTool: AutomationTool = { id: `${operation}-${Date.now()}`,