mirror of
https://github.com/Stirling-Tools/Stirling-PDF.git
synced 2025-09-18 09:29:24 +00:00
58 lines
1.5 KiB
TypeScript
58 lines
1.5 KiB
TypeScript
import { BaseParameters } from '../../../types/parameters';
|
|
import { useBaseParameters, BaseParametersHook } from '../shared/useBaseParameters';
|
|
|
|
export interface ManageSignaturesParameters extends BaseParameters {
|
|
// Certificate signing options
|
|
certType: '' | 'PEM' | 'PKCS12' | 'JKS';
|
|
privateKeyFile?: File;
|
|
certFile?: File;
|
|
p12File?: File;
|
|
jksFile?: File;
|
|
password: string;
|
|
|
|
// Signature appearance options
|
|
showSignature: boolean;
|
|
reason: string;
|
|
location: string;
|
|
name: string;
|
|
pageNumber: number;
|
|
showLogo: boolean;
|
|
}
|
|
|
|
export const defaultParameters: ManageSignaturesParameters = {
|
|
certType: '',
|
|
password: '',
|
|
showSignature: false,
|
|
reason: '',
|
|
location: '',
|
|
name: '',
|
|
pageNumber: 1,
|
|
showLogo: true,
|
|
};
|
|
|
|
export type ManageSignaturesParametersHook = BaseParametersHook<ManageSignaturesParameters>;
|
|
|
|
export const useManageSignaturesParameters = (): ManageSignaturesParametersHook => {
|
|
return useBaseParameters({
|
|
defaultParameters,
|
|
endpointName: 'manage-signatures',
|
|
validateFn: (params) => {
|
|
// Requires certificate type and password
|
|
if (!params.certType || !params.password) {
|
|
return false;
|
|
}
|
|
|
|
// Check for required files based on cert type
|
|
switch (params.certType) {
|
|
case 'PEM':
|
|
return !!(params.privateKeyFile && params.certFile);
|
|
case 'PKCS12':
|
|
return !!params.p12File;
|
|
case 'JKS':
|
|
return !!params.jksFile;
|
|
default:
|
|
return false;
|
|
}
|
|
},
|
|
});
|
|
}; |