@@ -19,8 +19,8 @@ export interface SvgImageProps {
19
19
}
20
20
21
21
function SvgImage ( props : SvgImageProps ) {
22
- const { data, style = [ ] , tintColor, width, height, ...others } = props ;
23
- const [ className ] = useState ( `svg-${ new Date ( ) . getTime ( ) . toString ( ) } ` ) ;
22
+ const { id , data, style = [ ] , tintColor, width, height, ...others } = props ;
23
+ const [ className ] = useState ( `svg-${ id ? id : new Date ( ) . getTime ( ) . toString ( ) } ` ) ;
24
24
const [ svgStyleCss , setSvgStyleCss ] = useState < string | undefined > ( undefined ) ;
25
25
26
26
useEffect ( ( ) => {
@@ -30,8 +30,8 @@ function SvgImage(props: SvgImageProps) {
30
30
postcss ( )
31
31
. process ( { width, height, ...styleObj } , { parser : cssjs } )
32
32
. then ( ( style : { css : any } ) => {
33
- const svgPathCss = styleObj ?. tintColor ? `. ${ className } > svg path {fill: ${ styleObj ?. tintColor } }` : '' ;
34
- setSvgStyleCss ( `.${ className } > svg {${ style . css } } ${ svgPathCss } }` ) ;
33
+ const svgPathCss = styleObj ?. tintColor ? `path {fill: ${ styleObj ?. tintColor } }` : '' ;
34
+ setSvgStyleCss ( `.${ className } > svg {${ style . css } ; ${ svgPathCss } }` ) ;
35
35
} ) ;
36
36
}
37
37
} , [ style , className , width , height ] ) ;
@@ -54,8 +54,12 @@ function SvgImage(props: SvgImageProps) {
54
54
} else if ( data && svgStyleCss ) {
55
55
const svgStyleTag = `<style> ${ svgStyleCss } </style>` ;
56
56
return (
57
- < div
58
- { ...others }
57
+ < div
58
+ style = { {
59
+ display : 'flex' ,
60
+ justifyContent : 'center' ,
61
+ flexShrink : 0
62
+ } }
59
63
className = { className }
60
64
// eslint-disable-next-line react/no-danger
61
65
dangerouslySetInnerHTML = { { __html : svgStyleTag + data } }
0 commit comments