diff --git a/frontend/src/shared/components/CameraCapture/CameraCapture.tsx b/frontend/src/shared/components/CameraCapture/CameraCapture.tsx index c6bd8e1..d33cad0 100644 --- a/frontend/src/shared/components/CameraCapture/CameraCapture.tsx +++ b/frontend/src/shared/components/CameraCapture/CameraCapture.tsx @@ -151,7 +151,15 @@ export const CameraCapture: React.FC = ({ setCapturedFile(null); setCapturedImageSrc(null); setCaptureState('viewfinder'); - }, [capturedImageSrc]); + + // Re-request camera if stream tracks are no longer active + const isStreamActive = stream?.getVideoTracks().some( + (track) => track.readyState === 'live' + ); + if (!isStreamActive) { + requestPermission(); + } + }, [capturedImageSrc, stream, requestPermission]); const handleCropReset = useCallback(() => { // Just reset crop area, keep the captured image