import { useTranslation } from 'react-i18next'; import { useToolOperation, ToolType } from '../shared/useToolOperation'; import { createStandardErrorHandler } from '../../../utils/toolErrorHandler'; import { RotateParameters, defaultParameters, normalizeAngle } from './useRotateParameters'; // Static configuration that can be used by both the hook and automation executor export const buildRotateFormData = (parameters: RotateParameters, file: File): FormData => { const formData = new FormData(); formData.append("fileInput", file); // Normalize angle for backend (0, 90, 180, 270) formData.append("angle", normalizeAngle(parameters.angle).toString()); return formData; }; // Static configuration object export const rotateOperationConfig = { toolType: ToolType.singleFile, buildFormData: buildRotateFormData, operationType: 'rotate', endpoint: '/api/v1/general/rotate-pdf', defaultParameters, } as const; export const useRotateOperation = () => { const { t } = useTranslation(); return useToolOperation({ ...rotateOperationConfig, getErrorMessage: createStandardErrorHandler(t('rotate.error.failed', 'An error occurred while rotating the PDF.')) }); };