react-native-gifted-chat 0.16.2 → 1.0.0-beta-2

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.
Files changed (73) hide show
  1. package/.eslintignore +2 -0
  2. package/.eslintrc.js +21 -0
  3. package/README.md +12 -9
  4. package/jest.config.js +15 -0
  5. package/lib/Actions.d.ts +13 -11
  6. package/lib/Actions.js +28 -34
  7. package/lib/Actions.js.map +1 -1
  8. package/lib/Avatar.d.ts +5 -6
  9. package/lib/Avatar.js +30 -35
  10. package/lib/Avatar.js.map +1 -1
  11. package/lib/Bubble.d.ts +23 -20
  12. package/lib/Bubble.js +24 -18
  13. package/lib/Bubble.js.map +1 -1
  14. package/lib/Composer.d.ts +5 -11
  15. package/lib/Composer.js +24 -30
  16. package/lib/Composer.js.map +1 -1
  17. package/lib/Day.d.ts +7 -10
  18. package/lib/Day.js +14 -18
  19. package/lib/Day.js.map +1 -1
  20. package/lib/GiftedAvatar.js +9 -9
  21. package/lib/GiftedAvatar.js.map +1 -1
  22. package/lib/GiftedChat.d.ts +51 -42
  23. package/lib/GiftedChat.js +69 -47
  24. package/lib/GiftedChat.js.flow +8 -0
  25. package/lib/GiftedChat.js.map +1 -1
  26. package/lib/GiftedChatContext.d.ts +9 -0
  27. package/lib/GiftedChatContext.js +9 -0
  28. package/lib/GiftedChatContext.js.map +1 -0
  29. package/lib/InputToolbar.d.ts +14 -28
  30. package/lib/InputToolbar.js +27 -83
  31. package/lib/InputToolbar.js.map +1 -1
  32. package/lib/LoadEarlier.d.ts +4 -5
  33. package/lib/LoadEarlier.js +12 -25
  34. package/lib/LoadEarlier.js.map +1 -1
  35. package/lib/Message.d.ts +13 -10
  36. package/lib/Message.js +16 -14
  37. package/lib/Message.js.map +1 -1
  38. package/lib/MessageAudio.d.ts +1 -3
  39. package/lib/MessageAudio.js +11 -9
  40. package/lib/MessageAudio.js.map +1 -1
  41. package/lib/MessageContainer.d.ts +8 -13
  42. package/lib/MessageContainer.js +5 -43
  43. package/lib/MessageContainer.js.map +1 -1
  44. package/lib/MessageImage.d.ts +4 -5
  45. package/lib/MessageImage.js +10 -13
  46. package/lib/MessageImage.js.map +1 -1
  47. package/lib/MessageText.d.ts +5 -13
  48. package/lib/MessageText.js +77 -80
  49. package/lib/MessageText.js.map +1 -1
  50. package/lib/MessageVideo.d.ts +1 -3
  51. package/lib/MessageVideo.js +11 -9
  52. package/lib/MessageVideo.js.map +1 -1
  53. package/lib/Models.d.ts +3 -4
  54. package/lib/Models.js +1 -0
  55. package/lib/QuickReplies.d.ts +5 -15
  56. package/lib/QuickReplies.js +65 -85
  57. package/lib/QuickReplies.js.map +1 -1
  58. package/lib/Send.d.ts +6 -7
  59. package/lib/Send.js +16 -21
  60. package/lib/Send.js.map +1 -1
  61. package/lib/SystemMessage.d.ts +4 -5
  62. package/lib/SystemMessage.js +10 -12
  63. package/lib/SystemMessage.js.map +1 -1
  64. package/lib/Time.d.ts +5 -9
  65. package/lib/Time.js +26 -26
  66. package/lib/Time.js.map +1 -1
  67. package/lib/TypingIndicator.d.ts +0 -1
  68. package/lib/TypingIndicator.js +11 -11
  69. package/lib/TypingIndicator.js.map +1 -1
  70. package/lib/hooks/useUpdateLayoutEffect.d.ts +3 -2
  71. package/lib/hooks/useUpdateLayoutEffect.js +1 -1
  72. package/lib/hooks/useUpdateLayoutEffect.js.map +1 -1
  73. package/package.json +42 -68
package/lib/Composer.d.ts CHANGED
@@ -13,13 +13,14 @@ export interface ComposerProps {
13
13
  multiline?: boolean;
14
14
  disableComposer?: boolean;
15
15
  onTextChanged?(text: string): void;
16
- onInputSizeChanged?(contentSize: {
16
+ onInputSizeChanged?(layout: {
17
17
  width: number;
18
18
  height: number;
19
19
  }): void;
20
20
  }
21
- export default class Composer extends React.Component<ComposerProps> {
22
- static defaultProps: {
21
+ export declare function Composer(props: ComposerProps): React.ReactElement;
22
+ export declare namespace Composer {
23
+ var defaultProps: {
23
24
  composerHeight: number | undefined;
24
25
  text: string;
25
26
  placeholderTextColor: string;
@@ -33,7 +34,7 @@ export default class Composer extends React.Component<ComposerProps> {
33
34
  onTextChanged: () => void;
34
35
  onInputSizeChanged: () => void;
35
36
  };
36
- static propTypes: {
37
+ var propTypes: {
37
38
  composerHeight: PropTypes.Requireable<number>;
38
39
  text: PropTypes.Requireable<string>;
39
40
  placeholder: PropTypes.Requireable<string>;
@@ -47,11 +48,4 @@ export default class Composer extends React.Component<ComposerProps> {
47
48
  textInputAutoFocus: PropTypes.Requireable<boolean>;
48
49
  keyboardAppearance: PropTypes.Requireable<string>;
49
50
  };
50
- contentSize?: {
51
- width: number;
52
- height: number;
53
- };
54
- onContentSizeChange: (e: any) => void;
55
- onChangeText: (text: string) => void;
56
- render(): JSX.Element;
57
51
  }
package/lib/Composer.js CHANGED
@@ -1,9 +1,10 @@
1
1
  import PropTypes from 'prop-types';
2
- import React from 'react';
3
- import { Platform, StyleSheet, TextInput } from 'react-native';
2
+ import React, { useRef } from 'react';
3
+ import { Platform, StyleSheet, TextInput, } from 'react-native';
4
4
  import { MIN_COMPOSER_HEIGHT, DEFAULT_PLACEHOLDER } from './Constant';
5
5
  import Color from './Color';
6
6
  import { StylePropType } from './utils';
7
+ import { useCallbackOne } from 'use-memo-one';
7
8
  const styles = StyleSheet.create({
8
9
  textInput: {
9
10
  flex: 1,
@@ -28,34 +29,28 @@ const styles = StyleSheet.create({
28
29
  }),
29
30
  },
30
31
  });
31
- export default class Composer extends React.Component {
32
- constructor() {
33
- super(...arguments);
34
- this.contentSize = undefined;
35
- this.onContentSizeChange = (e) => {
36
- const { contentSize } = e.nativeEvent;
37
- // Support earlier versions of React Native on Android.
38
- if (!contentSize) {
39
- return;
40
- }
41
- if (!this.contentSize ||
42
- (this.contentSize &&
43
- (this.contentSize.width !== contentSize.width ||
44
- this.contentSize.height !== contentSize.height))) {
45
- this.contentSize = contentSize;
46
- this.props.onInputSizeChanged(this.contentSize);
47
- }
48
- };
49
- this.onChangeText = (text) => {
50
- this.props.onTextChanged(text);
51
- };
52
- }
53
- render() {
54
- return (<TextInput testID={this.props.placeholder} accessible accessibilityLabel={this.props.placeholder} placeholder={this.props.placeholder} placeholderTextColor={this.props.placeholderTextColor} multiline={this.props.multiline} editable={!this.props.disableComposer} onChange={this.onContentSizeChange} onContentSizeChange={this.onContentSizeChange} onChangeText={this.onChangeText} style={[
32
+ export function Composer(props) {
33
+ const { placeholder, onTextChanged, text } = props;
34
+ const layoutRef = useRef();
35
+ const handleOnLayout = useCallbackOne((e) => {
36
+ const { layout } = e.nativeEvent;
37
+ // Support earlier versions of React Native on Android.
38
+ if (!layout) {
39
+ return;
40
+ }
41
+ if (!layoutRef ||
42
+ (layoutRef.current &&
43
+ (layoutRef.current.width !== layoutRef.current.width ||
44
+ layoutRef.current.height !== layoutRef.current.height))) {
45
+ layoutRef.current = layout;
46
+ props.onInputSizeChanged(layout);
47
+ }
48
+ }, [props.onInputSizeChanged]);
49
+ return (<TextInput testID={placeholder} accessible accessibilityLabel={placeholder} placeholder={placeholder} placeholderTextColor={props.placeholderTextColor} multiline={props.multiline} editable={!props.disableComposer} onLayout={handleOnLayout} onChangeText={onTextChanged} style={[
55
50
  styles.textInput,
56
- this.props.textInputStyle,
51
+ props.textInputStyle,
57
52
  {
58
- height: this.props.composerHeight,
53
+ height: props.composerHeight,
59
54
  ...Platform.select({
60
55
  web: {
61
56
  outlineWidth: 0,
@@ -64,8 +59,7 @@ export default class Composer extends React.Component {
64
59
  },
65
60
  }),
66
61
  },
67
- ]} autoFocus={this.props.textInputAutoFocus} value={this.props.text} enablesReturnKeyAutomatically underlineColorAndroid='transparent' keyboardAppearance={this.props.keyboardAppearance} {...this.props.textInputProps}/>);
68
- }
62
+ ]} autoFocus={props.textInputAutoFocus} value={text} enablesReturnKeyAutomatically underlineColorAndroid='transparent' keyboardAppearance={props.keyboardAppearance} {...props.textInputProps}/>);
69
63
  }
70
64
  Composer.defaultProps = {
71
65
  composerHeight: MIN_COMPOSER_HEIGHT,
@@ -1 +1 @@
1
- {"version":3,"file":"Composer.js","sourceRoot":"","sources":["../src/Composer.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Composer.js","sourceRoot":"","sources":["../src/Composer.tsx"],"names":[],"mappings":"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"}
package/lib/Day.d.ts CHANGED
@@ -1,6 +1,5 @@
1
1
  import PropTypes from 'prop-types';
2
- import { PureComponent } from 'react';
3
- import { StyleProp, ViewStyle, TextStyle } from 'react-native';
2
+ import { StyleProp, ViewStyle, TextStyle, TextProps } from 'react-native';
4
3
  import { IMessage } from './Models';
5
4
  export interface DayProps<TMessage extends IMessage> {
6
5
  currentMessage?: TMessage;
@@ -9,14 +8,13 @@ export interface DayProps<TMessage extends IMessage> {
9
8
  containerStyle?: StyleProp<ViewStyle>;
10
9
  wrapperStyle?: StyleProp<ViewStyle>;
11
10
  textStyle?: StyleProp<TextStyle>;
11
+ textProps?: TextProps;
12
12
  dateFormat?: string;
13
13
  inverted?: boolean;
14
14
  }
15
- export default class Day<TMessage extends IMessage = IMessage> extends PureComponent<DayProps<TMessage>> {
16
- static contextTypes: {
17
- getLocale: PropTypes.Requireable<(...args: any[]) => any>;
18
- };
19
- static defaultProps: {
15
+ export declare const Day: {
16
+ <TMessage extends IMessage = IMessage>({ dateFormat, currentMessage, previousMessage, containerStyle, wrapperStyle, textStyle, }: DayProps<TMessage>): JSX.Element | null;
17
+ defaultProps: {
20
18
  currentMessage: {
21
19
  createdAt: null;
22
20
  };
@@ -27,7 +25,7 @@ export default class Day<TMessage extends IMessage = IMessage> extends PureCompo
27
25
  textStyle: {};
28
26
  dateFormat: string;
29
27
  };
30
- static propTypes: {
28
+ propTypes: {
31
29
  currentMessage: PropTypes.Requireable<object>;
32
30
  previousMessage: PropTypes.Requireable<object>;
33
31
  nextMessage: PropTypes.Requireable<object>;
@@ -37,5 +35,4 @@ export default class Day<TMessage extends IMessage = IMessage> extends PureCompo
37
35
  textStyle: PropTypes.Requireable<number | boolean | object>;
38
36
  dateFormat: PropTypes.Requireable<string>;
39
37
  };
40
- render(): JSX.Element | null;
41
- }
38
+ };
package/lib/Day.js CHANGED
@@ -1,10 +1,11 @@
1
+ import * as React from 'react';
1
2
  import PropTypes from 'prop-types';
2
- import React, { PureComponent } from 'react';
3
3
  import { StyleSheet, Text, View, } from 'react-native';
4
4
  import dayjs from 'dayjs';
5
5
  import Color from './Color';
6
6
  import { StylePropType, isSameDay } from './utils';
7
7
  import { DATE_FORMAT } from './Constant';
8
+ import { useChatContext } from './GiftedChatContext';
8
9
  const styles = StyleSheet.create({
9
10
  container: {
10
11
  alignItems: 'center',
@@ -19,25 +20,20 @@ const styles = StyleSheet.create({
19
20
  fontWeight: '600',
20
21
  },
21
22
  });
22
- export default class Day extends PureComponent {
23
- render() {
24
- const { dateFormat, currentMessage, previousMessage, containerStyle, wrapperStyle, textStyle, } = this.props;
25
- if (currentMessage && !isSameDay(currentMessage, previousMessage)) {
26
- return (<View style={[styles.container, containerStyle]}>
27
- <View style={wrapperStyle}>
28
- <Text style={[styles.text, textStyle]}>
29
- {dayjs(currentMessage.createdAt)
30
- .locale(this.context.getLocale())
23
+ export const Day = ({ dateFormat, currentMessage, previousMessage, containerStyle, wrapperStyle, textStyle, }) => {
24
+ const { getLocale } = useChatContext();
25
+ if (currentMessage && !isSameDay(currentMessage, previousMessage)) {
26
+ return (<View style={[styles.container, containerStyle]}>
27
+ <View style={wrapperStyle}>
28
+ <Text style={[styles.text, textStyle]}>
29
+ {dayjs(currentMessage.createdAt)
30
+ .locale(getLocale())
31
31
  .format(dateFormat)}
32
- </Text>
33
- </View>
34
- </View>);
35
- }
36
- return null;
32
+ </Text>
33
+ </View>
34
+ </View>);
37
35
  }
38
- }
39
- Day.contextTypes = {
40
- getLocale: PropTypes.func,
36
+ return null;
41
37
  };
42
38
  Day.defaultProps = {
43
39
  currentMessage: {
package/lib/Day.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"Day.js","sourceRoot":"","sources":["../src/Day.tsx"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,YAAY,CAAA;AAClC,OAAO,KAAK,EAAE,EAAE,aAAa,EAAE,MAAM,OAAO,CAAA;AAC5C,OAAO,EACL,UAAU,EACV,IAAI,EACJ,IAAI,GAIL,MAAM,cAAc,CAAA;AACrB,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,KAAK,MAAM,SAAS,CAAA;AAE3B,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAGxC,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC;IAC/B,SAAS,EAAE;QACT,UAAU,EAAE,QAAQ;QACpB,cAAc,EAAE,QAAQ;QACxB,SAAS,EAAE,CAAC;QACZ,YAAY,EAAE,EAAE;KACjB;IACD,IAAI,EAAE;QACJ,eAAe,EAAE,KAAK,CAAC,qBAAqB;QAC5C,KAAK,EAAE,KAAK,CAAC,YAAY;QACzB,QAAQ,EAAE,EAAE;QACZ,UAAU,EAAE,KAAK;KAClB;CACF,CAAC,CAAA;AAaF,MAAM,CAAC,OAAO,OAAO,GAEnB,SAAQ,aAAiC;IA4BzC,MAAM;QACJ,MAAM,EACJ,UAAU,EACV,cAAc,EACd,eAAe,EACf,cAAc,EACd,YAAY,EACZ,SAAS,GACV,GAAG,IAAI,CAAC,KAAK,CAAA;QAEd,IAAI,cAAc,IAAI,CAAC,SAAS,CAAC,cAAc,EAAE,eAAgB,CAAC,EAAE;YAClE,OAAO,CACL,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC,CAC9C;UAAA,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,YAAY,CAAC,CACxB;YAAA,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CACpC;cAAA,CAAC,KAAK,CAAC,cAAc,CAAC,SAAS,CAAC;iBAC7B,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;iBAChC,MAAM,CAAC,UAAU,CAAC,CACvB;YAAA,EAAE,IAAI,CACR;UAAA,EAAE,IAAI,CACR;QAAA,EAAE,IAAI,CAAC,CACR,CAAA;SACF;QACD,OAAO,IAAI,CAAA;IACb,CAAC;;AAnDM,gBAAY,GAAG;IACpB,SAAS,EAAE,SAAS,CAAC,IAAI;CAC1B,CAAA;AAEM,gBAAY,GAAG;IACpB,cAAc,EAAE;QACd,SAAS,EAAE,IAAI;KAChB;IACD,eAAe,EAAE,EAAE;IACnB,WAAW,EAAE,EAAE;IACf,cAAc,EAAE,EAAE;IAClB,YAAY,EAAE,EAAE;IAChB,SAAS,EAAE,EAAE;IACb,UAAU,EAAE,WAAW;CACxB,CAAA;AAEM,aAAS,GAAG;IACjB,cAAc,EAAE,SAAS,CAAC,MAAM;IAChC,eAAe,EAAE,SAAS,CAAC,MAAM;IACjC,WAAW,EAAE,SAAS,CAAC,MAAM;IAC7B,QAAQ,EAAE,SAAS,CAAC,IAAI;IACxB,cAAc,EAAE,aAAa;IAC7B,YAAY,EAAE,aAAa;IAC3B,SAAS,EAAE,aAAa;IACxB,UAAU,EAAE,SAAS,CAAC,MAAM;CAC7B,CAAA"}
1
+ {"version":3,"file":"Day.js","sourceRoot":"","sources":["../src/Day.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,SAAS,MAAM,YAAY,CAAA;AAClC,OAAO,EACL,UAAU,EACV,IAAI,EACJ,IAAI,GAKL,MAAM,cAAc,CAAA;AACrB,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,KAAK,MAAM,SAAS,CAAA;AAC3B,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAGxC,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAEpD,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC;IAC/B,SAAS,EAAE;QACT,UAAU,EAAE,QAAQ;QACpB,cAAc,EAAE,QAAQ;QACxB,SAAS,EAAE,CAAC;QACZ,YAAY,EAAE,EAAE;KACjB;IACD,IAAI,EAAE;QACJ,eAAe,EAAE,KAAK,CAAC,qBAAqB;QAC5C,KAAK,EAAE,KAAK,CAAC,YAAY;QACzB,QAAQ,EAAE,EAAE;QACZ,UAAU,EAAE,KAAK;KAClB;CACF,CAAC,CAAA;AAcF,MAAM,CAAC,MAAM,GAAG,GAAG,CAAuC,EACxD,UAAU,EACV,cAAc,EACd,eAAe,EACf,cAAc,EACd,YAAY,EACZ,SAAS,GACU,EAAE,EAAE;IACvB,MAAM,EAAE,SAAS,EAAE,GAAG,cAAc,EAAE,CAAA;IACtC,IAAI,cAAc,IAAI,CAAC,SAAS,CAAC,cAAc,EAAE,eAAgB,CAAC,EAAE;QAClE,OAAO,CACL,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC,CAC9C;QAAA,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,YAAY,CAAC,CACxB;UAAA,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CACpC;YAAA,CAAC,KAAK,CAAC,cAAc,CAAC,SAAS,CAAC;iBAC7B,MAAM,CAAC,SAAS,EAAE,CAAC;iBACnB,MAAM,CAAC,UAAU,CAAC,CACvB;UAAA,EAAE,IAAI,CACR;QAAA,EAAE,IAAI,CACR;MAAA,EAAE,IAAI,CAAC,CACR,CAAA;KACF;IACD,OAAO,IAAI,CAAA;AACb,CAAC,CAAA;AAED,GAAG,CAAC,YAAY,GAAG;IACjB,cAAc,EAAE;QACd,SAAS,EAAE,IAAI;KAChB;IACD,eAAe,EAAE,EAAE;IACnB,WAAW,EAAE,EAAE;IACf,cAAc,EAAE,EAAE;IAClB,YAAY,EAAE,EAAE;IAChB,SAAS,EAAE,EAAE;IACb,UAAU,EAAE,WAAW;CACxB,CAAA;AAED,GAAG,CAAC,SAAS,GAAG;IACd,cAAc,EAAE,SAAS,CAAC,MAAM;IAChC,eAAe,EAAE,SAAS,CAAC,MAAM;IACjC,WAAW,EAAE,SAAS,CAAC,MAAM;IAC7B,QAAQ,EAAE,SAAS,CAAC,IAAI;IACxB,cAAc,EAAE,aAAa;IAC7B,YAAY,EAAE,aAAa;IAC3B,SAAS,EAAE,aAAa;IACxB,UAAU,EAAE,SAAS,CAAC,MAAM;CAC7B,CAAA"}
@@ -89,22 +89,22 @@ export default class GiftedAvatar extends React.Component {
89
89
  (!this.props.user.name && !this.props.user.avatar)) {
90
90
  // render placeholder
91
91
  return (<View style={[
92
- styles.avatarStyle,
93
- styles.avatarTransparent,
94
- this.props.avatarStyle,
95
- ]} accessibilityTraits='image'/>);
92
+ styles.avatarStyle,
93
+ styles.avatarTransparent,
94
+ this.props.avatarStyle,
95
+ ]} accessibilityRole='image'/>);
96
96
  }
97
97
  if (this.props.user.avatar) {
98
- return (<TouchableOpacity disabled={!this.props.onPress} onPress={this.props.onPress} onLongPress={this.props.onLongPress} accessibilityTraits='image'>
98
+ return (<TouchableOpacity disabled={!this.props.onPress} onPress={this.props.onPress} onLongPress={this.props.onLongPress} accessibilityRole='image'>
99
99
  {this.renderAvatar()}
100
100
  </TouchableOpacity>);
101
101
  }
102
102
  this.setAvatarColor();
103
103
  return (<TouchableOpacity disabled={!this.props.onPress} onPress={this.props.onPress} onLongPress={this.props.onLongPress} style={[
104
- styles.avatarStyle,
105
- { backgroundColor: this.avatarColor },
106
- this.props.avatarStyle,
107
- ]} accessibilityTraits='image'>
104
+ styles.avatarStyle,
105
+ { backgroundColor: this.avatarColor },
106
+ this.props.avatarStyle,
107
+ ]} accessibilityRole='image'>
108
108
  {this.renderInitials()}
109
109
  </TouchableOpacity>);
110
110
  }
@@ -1 +1 @@
1
- {"version":3,"file":"GiftedAvatar.js","sourceRoot":"","sources":["../src/GiftedAvatar.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"GiftedAvatar.js","sourceRoot":"","sources":["../src/GiftedAvatar.tsx"],"names":[],"mappings":"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"}
@@ -1,25 +1,25 @@
1
1
  import PropTypes from 'prop-types';
2
2
  import React, { RefObject } from 'react';
3
- import { Animated, StyleProp, ViewStyle, FlatList, TextStyle } from 'react-native';
3
+ import { Animated, StyleProp, ViewStyle, FlatList, TextStyle, LayoutChangeEvent } from 'react-native';
4
4
  import { ActionSheetOptions } from '@expo/react-native-action-sheet';
5
5
  import * as utils from './utils';
6
- import Actions from './Actions';
7
- import Avatar from './Avatar';
6
+ import { Actions, ActionsProps } from './Actions';
7
+ import { Avatar, AvatarProps } from './Avatar';
8
8
  import Bubble from './Bubble';
9
- import SystemMessage from './SystemMessage';
10
- import MessageImage from './MessageImage';
11
- import MessageText from './MessageText';
12
- import Composer from './Composer';
13
- import Day from './Day';
14
- import InputToolbar from './InputToolbar';
15
- import LoadEarlier from './LoadEarlier';
9
+ import { SystemMessage, SystemMessageProps } from './SystemMessage';
10
+ import { MessageImage, MessageImageProps } from './MessageImage';
11
+ import { MessageText, MessageTextProps } from './MessageText';
12
+ import { Composer, ComposerProps } from './Composer';
13
+ import { Day, DayProps } from './Day';
14
+ import { InputToolbar, InputToolbarProps } from './InputToolbar';
15
+ import { LoadEarlier, LoadEarlierProps } from './LoadEarlier';
16
16
  import Message from './Message';
17
17
  import MessageContainer from './MessageContainer';
18
- import Send from './Send';
19
- import Time from './Time';
18
+ import { Send, SendProps } from './Send';
19
+ import { Time, TimeProps } from './Time';
20
+ import { QuickRepliesProps } from './QuickReplies';
20
21
  import GiftedAvatar from './GiftedAvatar';
21
- import { IMessage, User, Reply, LeftRightStyle } from './Models';
22
- import QuickReplies from './QuickReplies';
22
+ import { IMessage, User, Reply, LeftRightStyle, MessageVideoProps, MessageAudioProps } from './Models';
23
23
  export interface GiftedChatProps<TMessage extends IMessage = IMessage> {
24
24
  messages?: TMessage[];
25
25
  isTyping?: boolean;
@@ -74,30 +74,32 @@ export interface GiftedChatProps<TMessage extends IMessage = IMessage> {
74
74
  onSend?(messages: TMessage[]): void;
75
75
  onLoadEarlier?(): void;
76
76
  renderLoading?(): React.ReactNode;
77
- renderLoadEarlier?(props: LoadEarlier['props']): React.ReactNode;
78
- renderAvatar?(props: Avatar<TMessage>['props']): React.ReactNode;
77
+ renderLoadEarlier?(props: LoadEarlierProps): React.ReactNode;
78
+ renderAvatar?(props: AvatarProps<TMessage>): React.ReactNode | null;
79
79
  renderBubble?(props: Bubble<TMessage>['props']): React.ReactNode;
80
- renderSystemMessage?(props: SystemMessage<TMessage>['props']): React.ReactNode;
80
+ renderSystemMessage?(props: SystemMessageProps<TMessage>): React.ReactNode;
81
81
  onLongPress?(context: any, message: any): void;
82
82
  renderMessage?(message: Message<TMessage>['props']): React.ReactNode;
83
- renderMessageText?(messageText: MessageText<TMessage>['props']): React.ReactNode;
84
- renderMessageImage?(props: MessageImage<TMessage>['props']): React.ReactNode;
83
+ renderMessageText?(messageText: MessageTextProps<TMessage>): React.ReactNode;
84
+ renderMessageImage?(props: MessageImageProps<TMessage>): React.ReactNode;
85
+ renderMessageVideo?(props: MessageVideoProps<TMessage>): React.ReactNode;
86
+ renderMessageAudio?(props: MessageAudioProps<TMessage>): React.ReactNode;
85
87
  renderCustomView?(props: Bubble<TMessage>['props']): React.ReactNode;
86
- renderDay?(props: Day<TMessage>['props']): React.ReactNode;
87
- renderTime?(props: Time<TMessage>['props']): React.ReactNode;
88
+ renderDay?(props: DayProps<TMessage>): React.ReactNode;
89
+ renderTime?(props: TimeProps<TMessage>): React.ReactNode;
88
90
  renderFooter?(): React.ReactNode;
89
91
  renderChatEmpty?(): React.ReactNode;
90
92
  renderChatFooter?(): React.ReactNode;
91
- renderInputToolbar?(props: InputToolbar['props']): React.ReactNode;
92
- renderComposer?(props: Composer['props']): React.ReactNode;
93
- renderActions?(props: Actions['props']): React.ReactNode;
94
- renderSend?(props: Send['props']): React.ReactNode;
95
- renderAccessory?(props: InputToolbar['props']): React.ReactNode;
93
+ renderInputToolbar?(props: InputToolbarProps<TMessage>): React.ReactNode;
94
+ renderComposer?(props: ComposerProps): React.ReactNode;
95
+ renderActions?(props: ActionsProps): React.ReactNode;
96
+ renderSend?(props: SendProps<TMessage>): React.ReactNode;
97
+ renderAccessory?(props: InputToolbarProps<TMessage>): React.ReactNode;
96
98
  onPressActionButton?(): void;
97
99
  onInputTextChanged?(text: string): void;
98
100
  parsePatterns?(linkStyle: TextStyle): any;
99
101
  onQuickReply?(replies: Reply[]): void;
100
- renderQuickReplies?(quickReplies: QuickReplies['props']): React.ReactNode;
102
+ renderQuickReplies?(quickReplies: QuickRepliesProps): React.ReactNode;
101
103
  renderQuickReplySend?(): React.ReactNode;
102
104
  scrollToBottomComponent?(): React.ReactNode;
103
105
  shouldUpdateMessage?(props: Message<TMessage>['props'], nextProps: Message<TMessage>['props']): boolean;
@@ -111,10 +113,7 @@ export interface GiftedChatState<TMessage extends IMessage = IMessage> {
111
113
  messages?: TMessage[];
112
114
  }
113
115
  declare class GiftedChat<TMessage extends IMessage = IMessage> extends React.Component<GiftedChatProps<TMessage>, GiftedChatState> {
114
- static childContextTypes: {
115
- actionSheet: PropTypes.Requireable<(...args: any[]) => any>;
116
- getLocale: PropTypes.Requireable<(...args: any[]) => any>;
117
- };
116
+ static contextType: React.Context<import("react-native-safe-area-context").EdgeInsets | null>;
118
117
  static defaultProps: {
119
118
  messages: never[];
120
119
  messagesContainerStyle: undefined;
@@ -145,6 +144,8 @@ declare class GiftedChat<TMessage extends IMessage = IMessage> extends React.Com
145
144
  renderMessage: null;
146
145
  renderMessageText: null;
147
146
  renderMessageImage: null;
147
+ renderMessageVideo: null;
148
+ renderMessageAudio: null;
148
149
  imageProps: {};
149
150
  videoProps: {};
150
151
  audioProps: {};
@@ -165,7 +166,7 @@ declare class GiftedChat<TMessage extends IMessage = IMessage> extends React.Com
165
166
  renderAccessory: null;
166
167
  isKeyboardInternallyHandled: boolean;
167
168
  onPressActionButton: null;
168
- bottomOffset: number;
169
+ bottomOffset: null;
169
170
  minInputToolbarHeight: number;
170
171
  keyboardShouldPersistTaps: string;
171
172
  onInputTextChanged: null;
@@ -251,8 +252,8 @@ declare class GiftedChat<TMessage extends IMessage = IMessage> extends React.Com
251
252
  _locale: string;
252
253
  invertibleScrollViewProps: any;
253
254
  _actionSheetRef: any;
254
- _lastUpdate: number;
255
255
  _messageContainerRef?: RefObject<FlatList<IMessage>>;
256
+ _isTextInputWasFocused: boolean;
256
257
  textInput?: any;
257
258
  state: {
258
259
  isInitialized: boolean;
@@ -263,10 +264,6 @@ declare class GiftedChat<TMessage extends IMessage = IMessage> extends React.Com
263
264
  messages: undefined;
264
265
  };
265
266
  constructor(props: GiftedChatProps<TMessage>);
266
- getChildContext(): {
267
- actionSheet: () => any;
268
- getLocale: () => string;
269
- };
270
267
  componentDidMount(): void;
271
268
  componentWillUnmount(): void;
272
269
  componentDidUpdate(prevProps?: GiftedChatProps<TMessage>): void;
@@ -299,7 +296,19 @@ declare class GiftedChat<TMessage extends IMessage = IMessage> extends React.Com
299
296
  * Returns the height, based on current window size, taking the keyboard into account.
300
297
  */
301
298
  getMessagesContainerHeightWithKeyboard(composerHeight?: number | undefined): number;
302
- safeAreaSupport: (bottomOffset: number) => number;
299
+ safeAreaSupport: (bottomOffset?: number | undefined) => number;
300
+ /**
301
+ * Store text input focus status when keyboard hide to retrieve
302
+ * it after wards if needed.
303
+ * `onKeyboardWillHide` may be called twice in sequence so we
304
+ * make a guard condition (eg. showing image picker)
305
+ */
306
+ handleTextInputFocusWhenKeyboardHide(): void;
307
+ /**
308
+ * Refocus the text input only if it was focused before showing keyboard.
309
+ * This is needed in some cases (eg. showing image picker).
310
+ */
311
+ handleTextInputFocusWhenKeyboardShow(): void;
303
312
  onKeyboardWillShow: (e: any) => void;
304
313
  onKeyboardWillHide: (_e: any) => void;
305
314
  onKeyboardDidShow: (e: any) => void;
@@ -315,10 +324,10 @@ declare class GiftedChat<TMessage extends IMessage = IMessage> extends React.Com
315
324
  onInputTextChanged: (text: string) => void;
316
325
  notifyInputTextReset(): void;
317
326
  onInitialLayoutViewLayout: (e: any) => void;
318
- onMainViewLayout: (e: any) => void;
319
- renderInputToolbar(): {} | null | undefined;
320
- renderChatFooter(): {} | null | undefined;
321
- renderLoading(): {} | null | undefined;
327
+ onMainViewLayout: (e: LayoutChangeEvent) => void;
328
+ renderInputToolbar(): React.ReactNode;
329
+ renderChatFooter(): React.ReactNode;
330
+ renderLoading(): React.ReactNode;
322
331
  render(): JSX.Element;
323
332
  }
324
333
  export * from './Models';