1 | import { ActionSheetOptions } from '@expo/react-native-action-sheet';
|
2 | import PropTypes from 'prop-types';
|
3 | import React from 'react';
|
4 | import { Animated, FlatList, StyleProp, TextInput, TextStyle, ViewStyle } from 'react-native';
|
5 | import { LightboxProps } from 'react-native-lightbox-v2';
|
6 | import { Actions, ActionsProps } from './Actions';
|
7 | import { Avatar, AvatarProps } from './Avatar';
|
8 | import Bubble from './Bubble';
|
9 | import { Composer, ComposerProps } from './Composer';
|
10 | import { Day, DayProps } from './Day';
|
11 | import GiftedAvatar from './GiftedAvatar';
|
12 | import { InputToolbar, InputToolbarProps } from './InputToolbar';
|
13 | import { LoadEarlier, LoadEarlierProps } from './LoadEarlier';
|
14 | import Message from './Message';
|
15 | import MessageContainer from './MessageContainer';
|
16 | import { MessageImage, MessageImageProps } from './MessageImage';
|
17 | import { MessageText, MessageTextProps } from './MessageText';
|
18 | import { IMessage, LeftRightStyle, MessageAudioProps, MessageVideoProps, Reply, User } from './Models';
|
19 | import { QuickRepliesProps } from './QuickReplies';
|
20 | import { Send, SendProps } from './Send';
|
21 | import { SystemMessage, SystemMessageProps } from './SystemMessage';
|
22 | import { Time, TimeProps } from './Time';
|
23 | import * as utils from './utils';
|
24 | export interface GiftedChatProps<TMessage extends IMessage = IMessage> {
|
25 | messageContainerRef?: React.RefObject<FlatList<IMessage>>;
|
26 | textInputRef?: React.RefObject<TextInput>;
|
27 | messages?: TMessage[];
|
28 | isTyping?: boolean;
|
29 | messagesContainerStyle?: StyleProp<ViewStyle>;
|
30 | text?: string;
|
31 | alignTop?: boolean;
|
32 | scrollToBottom?: boolean;
|
33 | scrollToBottomStyle?: StyleProp<ViewStyle>;
|
34 | initialText?: string;
|
35 | placeholder?: string;
|
36 | disableComposer?: boolean;
|
37 | user?: User;
|
38 | locale?: string;
|
39 | timeFormat?: string;
|
40 | dateFormat?: string;
|
41 | loadEarlier?: boolean;
|
42 | isLoadingEarlier?: boolean;
|
43 | showUserAvatar?: boolean;
|
44 | showAvatarForEveryMessage?: boolean;
|
45 | isKeyboardInternallyHandled?: boolean;
|
46 | renderAvatarOnTop?: boolean;
|
47 | inverted?: boolean;
|
48 | imageProps?: Message<TMessage>['props'];
|
49 | lightboxProps?: LightboxProps;
|
50 | bottomOffset?: number;
|
51 | minInputToolbarHeight?: number;
|
52 | listViewProps?: any;
|
53 | textInputProps?: any;
|
54 | keyboardShouldPersistTaps?: any;
|
55 | maxInputLength?: number;
|
56 | forceGetKeyboardHeight?: boolean;
|
57 | alwaysShowSend?: boolean;
|
58 | imageStyle?: StyleProp<ViewStyle>;
|
59 | extraData?: any;
|
60 | minComposerHeight?: number;
|
61 | maxComposerHeight?: number;
|
62 | options?: {
|
63 | [key: string]: any;
|
64 | };
|
65 | optionTintColor?: string;
|
66 | quickReplyStyle?: StyleProp<ViewStyle>;
|
67 | quickReplyTextStyle?: StyleProp<TextStyle>;
|
68 | isCustomViewBottom?: boolean;
|
69 | infiniteScroll?: boolean;
|
70 | timeTextStyle?: LeftRightStyle<TextStyle>;
|
71 | actionSheet?(): {
|
72 | showActionSheetWithOptions: (options: ActionSheetOptions, callback: (i: number) => void) => void;
|
73 | };
|
74 | onPressAvatar?(user: User): void;
|
75 | onLongPressAvatar?(user: User): void;
|
76 | messageIdGenerator?(message?: TMessage): string;
|
77 | onSend?(messages: TMessage[]): void;
|
78 | onLoadEarlier?(): void;
|
79 | renderLoading?(): React.ReactNode;
|
80 | renderLoadEarlier?(props: LoadEarlierProps): React.ReactNode;
|
81 | renderAvatar?: null | ((props: AvatarProps<TMessage>) => React.ReactNode);
|
82 | renderBubble?(props: Bubble<TMessage>['props']): React.ReactNode;
|
83 | renderSystemMessage?(props: SystemMessageProps<TMessage>): React.ReactNode;
|
84 | onPress?(context: any, message: TMessage): void;
|
85 | onLongPress?(context: any, message: TMessage): void;
|
86 | renderUsername?(user: User): React.ReactNode;
|
87 | renderMessage?(message: Message<TMessage>['props']): React.ReactNode;
|
88 | renderMessageText?(messageText: MessageTextProps<TMessage>): React.ReactNode;
|
89 | renderMessageImage?(props: MessageImageProps<TMessage>): React.ReactNode;
|
90 | renderMessageVideo?(props: MessageVideoProps<TMessage>): React.ReactNode;
|
91 | renderMessageAudio?(props: MessageAudioProps<TMessage>): React.ReactNode;
|
92 | renderCustomView?(props: Bubble<TMessage>['props']): React.ReactNode;
|
93 | renderDay?(props: DayProps<TMessage>): React.ReactNode;
|
94 | renderTime?(props: TimeProps<TMessage>): React.ReactNode;
|
95 | renderFooter?(): React.ReactNode;
|
96 | renderChatEmpty?(): React.ReactNode;
|
97 | renderChatFooter?(): React.ReactNode;
|
98 | renderInputToolbar?(props: InputToolbarProps<TMessage>): React.ReactNode;
|
99 | renderComposer?(props: ComposerProps): React.ReactNode;
|
100 | renderActions?(props: ActionsProps): React.ReactNode;
|
101 | renderSend?(props: SendProps<TMessage>): React.ReactNode;
|
102 | renderAccessory?(props: InputToolbarProps<TMessage>): React.ReactNode;
|
103 | onPressActionButton?(): void;
|
104 | onInputTextChanged?(text: string): void;
|
105 | parsePatterns?(linkStyle: TextStyle): any;
|
106 | onQuickReply?(replies: Reply[]): void;
|
107 | renderQuickReplies?(quickReplies: QuickRepliesProps<TMessage>): React.ReactNode;
|
108 | renderQuickReplySend?(): React.ReactNode;
|
109 | scrollToBottomComponent?(): React.ReactNode;
|
110 | shouldUpdateMessage?(props: Message<TMessage>['props'], nextProps: Message<TMessage>['props']): boolean;
|
111 | }
|
112 | export interface GiftedChatState<TMessage extends IMessage = IMessage> {
|
113 | isInitialized: boolean;
|
114 | composerHeight?: number;
|
115 | messagesContainerHeight?: number | Animated.Value;
|
116 | typingDisabled: boolean;
|
117 | text?: string;
|
118 | messages?: TMessage[];
|
119 | }
|
120 | declare function GiftedChat<TMessage extends IMessage = IMessage>(props: GiftedChatProps): JSX.Element;
|
121 | declare namespace GiftedChat {
|
122 | var propTypes: {
|
123 | messages: PropTypes.Requireable<(object | null | undefined)[]>;
|
124 | messagesContainerStyle: PropTypes.Requireable<number | boolean | object>;
|
125 | text: PropTypes.Requireable<string>;
|
126 | initialText: PropTypes.Requireable<string>;
|
127 | placeholder: PropTypes.Requireable<string>;
|
128 | disableComposer: PropTypes.Requireable<boolean>;
|
129 | messageIdGenerator: PropTypes.Requireable<(...args: any[]) => any>;
|
130 | user: PropTypes.Requireable<object>;
|
131 | onSend: PropTypes.Requireable<(...args: any[]) => any>;
|
132 | locale: PropTypes.Requireable<string>;
|
133 | timeFormat: PropTypes.Requireable<string>;
|
134 | dateFormat: PropTypes.Requireable<string>;
|
135 | isKeyboardInternallyHandled: PropTypes.Requireable<boolean>;
|
136 | loadEarlier: PropTypes.Requireable<boolean>;
|
137 | onLoadEarlier: PropTypes.Requireable<(...args: any[]) => any>;
|
138 | isLoadingEarlier: PropTypes.Requireable<boolean>;
|
139 | renderLoading: PropTypes.Requireable<(...args: any[]) => any>;
|
140 | renderLoadEarlier: PropTypes.Requireable<(...args: any[]) => any>;
|
141 | renderAvatar: PropTypes.Requireable<(...args: any[]) => any>;
|
142 | showUserAvatar: PropTypes.Requireable<boolean>;
|
143 | actionSheet: PropTypes.Requireable<(...args: any[]) => any>;
|
144 | onPressAvatar: PropTypes.Requireable<(...args: any[]) => any>;
|
145 | onLongPressAvatar: PropTypes.Requireable<(...args: any[]) => any>;
|
146 | renderUsernameOnMessage: PropTypes.Requireable<boolean>;
|
147 | renderAvatarOnTop: PropTypes.Requireable<boolean>;
|
148 | isCustomViewBottom: PropTypes.Requireable<boolean>;
|
149 | renderBubble: PropTypes.Requireable<(...args: any[]) => any>;
|
150 | renderSystemMessage: PropTypes.Requireable<(...args: any[]) => any>;
|
151 | onLongPress: PropTypes.Requireable<(...args: any[]) => any>;
|
152 | renderMessage: PropTypes.Requireable<(...args: any[]) => any>;
|
153 | renderMessageText: PropTypes.Requireable<(...args: any[]) => any>;
|
154 | renderMessageImage: PropTypes.Requireable<(...args: any[]) => any>;
|
155 | imageProps: PropTypes.Requireable<object>;
|
156 | videoProps: PropTypes.Requireable<object>;
|
157 | audioProps: PropTypes.Requireable<object>;
|
158 | lightboxProps: PropTypes.Requireable<object>;
|
159 | renderCustomView: PropTypes.Requireable<(...args: any[]) => any>;
|
160 | renderDay: PropTypes.Requireable<(...args: any[]) => any>;
|
161 | renderTime: PropTypes.Requireable<(...args: any[]) => any>;
|
162 | renderFooter: PropTypes.Requireable<(...args: any[]) => any>;
|
163 | renderChatEmpty: PropTypes.Requireable<(...args: any[]) => any>;
|
164 | renderChatFooter: PropTypes.Requireable<(...args: any[]) => any>;
|
165 | renderInputToolbar: PropTypes.Requireable<(...args: any[]) => any>;
|
166 | renderComposer: PropTypes.Requireable<(...args: any[]) => any>;
|
167 | renderActions: PropTypes.Requireable<(...args: any[]) => any>;
|
168 | renderSend: PropTypes.Requireable<(...args: any[]) => any>;
|
169 | renderAccessory: PropTypes.Requireable<(...args: any[]) => any>;
|
170 | onPressActionButton: PropTypes.Requireable<(...args: any[]) => any>;
|
171 | bottomOffset: PropTypes.Requireable<number>;
|
172 | minInputToolbarHeight: PropTypes.Requireable<number>;
|
173 | listViewProps: PropTypes.Requireable<object>;
|
174 | keyboardShouldPersistTaps: PropTypes.Requireable<string>;
|
175 | onInputTextChanged: PropTypes.Requireable<(...args: any[]) => any>;
|
176 | maxInputLength: PropTypes.Requireable<number>;
|
177 | forceGetKeyboardHeight: PropTypes.Requireable<boolean>;
|
178 | inverted: PropTypes.Requireable<boolean>;
|
179 | textInputProps: PropTypes.Requireable<object>;
|
180 | extraData: PropTypes.Requireable<object>;
|
181 | minComposerHeight: PropTypes.Requireable<number>;
|
182 | maxComposerHeight: PropTypes.Requireable<number>;
|
183 | alignTop: PropTypes.Requireable<boolean>;
|
184 | };
|
185 | var append: <TMessage extends IMessage>(currentMessages: TMessage[] | undefined, messages: TMessage[], inverted?: boolean) => TMessage[];
|
186 | var prepend: <TMessage extends IMessage>(currentMessages: TMessage[] | undefined, messages: TMessage[], inverted?: boolean) => TMessage[];
|
187 | }
|
188 | export * from './Models';
|
189 | export { GiftedChat, Actions, Avatar, Bubble, SystemMessage, MessageImage, MessageText, Composer, Day, InputToolbar, LoadEarlier, Message, MessageContainer, Send, Time, GiftedAvatar, utils, };
|