Includes a refactor to extract/cleanup barcode scan logic from the component to a separate context with a better API.