Comments (5)
Hmm, yip that's not looking good 😓 Along with that naming change you mentioned, any extra non-documented props are now being applied to the wrapper element, which could be affecting things too.
I'll dig into this later today. There should be a couple ways around this, but I'll need to refresh my brain re styled-components
.
from react-svg.
One way around this is to tweak that CSS you have slightly, so that the svg
element is still being targeted by your styles:
const FilterIcon = styled(ReactSVG)`
& svg {
fill: black;
width: 16px;
height: 16px;
margin-top: 2px;
margin-left: 3px;
}
`;
Keen to hear how this works out for you 🙏
from react-svg.
@tanem thanks for the solution, it works like magic !
to upgrade to this new syntax i have to change lots of code, so is this new syntax be the final syntax in future versions ?
from react-svg.
inspired by your solution, i wrapped ReactSVG in common component :
import React from 'react'
import PropTypes from 'prop-types'
import ReactSVG from 'react-svg'
const NormalImg = ({ className, src, alt }) => (
<img className={className} src={src} alt={alt} />
)
const Img = ({ className, src, alt }) => {
if (/\.(svg)$/i.test(src)) {
return <ReactSVG svgClassName={className} path={src} />
}
return <NormalImg className={className} src={src} alt={alt} />
}
Img.propTypes = {
src: PropTypes.string.isRequired,
alt: PropTypes.string,
className: PropTypes.string,
}
Img.defaultProps = {
alt: 'coderplanets image',
className: '',
}
export default Img
a usage example:
const SearchLogo = styled(Img)`
width: 22px;
height: 22px;
fill: #0098b8;
`
<SearchLogo src={`${ICON_ASSETS}/cmd/search.svg`} />
thanks again @tanem
from react-svg.
You're welcome @mydearxym, glad to hear it's fixed 🎉
To answer your question about API stability, I can't give you a guarantee that this'll be the final version 🙈 However I can say that I consider breaking changes very carefully before actually applying them, and I ensure that if something is a breaking change it'll be tagged as a major version. At least that way you can continue using the older version without your system breaking until you're ready to upgrade.
I like your idea about common components. I would have approached things in a similar way so that you only have to change things in one or very few places in case of a future major version upgrade to ReactSVG
. Nice one 👍
from react-svg.
Related Issues (20)
- Components don't work properly in iframe HOT 4
- <style>-tag inside SVG becomes a page-wide style HOT 2
- Setting color HOT 3
- src prop warning in unit testing react testing library HOT 2
- Re-render of react-svg lost reference HOT 2
- ref type is incompatible HOT 2
- React SVG isn't working, when we give the external source. HOT 2
- wrapper rendered twice HOT 2
- Unit test cases are failing, if i use ReactSVG. HOT 4
- Namespace 'React' has no exported member 'JSX'. HOT 3
- Styling in scss HOT 2
- Doesn't update <use /> tag "href" attribute when `renumerateIRIElements` is true HOT 3
- CORS issue HOT 4
- SVG URL EXTERNAL, How Can I mock!? HOT 2
- ForwardedRef not assignable to ref type
- Make wrapper optional HOT 1
- 'ReactSVG' cannot be used as a JSX component.
- react-svg ssr compatibility with nextJs v14 App router
- A11y | <title> doesn't make an svg screen reader friendly
- Type instantiation is excessively deep and possibly infinite (ts-2589) error with styled-component and typescript setup HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from react-svg.