256ce21522bfaadba7815025bc7046122ee2cfe5
The previous patch called reader.decodeFromCanvas which doesn't exist in @zxing/library 0.21.3. Real methods (verified by grep on the vendored bundle) are: decodeFromVideoElement(el) -- one-shot decodeFromVideoElementContinuously(el, cb) -- continuous loop Switched to the continuous variant. ZXing manages its own per-frame timing internally — we just register the (result, err) callback and React to result.getText() on hits. NotFoundException = no QR this frame, which we silently ignore. Also fixed the related video-play race: ZXing internally registers a 'playing' event listener on the video and then calls play() itself. If we await v.play() ourselves first, the 'playing' event fires BEFORE ZXing attaches its listener and ZXing then waits forever for an event that already happened. Fix: for the zxing path we set attributes + srcObject but do NOT call play(). ZXing's playVideoOnLoadAsync handles play -> playing -> decode in the right order. The native and jsQR paths still pre-play because their loops poll the video themselves. Cleanup: _stopCamera now calls reader.reset() to tear down ZXing's internal state cleanly when the modal closes. Version: shopfloor 19.0.22 -> 19.0.23. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Description
Odoo 19 custom modules
Languages
Python
55.9%
HTML
26.1%
JavaScript
14.9%
SCSS
1.8%
CSS
0.8%
Other
0.4%