UNPKG

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