added more clue buttons and positioned them correctly, need to fix elapsed timer on clue page....

Error handling with clues improved.
This commit is contained in:
bobbert committed 2025-03-17 13:30:49 +00:00
1 parent 8a06fd4966
commit 4fa0419ba9
2 files changed
+16 -11

No files matched your search

BIN
View File
Binary file not shown.
+16 -11
View File
@@ -50,7 +50,7 @@ export default function EnhancedQRScanner({
try {
// Release any stream that might be stored in our ref
if (cameraStreamRef.current) {
cameraStreamRef.current.getTracks().forEach(track => {
cameraStreamRef.current.getTracks().forEach((track) => {
track.stop();
});
cameraStreamRef.current = null;
@@ -58,7 +58,8 @@ export default function EnhancedQRScanner({
}
// Also try to find and release any active video tracks that might be running
navigator.mediaDevices.getUserMedia({ audio: false, video: false })
navigator.mediaDevices
.getUserMedia({ audio: false, video: false })
.catch(() => {
// This intentionally fails but helps release resources in some browsers
});
@@ -185,7 +186,7 @@ export default function EnhancedQRScanner({
releaseCameraResources();
// Add a small delay to ensure resources are properly released
await new Promise(resolve => setTimeout(resolve, 500));
await new Promise((resolve) => setTimeout(resolve, 500));
// Now try to get fresh camera access
const stream = await navigator.mediaDevices.getUserMedia({
@@ -209,7 +210,7 @@ export default function EnhancedQRScanner({
console.error("Failed to get camera permission:", err);
// Increment retry count
setRetryCount(prev => prev + 1);
setRetryCount((prev) => prev + 1);
if (
err.name === "NotAllowedError" ||
@@ -224,9 +225,13 @@ export default function EnhancedQRScanner({
err.name === "TrackStartError" ||
retryCount < 2 // Try a few times before showing hardware error
) {
setError(`Camera temporarily unavailable. Please try again in a few moments.`);
setError(
`Camera temporarily unavailable. Please try again in a few moments.`
);
} else {
setError(`Camera error: ${err.message}. You may need to restart your browser or device.`);
setError(
`Camera error: ${err.message}. You may need to restart your browser or device.`
);
}
}
};
@@ -245,7 +250,10 @@ export default function EnhancedQRScanner({
// Don't immediately deactivate camera on all errors
// Some errors can be temporary
if (error.name === "NotAllowedError" || error.name === "PermissionDeniedError") {
if (
error.name === "NotAllowedError" ||
error.name === "PermissionDeniedError"
) {
setCameraActive(false);
}
@@ -327,10 +335,7 @@ export default function EnhancedQRScanner({
</button>
</div>
) : (
<button
className="retry-button"
onClick={requestCameraAccess}
>
<button className="retry-button" onClick={requestCameraAccess}>
Retry Camera Access
</button>
)}