-
Notifications
You must be signed in to change notification settings - Fork 4.3k
/
Copy pathindex.native.js
50 lines (45 loc) · 954 Bytes
/
index.native.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
/**
* External dependencies
*/
import { Svg } from 'react-native-svg';
/**
* Internal dependencies
*/
import styles from './style.scss';
export {
Circle,
G,
Path,
Polygon,
Rect,
Defs,
RadialGradient,
LinearGradient,
Stop,
} from 'react-native-svg';
export const SVG = ( { className = '', isPressed, ...props } ) => {
const colorScheme = props.colorScheme || 'light';
const stylesFromClasses = className
.split( ' ' )
.map( ( element ) => styles[ element ] )
.filter( Boolean );
const defaultStyle = isPressed
? styles[ 'is-pressed' ]
: styles[ 'components-toolbar__control-' + colorScheme ];
const styleValues = Object.assign(
{},
defaultStyle,
props.style,
...stylesFromClasses
);
const appliedProps = { ...props, style: styleValues };
return (
<Svg
//We want to re-render when style color is changed
key={ appliedProps.style.color }
height="100%"
width="100%"
{ ...appliedProps }
/>
);
};