mirror of
https://github.com/arsvendg/Stirling-PDF.git
synced 2026-07-15 19:10:47 +02:00
Co-authored-by: Copilot <[email protected]> Co-authored-by: James Brunton <[email protected]>
59 lines
2.0 KiB
TypeScript
59 lines
2.0 KiB
TypeScript
import { useTranslation } from 'react-i18next';
|
|
import { useToolOperation, ToolOperationHook, ToolType } from '../shared/useToolOperation';
|
|
import { SignParameters, DEFAULT_PARAMETERS } from './useSignParameters';
|
|
import { createStandardErrorHandler } from '../../../utils/toolErrorHandler';
|
|
|
|
// Static configuration that can be used by both the hook and automation executor
|
|
export const buildSignFormData = (params: SignParameters, file: File): FormData => {
|
|
const formData = new FormData();
|
|
formData.append('fileInput', file);
|
|
|
|
// Add signature data if available
|
|
if (params.signatureData) {
|
|
formData.append('signatureData', params.signatureData);
|
|
}
|
|
|
|
// Add signature position and size
|
|
if (params.signaturePosition) {
|
|
formData.append('x', params.signaturePosition.x.toString());
|
|
formData.append('y', params.signaturePosition.y.toString());
|
|
formData.append('width', params.signaturePosition.width.toString());
|
|
formData.append('height', params.signaturePosition.height.toString());
|
|
formData.append('page', params.signaturePosition.page.toString());
|
|
}
|
|
|
|
// Add signature type
|
|
formData.append('signatureType', params.signatureType || 'draw');
|
|
|
|
// Add other parameters
|
|
if (params.reason) {
|
|
formData.append('reason', params.reason);
|
|
}
|
|
if (params.location) {
|
|
formData.append('location', params.location);
|
|
}
|
|
if (params.signerName) {
|
|
formData.append('signerName', params.signerName);
|
|
}
|
|
|
|
return formData;
|
|
};
|
|
|
|
// Static configuration object
|
|
export const signOperationConfig = {
|
|
toolType: ToolType.singleFile,
|
|
buildFormData: buildSignFormData,
|
|
operationType: 'sign',
|
|
endpoint: '/api/v1/security/add-signature',
|
|
filePrefix: 'signed_',
|
|
defaultParameters: DEFAULT_PARAMETERS,
|
|
} as const;
|
|
|
|
export const useSignOperation = (): ToolOperationHook<SignParameters> => {
|
|
const { t } = useTranslation();
|
|
|
|
return useToolOperation<SignParameters>({
|
|
...signOperationConfig,
|
|
getErrorMessage: createStandardErrorHandler(t('sign.error.failed', 'An error occurred while signing the PDF.'))
|
|
});
|
|
}; |