Cert sign automation settings

This commit is contained in:
Connor Yoh 2025-10-01 14:06:21 +01:00
parent 61f7e29d40
commit b5fc9fe7b9
3 changed files with 65 additions and 4 deletions

View File

@ -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: <K extends keyof CertSignParameters>(key: K, value: CertSignParameters[K]) => void;
disabled?: boolean;
}
const CertSignAutomationSettings = ({ parameters, onParameterChange, disabled = false }: CertSignAutomationSettingsProps) => {
return (
<Stack gap="lg">
{/* Sign Mode Selection (Manual vs Auto) */}
<CertificateTypeSettings
parameters={parameters}
onParameterChange={onParameterChange}
disabled={disabled}
/>
{/* Certificate Format - only show for Manual mode */}
{parameters.signMode === 'MANUAL' && (
<CertificateFormatSettings
parameters={parameters}
onParameterChange={onParameterChange}
disabled={disabled}
/>
)}
{/* Certificate Files - only show for Manual mode */}
{parameters.signMode === 'MANUAL' && (
<CertificateFilesSettings
parameters={parameters}
onParameterChange={onParameterChange}
disabled={disabled}
/>
)}
{/* Signature Appearance Settings */}
<SignatureAppearanceSettings
parameters={parameters}
onParameterChange={onParameterChange}
disabled={disabled}
/>
</Stack>
);
};
export default CertSignAutomationSettings;

View File

@ -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: <LocalIcon icon="signature-rounded" width="1.5rem" height="1.5rem" />,

View File

@ -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()}`,