Allow displaying an SVG logo using svg source #207
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Problem
In current version of this library only image assets (like
*.png
and other raster images) can be used as a logo image within QR code. Using an SVG asset for the logo is not possible.Solution
This PR tries to make it possible to use svgs in said logo image.
I have not found any reasonable way to do this via a single
logo
prop, as there is no React component that could accept eitherImageSourcePropType
or anSVG
and handle every case correctly. Some conditional logic is required to handle the svg prop, thats why I decided to add it as a new prop, while the old logo prop will work unchanged.That makes this new functionality backwards compatible. If you won't use new
logoSVG
prop - the library will work as it used to.Done
logoSVG
prop that accepts an svg and will render itlogoColor
prop to set thefill
property of the svg logo"<svg ....>"
@svgr/webpack
- which allows one to load SVGs directly usingimport
and webpack will handle them by transforming into functional component that returns na svgImage
fromreact-native-svg
react-native-svg
which will handle all these casesExamples
ios and android
web