UNPKG

1.34 kBTypeScriptView Raw
1import React, { Component } from 'react';
2import { requireNativeComponent } from 'react-native';
3import extractProps, { propsAndStyles } from '../lib/extract/extractProps';
4import extractTransform from '../lib/extract/extractTransform';
5import extractText, { setTSpan } from '../lib/extract/extractText';
6import { pickNotNil } from '../lib/util';
7import Shape from './Shape';
8import { TransformProps } from '../lib/extract/types';
9
10export 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
44setTSpan(TSpan);
45
46export const RNSVGTSpan = requireNativeComponent('RNSVGTSpan');