Skip to content

Commit bde0319

Browse files
committed
fix: read signature dimensions from capabilities without fallback
Remove invented numeric fallbacks (175/100/350) and double-sanitization from all five components that read signature dimensions from the sign-elements capability block. The dimensions are always populated by the server (required fields in the OpenAPI schema). A zero or absent value should surface as a real error rather than be silently replaced with a made-up constant that only matches one render mode. Signed-off-by: Vitor Mattos <[email protected]>
1 parent 7aa8e25 commit bde0319

5 files changed

Lines changed: 16 additions & 32 deletions

File tree

src/components/Draw/Editor.vue

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -100,12 +100,9 @@ const emit = defineEmits<{
100100
}>()
101101
102102
const capabilities = getCapabilities() as LibresignCapabilities
103-
const signElementsConfig = capabilities.libresign?.config['sign-elements'] ?? {
104-
'signature-width': 0,
105-
'signature-height': 0,
106-
}
107-
const canvasWidth = signElementsConfig['signature-width']
108-
const canvasHeight = signElementsConfig['signature-height']
103+
const signElementsConfig = capabilities.libresign?.config['sign-elements']
104+
const canvasWidth = Number(signElementsConfig?.['signature-width'])
105+
const canvasHeight = Number(signElementsConfig?.['signature-height'])
109106
const color = ref('#000000')
110107
const customPalette = [
111108
'#000000',

src/components/Draw/FileUpload.vue

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -160,10 +160,7 @@ const emit = defineEmits<{
160160
}>()
161161
162162
const capabilities = getCapabilities() as LibresignCapabilities
163-
const signElementsConfig = capabilities.libresign?.config['sign-elements'] ?? {
164-
'signature-width': 0,
165-
'signature-height': 0,
166-
}
163+
const signElementsConfig = capabilities.libresign?.config['sign-elements']
167164
168165
const file = ref<HTMLInputElement | null>(null)
169166
const cropper = ref<CropperInstance | null>(null)
@@ -179,8 +176,8 @@ const zoomLevel = ref(1)
179176
const zoomMin = 0.1
180177
const zoomMax = 8
181178
const zoomStep = 0.1
182-
const stencilBaseWidth = signElementsConfig['signature-width']
183-
const stencilBaseHeight = signElementsConfig['signature-height']
179+
const stencilBaseWidth = Number(signElementsConfig?.['signature-width'])
180+
const stencilBaseHeight = Number(signElementsConfig?.['signature-height'])
184181
185182
const hasImage = computed(() => !!image.value)
186183
const canSave = computed(() => hasImage.value && imageData.value.length > 0)

src/components/Draw/TextInput.vue

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -60,12 +60,9 @@ const emit = defineEmits<{
6060
}>()
6161
6262
const capabilities = getCapabilities() as LibresignCapabilities
63-
const signElementsConfig = capabilities.libresign?.config['sign-elements'] ?? {
64-
'signature-width': 0,
65-
'signature-height': 0,
66-
}
67-
const canvasWidth = signElementsConfig['signature-width']
68-
const canvasHeight = signElementsConfig['signature-height']
63+
const signElementsConfig = capabilities.libresign?.config['sign-elements']
64+
const canvasWidth = Number(signElementsConfig?.['signature-width'])
65+
const canvasHeight = Number(signElementsConfig?.['signature-height'])
6966
const value = ref('')
7067
const modal = ref(false)
7168
const imageData = ref('')

src/components/PreviewSignature/PreviewSignature.vue

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -63,12 +63,9 @@ const loading = ref(true)
6363
const isLoaded = ref(false)
6464
const imageData = ref('')
6565
const capabilities = getCapabilities() as LibresignCapabilities
66-
const signElementsConfig = capabilities.libresign?.config['sign-elements'] ?? {
67-
'signature-width': 0,
68-
'signature-height': 0,
69-
}
70-
const width = ref(`${signElementsConfig['signature-width']}px`)
71-
const height = ref(`${signElementsConfig['signature-height']}px`)
66+
const signElementsConfig = capabilities.libresign?.config['sign-elements']
67+
const width = ref(`${Number(signElementsConfig?.['signature-width'])}px`)
68+
const height = ref(`${Number(signElementsConfig?.['signature-height'])}px`)
7269
7370
function arrayBufferToBase64(data: ArrayBuffer) {
7471
const bytes = new Uint8Array(data)

src/components/Request/VisibleElements.vue

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -459,13 +459,9 @@ const modal = ref(false)
459459
const loading = ref(false)
460460
const signerSelected = ref<SignerSummaryRecord | null>(null)
461461
const capabilities = getCapabilities() as LibresignCapabilities
462-
const signElementsConfig = capabilities.libresign?.config['sign-elements'] ?? {
463-
'is-available': false,
464-
'full-signature-width': 0,
465-
'full-signature-height': 0,
466-
}
467-
const width = ref(signElementsConfig['full-signature-width'])
468-
const height = ref(signElementsConfig['full-signature-height'])
462+
const signElementsConfig = capabilities.libresign?.config['sign-elements']
463+
const width = ref(Number(signElementsConfig?.['full-signature-width']))
464+
const height = ref(Number(signElementsConfig?.['full-signature-height']))
469465
const filePagesMap = ref<Record<number, FilePageInfo>>({})
470466
const elementsLoaded = ref(false)
471467
const fetchedFiles = ref<EditableRequestChildFile[]>([])
@@ -603,7 +599,7 @@ async function showModal() {
603599
if (!canRequestSign.value) {
604600
return
605601
}
606-
if (signElementsConfig['is-available'] === false) {
602+
if (signElementsConfig?.['is-available'] === false) {
607603
return
608604
}
609605
modal.value = true

0 commit comments

Comments
 (0)