1 | import React, { Component } from 'react';
|
2 | import extractProps, { propsAndStyles } from '../lib/extract/extractProps';
|
3 | import extractTransform from '../lib/extract/extractTransform';
|
4 | import extractText, { setTSpan } from '../lib/extract/extractText';
|
5 | import { pickNotNil } from '../lib/util';
|
6 | import Shape from './Shape';
|
7 | import { TransformProps } from '../lib/extract/types';
|
8 | import { RNSVGTSpan } from './NativeComponents';
|
9 |
|
10 | export default class TSpan extends Shape<{}> {
|
11 | static displayName = 'TSpan';
|
12 |
|
13 | setNativeProps = (
|
14 | props: Object & {
|
15 | matrix?: number[];
|
16 | style?: [] | {};
|
17 | } & TransformProps,
|
18 | ) => {
|
19 | const matrix = !props.matrix && extractTransform(props);
|
20 | if (matrix) {
|
21 | props.matrix = matrix;
|
22 | }
|
23 | const prop = propsAndStyles(props);
|
24 | Object.assign(prop, pickNotNil(extractText(prop, false)));
|
25 | this.root && this.root.setNativeProps(prop);
|
26 | };
|
27 |
|
28 | render() {
|
29 | const prop = propsAndStyles(this.props);
|
30 | const props = extractProps(
|
31 | {
|
32 | ...prop,
|
33 | x: null,
|
34 | y: null,
|
35 | },
|
36 | this,
|
37 | );
|
38 | Object.assign(props, extractText(prop, false));
|
39 | props.ref = this.refMethod as (instance: Component | null) => void;
|
40 | return <RNSVGTSpan {...props} />;
|
41 | }
|
42 | }
|
43 |
|
44 | setTSpan(TSpan);
|