UNPKG

2.43 kBTypeScriptView Raw
1import PropTypes from 'prop-types';
2import React from 'react';
3import { TextProps, StyleProp, ViewStyle, TextStyle } from 'react-native';
4import { LeftRightStyle, IMessage } from './Models';
5export interface MessageTextProps<TMessage extends IMessage> {
6 position: 'left' | 'right';
7 optionTitles?: string[];
8 currentMessage?: TMessage;
9 containerStyle?: LeftRightStyle<ViewStyle>;
10 textStyle?: LeftRightStyle<TextStyle>;
11 linkStyle?: LeftRightStyle<TextStyle>;
12 textProps?: TextProps;
13 customTextStyle?: StyleProp<TextStyle>;
14 parsePatterns?(linkStyle: TextStyle): any;
15}
16export default class MessageText<TMessage extends IMessage = IMessage> extends React.Component<MessageTextProps<TMessage>> {
17 static contextTypes: {
18 actionSheet: PropTypes.Requireable<(...args: any[]) => any>;
19 };
20 static defaultProps: {
21 position: string;
22 optionTitles: string[];
23 currentMessage: {
24 text: string;
25 };
26 containerStyle: {};
27 textStyle: {};
28 linkStyle: {};
29 customTextStyle: {};
30 textProps: {};
31 parsePatterns: () => never[];
32 };
33 static propTypes: {
34 position: PropTypes.Requireable<string>;
35 optionTitles: PropTypes.Requireable<(string | null | undefined)[]>;
36 currentMessage: PropTypes.Requireable<object>;
37 containerStyle: PropTypes.Requireable<PropTypes.InferProps<{
38 left: PropTypes.Requireable<number | boolean | object>;
39 right: PropTypes.Requireable<number | boolean | object>;
40 }>>;
41 textStyle: PropTypes.Requireable<PropTypes.InferProps<{
42 left: PropTypes.Requireable<number | boolean | object>;
43 right: PropTypes.Requireable<number | boolean | object>;
44 }>>;
45 linkStyle: PropTypes.Requireable<PropTypes.InferProps<{
46 left: PropTypes.Requireable<number | boolean | object>;
47 right: PropTypes.Requireable<number | boolean | object>;
48 }>>;
49 parsePatterns: PropTypes.Requireable<(...args: any[]) => any>;
50 textProps: PropTypes.Requireable<object>;
51 customTextStyle: PropTypes.Requireable<number | boolean | object>;
52 };
53 shouldComponentUpdate(nextProps: MessageTextProps<TMessage>): boolean;
54 onUrlPress: (url: string) => void;
55 onPhonePress: (phone: string) => void;
56 onEmailPress: (email: string) => void;
57 render(): JSX.Element;
58}