fix: preview en tiempo real de firma Topaz en modal

Usar GetSigImageB64 en el poll para actualizar el canvas del overlay
cada vez que cambia el número de puntos. SigImage/0 (SigWebRefresh)
solo devuelve el trazo actual; SigImage/1 acumula toda la firma.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Lizandro Guarnizo
2026-07-22 21:45:25 -05:00
co-authored by Claude Sonnet 4.6
parent 719f27d863
commit 136b123cc0
2 changed files with 36 additions and 2 deletions
+18 -1
View File
@@ -1321,13 +1321,30 @@ const topaz = (() => {
$('topaz-pts').textContent = '0';
_setStatus('Firme en el pad biométrico', false);
let _lastPts = -1;
_poll = setInterval(() => {
try {
const pts = NumberOfTabletPoints();
$('topaz-pts').textContent = pts;
const hasSig = pts > 0;
$('topaz-btn-aceptar').disabled = !hasSig;
if (hasSig) _setStatus('✅ Firma detectada — presione Aceptar', true);
if (hasSig) {
_setStatus('✅ Firma detectada — presione Aceptar', true);
if (pts !== _lastPts) {
_lastPts = pts;
GetSigImageB64(function(b64) {
if (!b64) return;
const img = new Image();
img.onload = () => {
const cv = document.getElementById('topaz-canvas');
const cx = cv.getContext('2d');
cx.clearRect(0, 0, cv.width, cv.height);
cx.drawImage(img, 0, 0, cv.width, cv.height);
};
img.src = 'data:image/png;base64,' + b64;
});
}
}
} catch(e) { _stopPoll(); }
}, 400);
}
+18 -1
View File
@@ -2603,12 +2603,29 @@ const topaz = (() => {
document.getElementById('topaz-pts').textContent = '0';
_setStatus('Firme en el pad biométrico', false);
let _lastPts = -1;
_poll = setInterval(() => {
try {
const pts = NumberOfTabletPoints();
document.getElementById('topaz-pts').textContent = pts;
document.getElementById('topaz-btn-aceptar').disabled = pts === 0;
if (pts > 0) _setStatus('✅ Firma detectada — presione Aceptar', true);
if (pts > 0) {
_setStatus('✅ Firma detectada — presione Aceptar', true);
if (pts !== _lastPts) {
_lastPts = pts;
GetSigImageB64(function(b64) {
if (!b64) return;
const img = new Image();
img.onload = () => {
const cv = document.getElementById('topaz-canvas');
const cx = cv.getContext('2d');
cx.clearRect(0, 0, cv.width, cv.height);
cx.drawImage(img, 0, 0, cv.width, cv.height);
};
img.src = 'data:image/png;base64,' + b64;
});
}
}
} catch(e) { _stopPoll(); }
}, 400);
}