react-native-gifted-chat 2.0.1 → 2.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/lib/Day.d.ts CHANGED
@@ -1,4 +1,3 @@
1
- /// <reference types="react" />
2
1
  import PropTypes from 'prop-types';
3
2
  import { StyleProp, ViewStyle, TextStyle, TextProps } from 'react-native';
4
3
  import { IMessage } from './Models';
@@ -1,27 +1,26 @@
1
- import PropTypes from 'prop-types';
2
- import React, { RefObject } from 'react';
3
- import { Animated, StyleProp, ViewStyle, FlatList, TextStyle, LayoutChangeEvent } from 'react-native';
4
1
  import { ActionSheetOptions } from '@expo/react-native-action-sheet';
5
- import * as utils from './utils';
2
+ import PropTypes from 'prop-types';
3
+ import React from 'react';
4
+ import { Animated, StyleProp, TextStyle, ViewStyle } from 'react-native';
5
+ import { LightboxProps } from 'react-native-lightbox-v2';
6
6
  import { Actions, ActionsProps } from './Actions';
7
7
  import { Avatar, AvatarProps } from './Avatar';
8
8
  import Bubble from './Bubble';
9
- import { SystemMessage, SystemMessageProps } from './SystemMessage';
10
- import { MessageImage, MessageImageProps } from './MessageImage';
11
- import { MessageText, MessageTextProps } from './MessageText';
12
9
  import { Composer, ComposerProps } from './Composer';
13
10
  import { Day, DayProps } from './Day';
11
+ import GiftedAvatar from './GiftedAvatar';
14
12
  import { InputToolbar, InputToolbarProps } from './InputToolbar';
15
13
  import { LoadEarlier, LoadEarlierProps } from './LoadEarlier';
16
14
  import Message from './Message';
17
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';
18
20
  import { Send, SendProps } from './Send';
21
+ import { SystemMessage, SystemMessageProps } from './SystemMessage';
19
22
  import { Time, TimeProps } from './Time';
20
- import { QuickRepliesProps } from './QuickReplies';
21
- import GiftedAvatar from './GiftedAvatar';
22
- import { IMessage, User, Reply, LeftRightStyle, MessageVideoProps, MessageAudioProps } from './Models';
23
- import { LightboxProps } from 'react-native-lightbox-v2';
24
- import { ActionSheetProviderRef } from '@expo/react-native-action-sheet';
23
+ import * as utils from './utils';
25
24
  export interface GiftedChatProps<TMessage extends IMessage = IMessage> {
26
25
  messages?: TMessage[];
27
26
  isTyping?: boolean;
@@ -116,72 +115,9 @@ export interface GiftedChatState<TMessage extends IMessage = IMessage> {
116
115
  text?: string;
117
116
  messages?: TMessage[];
118
117
  }
119
- declare class GiftedChat<TMessage extends IMessage = IMessage> extends React.Component<GiftedChatProps<TMessage>, GiftedChatState> {
120
- static defaultProps: {
121
- messages: never[];
122
- messagesContainerStyle: undefined;
123
- text: undefined;
124
- placeholder: string;
125
- disableComposer: boolean;
126
- messageIdGenerator: () => string;
127
- user: {};
128
- onSend: () => void;
129
- locale: null;
130
- timeFormat: string;
131
- dateFormat: string;
132
- loadEarlier: boolean;
133
- onLoadEarlier: () => void;
134
- isLoadingEarlier: boolean;
135
- renderLoading: null;
136
- renderLoadEarlier: null;
137
- renderAvatar: undefined;
138
- showUserAvatar: boolean;
139
- actionSheet: null;
140
- onPressAvatar: null;
141
- onLongPressAvatar: null;
142
- renderUsernameOnMessage: boolean;
143
- renderAvatarOnTop: boolean;
144
- renderBubble: null;
145
- renderSystemMessage: null;
146
- onLongPress: null;
147
- renderUserName: null;
148
- renderMessage: null;
149
- renderMessageText: null;
150
- renderMessageImage: null;
151
- renderMessageVideo: null;
152
- renderMessageAudio: null;
153
- imageProps: {};
154
- videoProps: {};
155
- audioProps: {};
156
- lightboxProps: {};
157
- textInputProps: {};
158
- listViewProps: {};
159
- renderCustomView: null;
160
- isCustomViewBottom: boolean;
161
- renderDay: null;
162
- renderTime: null;
163
- renderFooter: null;
164
- renderChatEmpty: null;
165
- renderChatFooter: null;
166
- renderInputToolbar: null;
167
- renderComposer: null;
168
- renderActions: null;
169
- renderSend: null;
170
- renderAccessory: null;
171
- isKeyboardInternallyHandled: boolean;
172
- onPressActionButton: null;
173
- bottomOffset: null;
174
- minInputToolbarHeight: number;
175
- keyboardShouldPersistTaps: string;
176
- onInputTextChanged: null;
177
- maxInputLength: null;
178
- forceGetKeyboardHeight: boolean;
179
- inverted: boolean;
180
- extraData: null;
181
- minComposerHeight: number | undefined;
182
- maxComposerHeight: number;
183
- };
184
- static propTypes: {
118
+ declare function GiftedChat<TMessage extends IMessage = IMessage>(props: GiftedChatProps): JSX.Element;
119
+ declare namespace GiftedChat {
120
+ var propTypes: {
185
121
  messages: PropTypes.Requireable<(object | null | undefined)[]>;
186
122
  messagesContainerStyle: PropTypes.Requireable<number | boolean | object>;
187
123
  text: PropTypes.Requireable<string>;
@@ -244,92 +180,8 @@ declare class GiftedChat<TMessage extends IMessage = IMessage> extends React.Com
244
180
  maxComposerHeight: PropTypes.Requireable<number>;
245
181
  alignTop: PropTypes.Requireable<boolean>;
246
182
  };
247
- static append<TMessage extends IMessage>(currentMessages: TMessage[] | undefined, messages: TMessage[], inverted?: boolean): TMessage[];
248
- static prepend<TMessage extends IMessage>(currentMessages: TMessage[] | undefined, messages: TMessage[], inverted?: boolean): TMessage[];
249
- _isMounted: boolean;
250
- _keyboardHeight: number;
251
- _bottomOffset: number;
252
- _maxHeight?: number;
253
- _isFirstLayout: boolean;
254
- _locale: string;
255
- invertibleScrollViewProps: any;
256
- _actionSheetRef: RefObject<ActionSheetProviderRef>;
257
- _messageContainerRef?: RefObject<FlatList<IMessage>>;
258
- _isTextInputWasFocused: boolean;
259
- textInput?: any;
260
- state: {
261
- isInitialized: boolean;
262
- composerHeight: number | undefined;
263
- messagesContainerHeight: undefined;
264
- typingDisabled: boolean;
265
- text: undefined;
266
- messages: undefined;
267
- };
268
- constructor(props: GiftedChatProps<TMessage>);
269
- componentDidMount(): void;
270
- componentWillUnmount(): void;
271
- componentDidUpdate(prevProps?: GiftedChatProps<TMessage>): void;
272
- initLocale(): void;
273
- setLocale(locale: string): void;
274
- getLocale: () => string;
275
- setTextFromProp(textProp?: string): void;
276
- getTextFromProp(fallback: string): string;
277
- setMessages(messages: TMessage[]): void;
278
- getMessages(): undefined;
279
- setMaxHeight(height: number): void;
280
- getMaxHeight(): number | undefined;
281
- setKeyboardHeight(height: number): void;
282
- getKeyboardHeight(): number;
283
- setBottomOffset(value: number): void;
284
- getBottomOffset(): number;
285
- setIsFirstLayout(value: boolean): void;
286
- getIsFirstLayout(): boolean;
287
- setIsTypingDisabled(value: boolean): void;
288
- getIsTypingDisabled(): boolean;
289
- setIsMounted(value: boolean): void;
290
- getIsMounted(): boolean;
291
- getMinInputToolbarHeight(): number | undefined;
292
- calculateInputToolbarHeight(composerHeight: number): number;
293
- /**
294
- * Returns the height, based on current window size, without taking the keyboard into account.
295
- */
296
- getBasicMessagesContainerHeight(composerHeight?: number | undefined): number;
297
- /**
298
- * Returns the height, based on current window size, taking the keyboard into account.
299
- */
300
- getMessagesContainerHeightWithKeyboard(composerHeight?: number | undefined): number;
301
- /**
302
- * Store text input focus status when keyboard hide to retrieve
303
- * it after wards if needed.
304
- * `onKeyboardWillHide` may be called twice in sequence so we
305
- * make a guard condition (eg. showing image picker)
306
- */
307
- handleTextInputFocusWhenKeyboardHide(): void;
308
- /**
309
- * Refocus the text input only if it was focused before showing keyboard.
310
- * This is needed in some cases (eg. showing image picker).
311
- */
312
- handleTextInputFocusWhenKeyboardShow(): void;
313
- onKeyboardWillShow: (e: any) => void;
314
- onKeyboardWillHide: (_e: any) => void;
315
- onKeyboardDidShow: (e: any) => void;
316
- onKeyboardDidHide: (e: any) => void;
317
- scrollToBottom(animated?: boolean): void;
318
- renderMessages(): JSX.Element;
319
- onSend: (messages?: TMessage[], shouldResetInputToolbar?: boolean) => void;
320
- resetInputToolbar(): void;
321
- focusTextInput(): void;
322
- onInputSizeChanged: (size: {
323
- height: number;
324
- }) => void;
325
- onInputTextChanged: (text: string) => void;
326
- notifyInputTextReset(): void;
327
- onInitialLayoutViewLayout: (e: any) => void;
328
- onMainViewLayout: (e: LayoutChangeEvent) => void;
329
- renderInputToolbar(): React.ReactNode;
330
- renderChatFooter(): React.ReactNode;
331
- renderLoading(): React.ReactNode;
332
- render(): JSX.Element;
183
+ var append: <TMessage extends IMessage>(currentMessages: TMessage[] | undefined, messages: TMessage[], inverted?: boolean) => TMessage[];
184
+ var prepend: <TMessage extends IMessage>(currentMessages: TMessage[] | undefined, messages: TMessage[], inverted?: boolean) => TMessage[];
333
185
  }
334
186
  export * from './Models';
335
187
  export { GiftedChat, Actions, Avatar, Bubble, SystemMessage, MessageImage, MessageText, Composer, Day, InputToolbar, LoadEarlier, Message, MessageContainer, Send, Time, GiftedAvatar, utils, };
package/lib/GiftedChat.js CHANGED
@@ -1,511 +1,362 @@
1
- import PropTypes from 'prop-types';
2
- import React from 'react';
3
- import { Platform, StyleSheet, View, KeyboardAvoidingView, } from 'react-native';
4
1
  import { ActionSheetProvider, } from '@expo/react-native-action-sheet';
5
- import uuid from 'uuid';
6
2
  import dayjs from 'dayjs';
7
3
  import localizedFormat from 'dayjs/plugin/localizedFormat';
8
- import * as utils from './utils';
4
+ import PropTypes from 'prop-types';
5
+ import React, { useEffect, useMemo, useRef, useState } from 'react';
6
+ import { KeyboardAvoidingView, Platform, StyleSheet, View, } from 'react-native';
7
+ import uuid from 'uuid';
9
8
  import { Actions } from './Actions';
10
9
  import { Avatar } from './Avatar';
11
10
  import Bubble from './Bubble';
12
- import { SystemMessage } from './SystemMessage';
13
- import { MessageImage } from './MessageImage';
14
- import { MessageText } from './MessageText';
15
11
  import { Composer } from './Composer';
12
+ import { MAX_COMPOSER_HEIGHT, MIN_COMPOSER_HEIGHT, TEST_ID } from './Constant';
16
13
  import { Day } from './Day';
14
+ import GiftedAvatar from './GiftedAvatar';
15
+ import { GiftedChatContext } from './GiftedChatContext';
17
16
  import { InputToolbar } from './InputToolbar';
18
17
  import { LoadEarlier } from './LoadEarlier';
19
18
  import Message from './Message';
20
19
  import MessageContainer from './MessageContainer';
20
+ import { MessageImage } from './MessageImage';
21
+ import { MessageText } from './MessageText';
21
22
  import { Send } from './Send';
22
- import { GiftedChatContext } from './GiftedChatContext';
23
+ import { SystemMessage } from './SystemMessage';
23
24
  import { Time } from './Time';
24
- import GiftedAvatar from './GiftedAvatar';
25
- import { MIN_COMPOSER_HEIGHT, MAX_COMPOSER_HEIGHT, DEFAULT_PLACEHOLDER, TIME_FORMAT, DATE_FORMAT, TEST_ID, } from './Constant';
25
+ import * as utils from './utils';
26
26
  dayjs.extend(localizedFormat);
27
- class GiftedChat extends React.Component {
28
- constructor(props) {
29
- super(props);
30
- this._isMounted = false;
31
- this._keyboardHeight = 0;
32
- this._bottomOffset = 0;
33
- this._maxHeight = undefined;
34
- this._isFirstLayout = true;
35
- this._locale = 'en';
36
- this.invertibleScrollViewProps = undefined;
37
- this._actionSheetRef = React.createRef();
38
- this._messageContainerRef = React.createRef();
39
- this._isTextInputWasFocused = false;
40
- this.state = {
41
- isInitialized: false,
42
- composerHeight: this.props.minComposerHeight,
43
- messagesContainerHeight: undefined,
44
- typingDisabled: false,
45
- text: undefined,
46
- messages: undefined,
47
- };
48
- this.getLocale = () => this._locale;
49
- this.onKeyboardWillShow = (e) => {
50
- this.handleTextInputFocusWhenKeyboardShow();
51
- if (this.props.isKeyboardInternallyHandled) {
52
- this.setIsTypingDisabled(true);
53
- this.setKeyboardHeight(e.endCoordinates ? e.endCoordinates.height : e.end.height);
54
- this.setBottomOffset(this.props.bottomOffset != null ? this.props.bottomOffset : 1);
55
- const newMessagesContainerHeight = this.getMessagesContainerHeightWithKeyboard();
56
- this.setState({
57
- messagesContainerHeight: newMessagesContainerHeight,
58
- });
59
- }
60
- };
61
- this.onKeyboardWillHide = (_e) => {
62
- this.handleTextInputFocusWhenKeyboardHide();
63
- if (this.props.isKeyboardInternallyHandled) {
64
- this.setIsTypingDisabled(true);
65
- this.setKeyboardHeight(0);
66
- this.setBottomOffset(0);
67
- const newMessagesContainerHeight = this.getBasicMessagesContainerHeight();
68
- this.setState({
69
- messagesContainerHeight: newMessagesContainerHeight,
70
- });
71
- }
72
- };
73
- this.onKeyboardDidShow = (e) => {
74
- if (Platform.OS === 'android') {
75
- this.onKeyboardWillShow(e);
76
- }
77
- this.setIsTypingDisabled(false);
78
- };
79
- this.onKeyboardDidHide = (e) => {
80
- if (Platform.OS === 'android') {
81
- this.onKeyboardWillHide(e);
82
- }
83
- this.setIsTypingDisabled(false);
84
- };
85
- this.onSend = (messages = [], shouldResetInputToolbar = false) => {
86
- if (!Array.isArray(messages)) {
87
- messages = [messages];
88
- }
89
- const newMessages = messages.map(message => {
90
- return {
91
- ...message,
92
- user: this.props.user,
93
- createdAt: new Date(),
94
- _id: this.props.messageIdGenerator && this.props.messageIdGenerator(),
95
- };
96
- });
97
- if (shouldResetInputToolbar === true) {
98
- this.setIsTypingDisabled(true);
99
- this.resetInputToolbar();
100
- }
101
- if (this.props.onSend) {
102
- this.props.onSend(newMessages);
103
- }
104
- if (shouldResetInputToolbar === true) {
105
- setTimeout(() => {
106
- if (this.getIsMounted() === true) {
107
- this.setIsTypingDisabled(false);
108
- }
109
- }, 100);
110
- }
111
- };
112
- this.onInputSizeChanged = (size) => {
113
- const newComposerHeight = Math.max(this.props.minComposerHeight, Math.min(this.props.maxComposerHeight, size.height));
114
- const newMessagesContainerHeight = this.getMessagesContainerHeightWithKeyboard(newComposerHeight);
115
- this.setState({
116
- composerHeight: newComposerHeight,
117
- messagesContainerHeight: newMessagesContainerHeight,
118
- });
119
- };
120
- this.onInputTextChanged = (text) => {
121
- if (this.getIsTypingDisabled()) {
122
- return;
123
- }
124
- if (this.props.onInputTextChanged) {
125
- this.props.onInputTextChanged(text);
126
- }
127
- // Only set state if it's not being overridden by a prop.
128
- if (this.props.text === undefined) {
129
- this.setState({ text });
130
- }
131
- };
132
- this.onInitialLayoutViewLayout = (e) => {
133
- const { layout } = e.nativeEvent;
134
- if (layout.height <= 0) {
135
- return;
136
- }
137
- this.notifyInputTextReset();
138
- this.setMaxHeight(layout.height);
139
- const newComposerHeight = this.props.minComposerHeight;
140
- const newMessagesContainerHeight = this.getMessagesContainerHeightWithKeyboard(newComposerHeight);
141
- const initialText = this.props.initialText || '';
142
- this.setState({
143
- isInitialized: true,
144
- text: this.getTextFromProp(initialText),
145
- composerHeight: newComposerHeight,
146
- messagesContainerHeight: newMessagesContainerHeight,
147
- });
148
- };
149
- this.onMainViewLayout = (e) => {
150
- // TODO: fix an issue when keyboard is dismissing during the initialization
151
- const { layout } = e.nativeEvent;
152
- if (this.getMaxHeight() !== layout.height ||
153
- this.getIsFirstLayout() === true) {
154
- this.setMaxHeight(layout.height);
155
- this.setState({
156
- messagesContainerHeight: this._keyboardHeight > 0
157
- ? this.getMessagesContainerHeightWithKeyboard()
158
- : this.getBasicMessagesContainerHeight(),
159
- });
160
- }
161
- if (this.getIsFirstLayout() === true) {
162
- this.setIsFirstLayout(false);
163
- }
164
- };
165
- this.invertibleScrollViewProps = {
166
- inverted: this.props.inverted,
167
- keyboardShouldPersistTaps: this.props.keyboardShouldPersistTaps,
168
- onKeyboardWillShow: this.onKeyboardWillShow,
169
- onKeyboardWillHide: this.onKeyboardWillHide,
170
- onKeyboardDidShow: this.onKeyboardDidShow,
171
- onKeyboardDidHide: this.onKeyboardDidHide,
172
- };
173
- }
174
- static append(currentMessages = [], messages, inverted = true) {
175
- if (!Array.isArray(messages)) {
176
- messages = [messages];
177
- }
178
- return inverted
179
- ? messages.concat(currentMessages)
180
- : currentMessages.concat(messages);
181
- }
182
- static prepend(currentMessages = [], messages, inverted = true) {
183
- if (!Array.isArray(messages)) {
184
- messages = [messages];
185
- }
186
- return inverted
187
- ? currentMessages.concat(messages)
188
- : messages.concat(currentMessages);
189
- }
190
- componentDidMount() {
191
- const { messages, text } = this.props;
192
- this.setIsMounted(true);
193
- this.initLocale();
194
- this.setMessages(messages || []);
195
- this.setTextFromProp(text);
196
- }
197
- componentWillUnmount() {
198
- this.setIsMounted(false);
199
- }
200
- componentDidUpdate(prevProps = {}) {
201
- const { messages, text, inverted } = this.props;
202
- if (this.props !== prevProps) {
203
- this.setMessages(messages || []);
204
- }
205
- if (inverted === false &&
206
- messages &&
207
- prevProps.messages &&
208
- messages.length !== prevProps.messages.length) {
209
- setTimeout(() => this.scrollToBottom(false), 200);
210
- }
211
- if (text !== prevProps.text) {
212
- this.setTextFromProp(text);
213
- }
214
- }
215
- initLocale() {
216
- if (this.props.locale === null) {
217
- this.setLocale('en');
218
- }
219
- else {
220
- this.setLocale(this.props.locale || 'en');
221
- }
222
- }
223
- setLocale(locale) {
224
- this._locale = locale;
225
- }
226
- setTextFromProp(textProp) {
227
- // Text prop takes precedence over state.
228
- if (textProp !== undefined && textProp !== this.state.text) {
229
- this.setState({ text: textProp });
27
+ function GiftedChat(props) {
28
+ const { messages = [], text = undefined, initialText = '', isTyping, messageIdGenerator = () => uuid.v4(), user = {}, onSend = () => { }, locale = 'en', renderLoading = null, actionSheet = null, textInputProps = {}, renderChatFooter = null, renderInputToolbar = null, renderAccessory = null, isKeyboardInternallyHandled = true, bottomOffset = null, minInputToolbarHeight = 44, keyboardShouldPersistTaps = Platform.select({
29
+ ios: 'never',
30
+ android: 'always',
31
+ default: 'never',
32
+ }), onInputTextChanged = null, maxInputLength = null, forceGetKeyboardHeight = false, inverted = true, minComposerHeight = MIN_COMPOSER_HEIGHT, maxComposerHeight = MAX_COMPOSER_HEIGHT, } = props;
33
+ const isMountedRef = useRef(false);
34
+ const keyboardHeightRef = useRef(0);
35
+ const bottomOffsetRef = useRef(0);
36
+ const maxHeightRef = useRef(undefined);
37
+ const isFirstLayoutRef = useRef(true);
38
+ const actionSheetRef = useRef(null);
39
+ const messageContainerRef = useRef(null);
40
+ let _isTextInputWasFocused = false;
41
+ let textInputRef = useRef();
42
+ const [state, setState] = useState({
43
+ isInitialized: false,
44
+ composerHeight: minComposerHeight,
45
+ messagesContainerHeight: undefined,
46
+ typingDisabled: false,
47
+ text: undefined,
48
+ messages: undefined,
49
+ });
50
+ useEffect(() => {
51
+ isMountedRef.current = true;
52
+ setState({
53
+ ...state,
54
+ messages,
55
+ // Text prop takes precedence over state.
56
+ ...(text !== undefined && text !== state.text && { text: text }),
57
+ });
58
+ if (inverted === false && (messages === null || messages === void 0 ? void 0 : messages.length)) {
59
+ setTimeout(() => scrollToBottom(false), 200);
230
60
  }
231
- }
232
- getTextFromProp(fallback) {
233
- if (this.props.text === undefined) {
61
+ return () => {
62
+ isMountedRef.current = false;
63
+ };
64
+ }, [messages, text]);
65
+ const getTextFromProp = (fallback) => {
66
+ if (text === undefined) {
234
67
  return fallback;
235
68
  }
236
- return this.props.text;
237
- }
238
- setMessages(messages) {
239
- this.setState({ messages });
240
- }
241
- getMessages() {
242
- return this.state.messages;
243
- }
244
- setMaxHeight(height) {
245
- this._maxHeight = height;
246
- }
247
- getMaxHeight() {
248
- return this._maxHeight;
249
- }
250
- setKeyboardHeight(height) {
251
- this._keyboardHeight = height;
252
- }
253
- getKeyboardHeight() {
254
- if (Platform.OS === 'android' && !this.props.forceGetKeyboardHeight) {
69
+ return text;
70
+ };
71
+ const getKeyboardHeight = () => {
72
+ if (Platform.OS === 'android' && !forceGetKeyboardHeight) {
255
73
  // For android: on-screen keyboard resized main container and has own height.
256
74
  // @see https://developer.android.com/training/keyboard-input/visibility.html
257
75
  // So for calculate the messages container height ignore keyboard height.
258
76
  return 0;
259
77
  }
260
- return this._keyboardHeight;
261
- }
262
- setBottomOffset(value) {
263
- this._bottomOffset = value;
264
- }
265
- getBottomOffset() {
266
- return this._bottomOffset;
267
- }
268
- setIsFirstLayout(value) {
269
- this._isFirstLayout = value;
270
- }
271
- getIsFirstLayout() {
272
- return this._isFirstLayout;
273
- }
274
- setIsTypingDisabled(value) {
275
- this.setState({
276
- typingDisabled: value,
277
- });
278
- }
279
- getIsTypingDisabled() {
280
- return this.state.typingDisabled;
281
- }
282
- setIsMounted(value) {
283
- this._isMounted = value;
284
- }
285
- getIsMounted() {
286
- return this._isMounted;
287
- }
288
- getMinInputToolbarHeight() {
289
- return this.props.renderAccessory
290
- ? this.props.minInputToolbarHeight * 2
291
- : this.props.minInputToolbarHeight;
292
- }
293
- calculateInputToolbarHeight(composerHeight) {
294
- return (composerHeight +
295
- (this.getMinInputToolbarHeight() - this.props.minComposerHeight));
296
- }
78
+ return keyboardHeightRef.current;
79
+ };
80
+ const calculateInputToolbarHeight = (composerHeight) => {
81
+ const getMinInputToolbarHeight = renderAccessory
82
+ ? minInputToolbarHeight * 2
83
+ : minInputToolbarHeight;
84
+ return composerHeight + (getMinInputToolbarHeight - minComposerHeight);
85
+ };
297
86
  /**
298
87
  * Returns the height, based on current window size, without taking the keyboard into account.
299
88
  */
300
- getBasicMessagesContainerHeight(composerHeight = this.state.composerHeight) {
301
- return (this.getMaxHeight() - this.calculateInputToolbarHeight(composerHeight));
302
- }
89
+ const getBasicMessagesContainerHeight = (composerHeight = state.composerHeight) => {
90
+ return maxHeightRef.current - calculateInputToolbarHeight(composerHeight);
91
+ };
303
92
  /**
304
93
  * Returns the height, based on current window size, taking the keyboard into account.
305
94
  */
306
- getMessagesContainerHeightWithKeyboard(composerHeight = this.state.composerHeight) {
307
- return (this.getBasicMessagesContainerHeight(composerHeight) -
308
- this.getKeyboardHeight() +
309
- this.getBottomOffset());
310
- }
95
+ const getMessagesContainerHeightWithKeyboard = (composerHeight = state.composerHeight) => {
96
+ return (getBasicMessagesContainerHeight(composerHeight) -
97
+ getKeyboardHeight() +
98
+ bottomOffsetRef.current);
99
+ };
311
100
  /**
312
101
  * Store text input focus status when keyboard hide to retrieve
313
102
  * it after wards if needed.
314
103
  * `onKeyboardWillHide` may be called twice in sequence so we
315
104
  * make a guard condition (eg. showing image picker)
316
105
  */
317
- handleTextInputFocusWhenKeyboardHide() {
106
+ const handleTextInputFocusWhenKeyboardHide = () => {
318
107
  var _a;
319
- if (!this._isTextInputWasFocused) {
320
- this._isTextInputWasFocused = ((_a = this.textInput) === null || _a === void 0 ? void 0 : _a.isFocused()) || false;
108
+ if (!_isTextInputWasFocused) {
109
+ _isTextInputWasFocused = ((_a = textInputRef.current) === null || _a === void 0 ? void 0 : _a.isFocused()) || false;
321
110
  }
322
- }
111
+ };
323
112
  /**
324
113
  * Refocus the text input only if it was focused before showing keyboard.
325
114
  * This is needed in some cases (eg. showing image picker).
326
115
  */
327
- handleTextInputFocusWhenKeyboardShow() {
328
- if (this.textInput &&
329
- this._isTextInputWasFocused &&
330
- !this.textInput.isFocused()) {
331
- this.textInput.focus();
116
+ const handleTextInputFocusWhenKeyboardShow = () => {
117
+ if (textInputRef.current &&
118
+ _isTextInputWasFocused &&
119
+ !textInputRef.current.isFocused()) {
120
+ textInputRef.current.focus();
332
121
  }
333
122
  // Reset the indicator since the keyboard is shown
334
- this._isTextInputWasFocused = false;
335
- }
336
- scrollToBottom(animated = true) {
337
- if (this._messageContainerRef && this._messageContainerRef.current) {
338
- const { inverted } = this.props;
123
+ _isTextInputWasFocused = false;
124
+ };
125
+ const onKeyboardWillShow = (e) => {
126
+ handleTextInputFocusWhenKeyboardShow();
127
+ if (isKeyboardInternallyHandled) {
128
+ keyboardHeightRef.current = e.endCoordinates
129
+ ? e.endCoordinates.height
130
+ : e.end.height;
131
+ bottomOffsetRef.current = bottomOffset != null ? bottomOffset : 1;
132
+ const newMessagesContainerHeight = getMessagesContainerHeightWithKeyboard();
133
+ setState({
134
+ ...state,
135
+ typingDisabled: true,
136
+ messagesContainerHeight: newMessagesContainerHeight,
137
+ });
138
+ }
139
+ };
140
+ const onKeyboardWillHide = (_e) => {
141
+ handleTextInputFocusWhenKeyboardHide();
142
+ if (isKeyboardInternallyHandled) {
143
+ keyboardHeightRef.current = 0;
144
+ bottomOffsetRef.current = 0;
145
+ const newMessagesContainerHeight = getBasicMessagesContainerHeight();
146
+ setState({
147
+ ...state,
148
+ typingDisabled: true,
149
+ messagesContainerHeight: newMessagesContainerHeight,
150
+ });
151
+ }
152
+ };
153
+ const onKeyboardDidShow = (e) => {
154
+ if (Platform.OS === 'android') {
155
+ onKeyboardWillShow(e);
156
+ }
157
+ setState({
158
+ ...state,
159
+ typingDisabled: false,
160
+ });
161
+ };
162
+ const onKeyboardDidHide = (e) => {
163
+ if (Platform.OS === 'android') {
164
+ onKeyboardWillHide(e);
165
+ }
166
+ setState({
167
+ ...state,
168
+ typingDisabled: false,
169
+ });
170
+ };
171
+ const scrollToBottom = (animated = true) => {
172
+ if (messageContainerRef === null || messageContainerRef === void 0 ? void 0 : messageContainerRef.current) {
339
173
  if (!inverted) {
340
- this._messageContainerRef.current.scrollToEnd({ animated });
174
+ messageContainerRef.current.scrollToEnd({ animated });
341
175
  }
342
176
  else {
343
- this._messageContainerRef.current.scrollToOffset({
177
+ messageContainerRef.current.scrollToOffset({
344
178
  offset: 0,
345
179
  animated,
346
180
  });
347
181
  }
348
182
  }
349
- }
350
- renderMessages() {
351
- const { messagesContainerStyle, ...messagesContainerProps } = this.props;
183
+ };
184
+ const renderMessages = () => {
185
+ const { messagesContainerStyle, ...messagesContainerProps } = props;
352
186
  const fragment = (<View style={[
353
- {
354
- height: this.state.messagesContainerHeight,
187
+ typeof state.messagesContainerHeight === 'number' && {
188
+ height: state.messagesContainerHeight,
355
189
  },
356
190
  messagesContainerStyle,
357
191
  ]}>
358
- <MessageContainer {...messagesContainerProps} invertibleScrollViewProps={this.invertibleScrollViewProps} messages={this.getMessages()} forwardRef={this._messageContainerRef} isTyping={this.props.isTyping}/>
359
- {this.renderChatFooter()}
192
+ <MessageContainer {...messagesContainerProps} invertibleScrollViewProps={{
193
+ inverted: inverted,
194
+ keyboardShouldPersistTaps: keyboardShouldPersistTaps,
195
+ onKeyboardWillShow: onKeyboardWillShow,
196
+ onKeyboardWillHide: onKeyboardWillHide,
197
+ onKeyboardDidShow: onKeyboardDidShow,
198
+ onKeyboardDidHide: onKeyboardDidHide,
199
+ }} messages={state.messages} forwardRef={messageContainerRef} isTyping={isTyping}/>
200
+ {_renderChatFooter()}
360
201
  </View>);
361
- return this.props.isKeyboardInternallyHandled ? (<KeyboardAvoidingView enabled>{fragment}</KeyboardAvoidingView>) : (fragment);
362
- }
363
- resetInputToolbar() {
364
- if (this.textInput) {
365
- this.textInput.clear();
202
+ return isKeyboardInternallyHandled ? (<KeyboardAvoidingView enabled>{fragment}</KeyboardAvoidingView>) : (fragment);
203
+ };
204
+ const _onSend = (messages = [], shouldResetInputToolbar = false) => {
205
+ if (!Array.isArray(messages)) {
206
+ messages = [messages];
207
+ }
208
+ const newMessages = messages.map(message => {
209
+ return {
210
+ ...message,
211
+ user: user,
212
+ createdAt: new Date(),
213
+ _id: messageIdGenerator && messageIdGenerator(),
214
+ };
215
+ });
216
+ if (shouldResetInputToolbar === true) {
217
+ setState({
218
+ ...state,
219
+ typingDisabled: true,
220
+ });
221
+ resetInputToolbar();
222
+ }
223
+ if (onSend) {
224
+ onSend(newMessages);
225
+ }
226
+ // if (shouldResetInputToolbar === true) {
227
+ // setTimeout(() => {
228
+ // if (isMountedRef.current === true) {
229
+ // setState({
230
+ // ...state,
231
+ // typingDisabled: false,
232
+ // })
233
+ // }
234
+ // }, 100)
235
+ // }
236
+ };
237
+ const resetInputToolbar = () => {
238
+ if (textInputRef.current) {
239
+ textInputRef.current.clear();
366
240
  }
367
- this.notifyInputTextReset();
368
- const newComposerHeight = this.props.minComposerHeight;
369
- const newMessagesContainerHeight = this.getMessagesContainerHeightWithKeyboard(newComposerHeight);
370
- this.setState({
371
- text: this.getTextFromProp(''),
241
+ notifyInputTextReset();
242
+ const newMessagesContainerHeight = getMessagesContainerHeightWithKeyboard(minComposerHeight);
243
+ setState({
244
+ ...state,
245
+ text: getTextFromProp(''),
246
+ composerHeight: minComposerHeight,
247
+ messagesContainerHeight: newMessagesContainerHeight,
248
+ });
249
+ };
250
+ const onInputSizeChanged = (size) => {
251
+ const newComposerHeight = Math.max(minComposerHeight, Math.min(maxComposerHeight, size.height));
252
+ const newMessagesContainerHeight = getMessagesContainerHeightWithKeyboard(newComposerHeight);
253
+ setState({
254
+ ...state,
372
255
  composerHeight: newComposerHeight,
373
256
  messagesContainerHeight: newMessagesContainerHeight,
374
257
  });
375
- }
376
- focusTextInput() {
377
- if (this.textInput) {
378
- this.textInput.focus();
258
+ };
259
+ const _onInputTextChanged = (_text) => {
260
+ if (state.typingDisabled) {
261
+ return;
379
262
  }
380
- }
381
- notifyInputTextReset() {
382
- if (this.props.onInputTextChanged) {
383
- this.props.onInputTextChanged('');
263
+ if (onInputTextChanged) {
264
+ onInputTextChanged(_text);
384
265
  }
385
- }
386
- renderInputToolbar() {
266
+ // Only set state if it's not being overridden by a prop.
267
+ if (text === undefined) {
268
+ setState({ ...state, text: _text });
269
+ }
270
+ };
271
+ const notifyInputTextReset = () => {
272
+ if (onInputTextChanged) {
273
+ onInputTextChanged('');
274
+ }
275
+ };
276
+ const onInitialLayoutViewLayout = (e) => {
277
+ const { layout } = e.nativeEvent;
278
+ if (layout.height <= 0) {
279
+ return;
280
+ }
281
+ notifyInputTextReset();
282
+ maxHeightRef.current = layout.height;
283
+ const newMessagesContainerHeight = getMessagesContainerHeightWithKeyboard(minComposerHeight);
284
+ setState({
285
+ ...state,
286
+ isInitialized: true,
287
+ text: getTextFromProp(initialText),
288
+ composerHeight: minComposerHeight,
289
+ messagesContainerHeight: newMessagesContainerHeight,
290
+ });
291
+ };
292
+ const onMainViewLayout = (e) => {
293
+ // TODO: fix an issue when keyboard is dismissing during the initialization
294
+ const { layout } = e.nativeEvent;
295
+ if (maxHeightRef.current !== layout.height ||
296
+ isFirstLayoutRef.current === true) {
297
+ maxHeightRef.current = layout.height;
298
+ setState({
299
+ ...state,
300
+ messagesContainerHeight: keyboardHeightRef.current > 0
301
+ ? getMessagesContainerHeightWithKeyboard()
302
+ : getBasicMessagesContainerHeight(),
303
+ });
304
+ }
305
+ if (isFirstLayoutRef.current === true) {
306
+ isFirstLayoutRef.current = false;
307
+ }
308
+ };
309
+ const _renderInputToolbar = () => {
387
310
  const inputToolbarProps = {
388
- ...this.props,
389
- text: this.getTextFromProp(this.state.text),
390
- composerHeight: Math.max(this.props.minComposerHeight, this.state.composerHeight),
391
- onSend: this.onSend,
392
- onInputSizeChanged: this.onInputSizeChanged,
393
- onTextChanged: this.onInputTextChanged,
311
+ ...props,
312
+ text: getTextFromProp(state.text),
313
+ composerHeight: Math.max(minComposerHeight, state.composerHeight),
314
+ onSend: _onSend,
315
+ onInputSizeChanged: onInputSizeChanged,
316
+ onTextChanged: _onInputTextChanged,
394
317
  textInputProps: {
395
- ...this.props.textInputProps,
396
- ref: (textInput) => (this.textInput = textInput),
397
- maxLength: this.getIsTypingDisabled() ? 0 : this.props.maxInputLength,
318
+ ...textInputProps,
319
+ ref: (textInput) => (textInputRef = textInput),
320
+ maxLength: state.typingDisabled ? 0 : maxInputLength,
398
321
  },
399
322
  };
400
- if (this.props.renderInputToolbar) {
401
- return this.props.renderInputToolbar(inputToolbarProps);
323
+ if (renderInputToolbar) {
324
+ return renderInputToolbar(inputToolbarProps);
402
325
  }
403
326
  return <InputToolbar {...inputToolbarProps}/>;
404
- }
405
- renderChatFooter() {
406
- if (this.props.renderChatFooter) {
407
- return this.props.renderChatFooter();
327
+ };
328
+ const _renderChatFooter = () => {
329
+ if (renderChatFooter) {
330
+ return renderChatFooter();
408
331
  }
409
332
  return null;
410
- }
411
- renderLoading() {
412
- if (this.props.renderLoading) {
413
- return this.props.renderLoading();
333
+ };
334
+ const _renderLoading = () => {
335
+ if (renderLoading) {
336
+ return renderLoading();
414
337
  }
415
338
  return null;
416
- }
417
- render() {
418
- if (this.state.isInitialized === true) {
419
- const actionSheet = this.props.actionSheet ||
420
- (() => { var _a; return (_a = this._actionSheetRef.current) === null || _a === void 0 ? void 0 : _a.getContext(); });
421
- const { getLocale } = this;
422
- return (<GiftedChatContext.Provider value={{
423
- actionSheet,
424
- getLocale,
425
- }}>
426
- <View testID={TEST_ID.WRAPPER} style={styles.wrapper}>
427
- <ActionSheetProvider ref={this._actionSheetRef}>
428
- <View style={styles.container} onLayout={this.onMainViewLayout}>
429
- {this.renderMessages()}
430
- {this.renderInputToolbar()}
431
- </View>
432
- </ActionSheetProvider>
433
- </View>
434
- </GiftedChatContext.Provider>);
435
- }
436
- return (<View testID={TEST_ID.LOADING_WRAPPER} style={styles.container} onLayout={this.onInitialLayoutViewLayout}>
437
- {this.renderLoading()}
438
- </View>);
439
- }
339
+ };
340
+ const contextValues = useMemo(() => ({
341
+ actionSheet: actionSheet || (() => { var _a; return (_a = actionSheetRef.current) === null || _a === void 0 ? void 0 : _a.getContext(); }),
342
+ getLocale: () => locale,
343
+ }), [actionSheet, locale]);
344
+ if (state.isInitialized === true) {
345
+ return (<GiftedChatContext.Provider value={contextValues}>
346
+ <View testID={TEST_ID.WRAPPER} style={styles.wrapper}>
347
+ <ActionSheetProvider ref={actionSheetRef}>
348
+ <View style={styles.container} onLayout={onMainViewLayout}>
349
+ {renderMessages()}
350
+ {_renderInputToolbar()}
351
+ </View>
352
+ </ActionSheetProvider>
353
+ </View>
354
+ </GiftedChatContext.Provider>);
355
+ }
356
+ return (<View testID={TEST_ID.LOADING_WRAPPER} style={styles.container} onLayout={onInitialLayoutViewLayout}>
357
+ {_renderLoading()}
358
+ </View>);
440
359
  }
441
- GiftedChat.defaultProps = {
442
- messages: [],
443
- messagesContainerStyle: undefined,
444
- text: undefined,
445
- placeholder: DEFAULT_PLACEHOLDER,
446
- disableComposer: false,
447
- messageIdGenerator: () => uuid.v4(),
448
- user: {},
449
- onSend: () => { },
450
- locale: null,
451
- timeFormat: TIME_FORMAT,
452
- dateFormat: DATE_FORMAT,
453
- loadEarlier: false,
454
- onLoadEarlier: () => { },
455
- isLoadingEarlier: false,
456
- renderLoading: null,
457
- renderLoadEarlier: null,
458
- renderAvatar: undefined,
459
- showUserAvatar: false,
460
- actionSheet: null,
461
- onPressAvatar: null,
462
- onLongPressAvatar: null,
463
- renderUsernameOnMessage: false,
464
- renderAvatarOnTop: false,
465
- renderBubble: null,
466
- renderSystemMessage: null,
467
- onLongPress: null,
468
- renderUserName: null,
469
- renderMessage: null,
470
- renderMessageText: null,
471
- renderMessageImage: null,
472
- renderMessageVideo: null,
473
- renderMessageAudio: null,
474
- imageProps: {},
475
- videoProps: {},
476
- audioProps: {},
477
- lightboxProps: {},
478
- textInputProps: {},
479
- listViewProps: {},
480
- renderCustomView: null,
481
- isCustomViewBottom: false,
482
- renderDay: null,
483
- renderTime: null,
484
- renderFooter: null,
485
- renderChatEmpty: null,
486
- renderChatFooter: null,
487
- renderInputToolbar: null,
488
- renderComposer: null,
489
- renderActions: null,
490
- renderSend: null,
491
- renderAccessory: null,
492
- isKeyboardInternallyHandled: true,
493
- onPressActionButton: null,
494
- bottomOffset: null,
495
- minInputToolbarHeight: 44,
496
- keyboardShouldPersistTaps: Platform.select({
497
- ios: 'never',
498
- android: 'always',
499
- default: 'never',
500
- }),
501
- onInputTextChanged: null,
502
- maxInputLength: null,
503
- forceGetKeyboardHeight: false,
504
- inverted: true,
505
- extraData: null,
506
- minComposerHeight: MIN_COMPOSER_HEIGHT,
507
- maxComposerHeight: MAX_COMPOSER_HEIGHT,
508
- };
509
360
  GiftedChat.propTypes = {
510
361
  messages: PropTypes.arrayOf(PropTypes.object),
511
362
  messagesContainerStyle: utils.StylePropType,
@@ -569,6 +420,22 @@ GiftedChat.propTypes = {
569
420
  maxComposerHeight: PropTypes.number,
570
421
  alignTop: PropTypes.bool,
571
422
  };
423
+ GiftedChat.append = (currentMessages = [], messages, inverted = true) => {
424
+ if (!Array.isArray(messages)) {
425
+ messages = [messages];
426
+ }
427
+ return inverted
428
+ ? messages.concat(currentMessages)
429
+ : currentMessages.concat(messages);
430
+ };
431
+ GiftedChat.prepend = (currentMessages = [], messages, inverted = true) => {
432
+ if (!Array.isArray(messages)) {
433
+ messages = [messages];
434
+ }
435
+ return inverted
436
+ ? currentMessages.concat(messages)
437
+ : messages.concat(currentMessages);
438
+ };
572
439
  const styles = StyleSheet.create({
573
440
  container: {
574
441
  flex: 1,
@@ -1 +1 @@
1
- {"version":3,"file":"GiftedChat.js","sourceRoot":"","sources":["../src/GiftedChat.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"GiftedChat.js","sourceRoot":"","sources":["../src/GiftedChat.tsx"],"names":[],"mappings":"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"}
@@ -1,2 +1 @@
1
- /// <reference types="react" />
2
1
  export declare function MessageAudio(_props: any): JSX.Element;
@@ -1,4 +1,3 @@
1
- /// <reference types="react" />
2
1
  import PropTypes from 'prop-types';
3
2
  import { ImageProps, ViewStyle, StyleProp, ImageStyle } from 'react-native';
4
3
  import { LightboxProps } from 'react-native-lightbox-v2';
@@ -1,4 +1,3 @@
1
- /// <reference types="react" />
2
1
  import PropTypes from 'prop-types';
3
2
  import { TextProps, StyleProp, ViewStyle, TextStyle } from 'react-native';
4
3
  import { LeftRightStyle, IMessage } from './Models';
@@ -1,2 +1 @@
1
- /// <reference types="react" />
2
1
  export declare function MessageVideo(_props: any): JSX.Element;
package/lib/Models.d.ts CHANGED
@@ -1,4 +1,3 @@
1
- /// <reference types="react" />
2
1
  import { StyleProp, ViewStyle } from 'react-native';
3
2
  import { LightboxProps } from 'react-native-lightbox-v2';
4
3
  export { ActionsProps } from './Actions';
@@ -1,4 +1,3 @@
1
- /// <reference types="react" />
2
1
  import { ViewStyle, StyleProp, TextStyle } from 'react-native';
3
2
  import PropTypes from 'prop-types';
4
3
  import { IMessage } from './Models';
package/lib/Time.d.ts CHANGED
@@ -1,4 +1,3 @@
1
- /// <reference types="react" />
2
1
  import PropTypes from 'prop-types';
3
2
  import { ViewStyle, TextStyle } from 'react-native';
4
3
  import { LeftRightStyle, IMessage } from './Models';
@@ -1,4 +1,3 @@
1
- /// <reference types="react" />
2
1
  interface Props {
3
2
  isTyping?: boolean;
4
3
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-native-gifted-chat",
3
- "version": "2.0.1",
3
+ "version": "2.1.0",
4
4
  "description": "The most complete chat UI for React Native",
5
5
  "main": "lib/index.js",
6
6
  "types": "lib/index.d.ts",