UNPKG

1.62 kBTypeScriptView Raw
1import PropTypes from 'prop-types';
2import React, { Component } from 'react';
3import { StyleProp, ViewStyle } from 'react-native';
4import { IMessage, Reply } from './Models';
5export interface QuickRepliesProps {
6 nextMessage?: IMessage;
7 currentMessage?: IMessage;
8 color?: string;
9 sendText?: string;
10 quickReplyStyle?: StyleProp<ViewStyle>;
11 onQuickReply?(reply: Reply[]): void;
12 renderQuickReplySend?(): React.ReactNode;
13}
14export interface QuickRepliesState {
15 replies: Reply[];
16}
17export default class QuickReplies extends Component<QuickRepliesProps, QuickRepliesState> {
18 static defaultProps: {
19 currentMessage: {
20 quickReplies: never[];
21 };
22 onQuickReply: () => void;
23 color: string;
24 sendText: string;
25 keepReplies: boolean;
26 renderQuickReplySend: undefined;
27 quickReplyStyle: undefined;
28 };
29 static propTypes: {
30 currentMessage: PropTypes.Validator<object>;
31 onQuickReply: PropTypes.Requireable<(...args: any[]) => any>;
32 color: PropTypes.Requireable<string>;
33 sendText: PropTypes.Requireable<string>;
34 keepReplies: PropTypes.Requireable<boolean>;
35 renderQuickReplySend: PropTypes.Requireable<(...args: any[]) => any>;
36 quickReplyStyle: PropTypes.Requireable<number | boolean | object>;
37 };
38 state: {
39 replies: never[];
40 };
41 handlePress: (reply: Reply) => () => void;
42 handleSend: (replies: Reply[]) => () => void;
43 shouldComponentDisplay: () => boolean;
44 renderQuickReplySend: () => JSX.Element;
45 render(): JSX.Element | null;
46}