test
This commit is contained in:
parent
0451ed3205
commit
b54bbd018a
@ -136,6 +136,47 @@ const TimeClockPage = () => {
|
||||
|
||||
useEffect(() => () => stopScanner(), []);
|
||||
|
||||
useEffect(() => {
|
||||
if (!isScanning || !videoRef.current) return undefined;
|
||||
|
||||
let cancelled = false;
|
||||
const reader = new BrowserQRCodeReader();
|
||||
|
||||
const startReader = async () => {
|
||||
try {
|
||||
const controls = await reader.decodeFromConstraints(
|
||||
{ video: { facingMode: { ideal: 'environment' } }, audio: false },
|
||||
videoRef.current,
|
||||
(result) => {
|
||||
if (result && !cancelled) {
|
||||
setScanResult(result.getText());
|
||||
stopScanner();
|
||||
}
|
||||
},
|
||||
);
|
||||
|
||||
if (cancelled) {
|
||||
controls.stop();
|
||||
} else {
|
||||
qrControlsRef.current = controls;
|
||||
}
|
||||
} catch (scannerError) {
|
||||
if (!cancelled) {
|
||||
setError('Impossible d’accéder à la caméra. Vérifiez les permissions et utilisez HTTPS sur le réseau.');
|
||||
console.error(scannerError);
|
||||
stopScanner();
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
startReader();
|
||||
|
||||
return () => {
|
||||
cancelled = true;
|
||||
reader.reset();
|
||||
};
|
||||
}, [isScanning]);
|
||||
|
||||
const startScanner = async () => {
|
||||
setError('');
|
||||
setScanResult('');
|
||||
@ -152,17 +193,6 @@ const TimeClockPage = () => {
|
||||
}
|
||||
|
||||
setIsScanning(true);
|
||||
const reader = new BrowserQRCodeReader();
|
||||
qrControlsRef.current = await reader.decodeFromConstraints(
|
||||
{ video: { facingMode: { ideal: 'environment' } }, audio: false },
|
||||
videoRef.current,
|
||||
(result) => {
|
||||
if (result) {
|
||||
setScanResult(result.getText());
|
||||
stopScanner();
|
||||
}
|
||||
},
|
||||
);
|
||||
} catch (scannerError) {
|
||||
setError('Impossible d’accéder à la caméra. Vérifiez les permissions et utilisez HTTPS sur le réseau.');
|
||||
console.error(scannerError);
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user