UNPKG

1.25 kBTypeScriptView Raw
1import React, { Component } from 'react';
2import extractText from '../lib/extract/extractText';
3import extractProps, { propsAndStyles } from '../lib/extract/extractProps';
4import extractTransform from '../lib/extract/extractTransform';
5import { TransformProps } from '../lib/extract/types';
6import { pickNotNil } from '../lib/util';
7import Shape from './Shape';
8import './TSpan';
9import { RNSVGText } from './NativeComponents';
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}