Functionality is OK, but using the client actions versus the button somehow generates vastly different capabilities on a PWA. This doesn't make sense to me, but my testing indicates it is consistently true. If I use the included button block, the scanner rapidly and successfully reads codes. If I use the client action with my own button, scanning is very difficult. I am not sure why this is the case, as I've investigated the barcode scanner module and it appears they use the same scan mechanism.
Additionally, please allow for applying custom classes for the button. Without this, combined with the above limitation, it's not possible to modify the button.