mirror of
https://github.com/zoriya/react-native-svg.git
synced 2025-12-06 07:06:11 +00:00
perf: optimize handling of font properties in G elements
This commit is contained in:
@@ -155,13 +155,9 @@ exports[`supports CSS in style element 1`] = `
|
||||
</svg>"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
>
|
||||
<RNSVGGroup
|
||||
font={Object {}}
|
||||
>
|
||||
<RNSVGGroup>
|
||||
<RNSVGDefs />
|
||||
<RNSVGGroup
|
||||
font={Object {}}
|
||||
>
|
||||
<RNSVGGroup>
|
||||
<RNSVGRect
|
||||
fill={4294901760}
|
||||
height={200}
|
||||
@@ -179,9 +175,7 @@ exports[`supports CSS in style element 1`] = `
|
||||
y={0}
|
||||
/>
|
||||
</RNSVGGroup>
|
||||
<RNSVGGroup
|
||||
font={Object {}}
|
||||
>
|
||||
<RNSVGGroup>
|
||||
<RNSVGRect
|
||||
fill={4294901760}
|
||||
fillOpacity={0.3}
|
||||
|
||||
@@ -24,16 +24,24 @@ export default class G<P> extends Shape<P> {
|
||||
render() {
|
||||
const { props } = this;
|
||||
const prop = propsAndStyles(props);
|
||||
const extractedProps = extractProps(prop, this);
|
||||
const font = extractFont(prop);
|
||||
if (hasProps(font)) {
|
||||
extractedProps.font = font;
|
||||
}
|
||||
return (
|
||||
<RNSVGGroup
|
||||
ref={this.refMethod}
|
||||
{...extractProps(prop, this)}
|
||||
font={extractFont(prop)}
|
||||
>
|
||||
<RNSVGGroup ref={this.refMethod} {...extractedProps}>
|
||||
{props.children}
|
||||
</RNSVGGroup>
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
const hasProps = (obj: {}) => {
|
||||
for (let _ in obj) {
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
};
|
||||
|
||||
export const RNSVGGroup = requireNativeComponent('RNSVGGroup');
|
||||
|
||||
Reference in New Issue
Block a user