@biopassid/signature-sdk-react-native
Version:
BioPass ID Signature SDK React Native module.
182 lines (179 loc) • 5.06 kB
text/typescript
import type { SignatureConfig } from '../config/SignatureConfig';
import { SignatureScreenOrientation } from '../config/SignatureScreenOrientation';
const defaultConfig: SignatureConfig = {
licenseKey: '',
screenOrientation: SignatureScreenOrientation.PORTRAIT,
pencilColor: '#000000',
pencilWidth: 5,
backgroundColor: '#FFFFFF',
overlayColor: '#80000000',
fontFamily: 'signaturesdk_opensans_bold',
titleText: {
enabled: true,
content: 'Captura de assinatura digital',
textColor: '#FFFFFF',
textSize: 20,
},
backButton: {
enabled: true,
backgroundColor: '#00000000',
buttonPadding: 0,
buttonSize: { width: 56, height: 56 },
iconOptions: {
enabled: true,
iconFile: 'signaturesdk_ic_close',
iconColor: '#FFFFFF',
iconSize: { width: 32, height: 32 },
},
labelOptions: {
enabled: false,
content: 'Voltar',
textColor: '#323232',
textSize: 14,
},
},
saveButton: {
enabled: true,
backgroundColor: '#FFFFFF',
buttonPadding: 0,
buttonSize: { width: 56, height: 56 },
iconOptions: {
enabled: true,
iconFile: 'signaturesdk_ic_save',
iconColor: '#323232',
iconSize: { width: 32, height: 32 },
},
labelOptions: {
enabled: false,
content: 'Salvar',
textColor: '#323232',
textSize: 14,
},
},
deleteButton: {
enabled: true,
backgroundColor: '#FFFFFF',
buttonPadding: 0,
buttonSize: { width: 56, height: 56 },
iconOptions: {
enabled: true,
iconFile: 'signaturesdk_ic_delete',
iconColor: '#323232',
iconSize: { width: 32, height: 32 },
},
labelOptions: {
enabled: false,
content: 'Deletar',
textColor: '#323232',
textSize: 14,
},
},
undoButton: {
enabled: true,
backgroundColor: '#FFFFFF',
buttonPadding: 0,
buttonSize: { width: 56, height: 56 },
iconOptions: {
enabled: true,
iconFile: 'signaturesdk_ic_undo',
iconColor: '#323232',
iconSize: { width: 32, height: 32 },
},
labelOptions: {
enabled: false,
content: 'Desfazer',
textColor: '#323232',
textSize: 14,
},
},
};
export function mergeConfigs(config: SignatureConfig): SignatureConfig {
return {
...defaultConfig,
...config,
titleText: {
...defaultConfig.titleText,
...config.titleText,
},
backButton: {
...defaultConfig.backButton,
...config.backButton,
buttonSize: {
...defaultConfig.backButton?.buttonSize,
...config.backButton?.buttonSize,
},
iconOptions: {
...defaultConfig.backButton?.iconOptions,
...config.backButton?.iconOptions,
iconSize: {
...defaultConfig.backButton?.iconOptions?.iconSize,
...config.backButton?.iconOptions?.iconSize,
},
},
labelOptions: {
...defaultConfig.backButton?.labelOptions,
...config.backButton?.labelOptions,
},
},
saveButton: {
...defaultConfig.saveButton,
...config.saveButton,
buttonSize: {
...defaultConfig.saveButton?.buttonSize,
...config.saveButton?.buttonSize,
},
iconOptions: {
...defaultConfig.saveButton?.iconOptions,
...config.saveButton?.iconOptions,
iconSize: {
...defaultConfig.saveButton?.iconOptions?.iconSize,
...config.saveButton?.iconOptions?.iconSize,
},
},
labelOptions: {
...defaultConfig.saveButton?.labelOptions,
...config.saveButton?.labelOptions,
},
},
deleteButton: {
...defaultConfig.deleteButton,
...config.deleteButton,
buttonSize: {
...defaultConfig.deleteButton?.buttonSize,
...config.deleteButton?.buttonSize,
},
iconOptions: {
...defaultConfig.deleteButton?.iconOptions,
...config.deleteButton?.iconOptions,
iconSize: {
...defaultConfig.deleteButton?.iconOptions?.iconSize,
...config.deleteButton?.iconOptions?.iconSize,
},
},
labelOptions: {
...defaultConfig.deleteButton?.labelOptions,
...config.deleteButton?.labelOptions,
},
},
undoButton: {
...defaultConfig.undoButton,
...config.undoButton,
buttonSize: {
...defaultConfig.undoButton?.buttonSize,
...config.undoButton?.buttonSize,
},
iconOptions: {
...defaultConfig.undoButton?.iconOptions,
...config.undoButton?.iconOptions,
iconSize: {
...defaultConfig.undoButton?.iconOptions?.iconSize,
...config.undoButton?.iconOptions?.iconSize,
},
},
labelOptions: {
...defaultConfig.undoButton?.labelOptions,
...config.undoButton?.labelOptions,
},
},
};
}