chengkangzai/filament-qrcode-scanner-html5
A Filament form component that adds an HTML5 QR code scanner using the device camera. Scan codes directly in the browser and populate form fields without a native app. Easy to drop into Filament forms for quick, mobile-friendly scanning workflows.
ViewRecord::defaultForm() renders the edit form with ->disabled()).hideWhenFieldDisabled() legitimizes a real ops pattern: a field disabled to stop manual typing but kept in the payload with ->dehydrated(), populated exclusively by scan. That's a product decision (operators must scan, not type) that now has a clean implementation path rather than a hack.$wire.set() unconditionally, so the value changed on screen but the form could never save it. Users read that as "the app lost my scan." Fixing it is a reliability decision, not a cosmetic one — it affects whether floor staff believe the tool.Adopt when:
disabled being styling-only, and affix actions being filtered by isVisible() alone).Look elsewhere when:
Executives: This is a small, low-risk dependency that removes a class of data-entry error and uses hardware staff already carry. The release we're reviewing fixes a trust-damaging bug — scans that appeared to work but silently couldn't be saved — on read-only and view screens. No migration, no config change, no new cost. Recommendation: adopt and pin.
Engineering: v2.1.3 is a non-breaking patch on the 2.x line. It fixes a case where BarcodeScannerAction stayed visible and clickable on a disabled field, because Filament never cascades disabled to affix actions and the modal calls $wire.set() unconditionally. The action now hides itself when its field is disabled, whether set on the field or inherited from its container. New hideWhenFieldDisabled() opts back in for deliberately scan-only fields (disabled for typing, ->dehydrated() into the payload). The guard is implemented by overriding isHidden() rather than calling ->hidden() internally, so a consumer's own ->hidden() condition composes instead of being silently dropped. Upgrade is safe; audit two things — existing ->hidden() conditions on scanner fields, and any scan-only fields that now need the explicit opt-out. Worth a regression test on a disabled view page.
How can I help you explore Laravel packages today?