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
@@ -5,15 +5,18 @@ import { Linking, StyleSheet, View, } from 'react-native';
5
5
  import ParsedText from 'react-native-parsed-text';
6
6
  import Communications from 'react-native-communications';
7
7
  import { StylePropType } from './utils';
8
+ import { useChatContext } from './GiftedChatContext';
8
9
  const WWW_URL_PATTERN = /^www\./i;
9
- const textStyle = {
10
- fontSize: 16,
11
- lineHeight: 20,
12
- marginTop: 5,
13
- marginBottom: 5,
14
- marginLeft: 10,
15
- marginRight: 10,
16
- };
10
+ const { textStyle } = StyleSheet.create({
11
+ textStyle: {
12
+ fontSize: 16,
13
+ lineHeight: 20,
14
+ marginTop: 5,
15
+ marginBottom: 5,
16
+ marginLeft: 10,
17
+ marginRight: 10,
18
+ },
19
+ });
17
20
  const styles = {
18
21
  left: StyleSheet.create({
19
22
  container: {},
@@ -39,82 +42,76 @@ const styles = {
39
42
  }),
40
43
  };
41
44
  const DEFAULT_OPTION_TITLES = ['Call', 'Text', 'Cancel'];
42
- export default class MessageText extends React.Component {
43
- constructor() {
44
- super(...arguments);
45
- this.onUrlPress = (url) => {
46
- // When someone sends a message that includes a website address beginning with "www." (omitting the scheme),
47
- // react-native-parsed-text recognizes it as a valid url, but Linking fails to open due to the missing scheme.
48
- if (WWW_URL_PATTERN.test(url)) {
49
- this.onUrlPress(`http://${url}`);
50
- }
51
- else {
52
- Linking.canOpenURL(url).then(supported => {
53
- if (!supported) {
54
- console.error('No handler for URL:', url);
55
- }
56
- else {
57
- Linking.openURL(url);
58
- }
59
- });
60
- }
61
- };
62
- this.onPhonePress = (phone) => {
63
- const { optionTitles } = this.props;
64
- const options = optionTitles && optionTitles.length > 0
65
- ? optionTitles.slice(0, 3)
66
- : DEFAULT_OPTION_TITLES;
67
- const cancelButtonIndex = options.length - 1;
68
- this.context.actionSheet().showActionSheetWithOptions({
69
- options,
70
- cancelButtonIndex,
71
- }, (buttonIndex) => {
72
- switch (buttonIndex) {
73
- case 0:
74
- Communications.phonecall(phone, true);
75
- break;
76
- case 1:
77
- Communications.text(phone);
78
- break;
79
- default:
80
- break;
45
+ export const MessageText = ({ currentMessage, optionTitles, position, containerStyle, textStyle, linkStyle: linkStyleProp, customTextStyle, parsePatterns, textProps, }) => {
46
+ const { actionSheet } = useChatContext();
47
+ // TODO: React.memo
48
+ // const shouldComponentUpdate = (nextProps: MessageTextProps<TMessage>) => {
49
+ // return (
50
+ // !!currentMessage &&
51
+ // !!nextProps.currentMessage &&
52
+ // currentMessage.text !== nextProps.currentMessage.text
53
+ // )
54
+ // }
55
+ const onUrlPress = (url) => {
56
+ // When someone sends a message that includes a website address beginning with "www." (omitting the scheme),
57
+ // react-native-parsed-text recognizes it as a valid url, but Linking fails to open due to the missing scheme.
58
+ if (WWW_URL_PATTERN.test(url)) {
59
+ onUrlPress(`https://${url}`);
60
+ }
61
+ else {
62
+ Linking.canOpenURL(url).then(supported => {
63
+ if (!supported) {
64
+ console.error('No handler for URL:', url);
65
+ }
66
+ else {
67
+ Linking.openURL(url);
81
68
  }
82
69
  });
83
- };
84
- this.onEmailPress = (email) => Communications.email([email], null, null, null, null);
85
- }
86
- shouldComponentUpdate(nextProps) {
87
- return (!!this.props.currentMessage &&
88
- !!nextProps.currentMessage &&
89
- this.props.currentMessage.text !== nextProps.currentMessage.text);
90
- }
91
- render() {
92
- const linkStyle = [
93
- styles[this.props.position].link,
94
- this.props.linkStyle && this.props.linkStyle[this.props.position],
95
- ];
96
- return (<View style={[
97
- styles[this.props.position].container,
98
- this.props.containerStyle &&
99
- this.props.containerStyle[this.props.position],
70
+ }
71
+ };
72
+ const onPhonePress = (phone) => {
73
+ const options = optionTitles && optionTitles.length > 0
74
+ ? optionTitles.slice(0, 3)
75
+ : DEFAULT_OPTION_TITLES;
76
+ const cancelButtonIndex = options.length - 1;
77
+ actionSheet().showActionSheetWithOptions({
78
+ options,
79
+ cancelButtonIndex,
80
+ }, (buttonIndex) => {
81
+ switch (buttonIndex) {
82
+ case 0:
83
+ Communications.phonecall(phone, true);
84
+ break;
85
+ case 1:
86
+ Communications.text(phone);
87
+ break;
88
+ default:
89
+ break;
90
+ }
91
+ });
92
+ };
93
+ const onEmailPress = (email) => Communications.email([email], null, null, null, null);
94
+ const linkStyle = [
95
+ styles[position].link,
96
+ linkStyleProp && linkStyleProp[position],
97
+ ];
98
+ return (<View style={[
99
+ styles[position].container,
100
+ containerStyle && containerStyle[position],
100
101
  ]}>
101
- <ParsedText style={[
102
- styles[this.props.position].text,
103
- this.props.textStyle && this.props.textStyle[this.props.position],
104
- this.props.customTextStyle,
102
+ <ParsedText style={[
103
+ styles[position].text,
104
+ textStyle && textStyle[position],
105
+ customTextStyle,
105
106
  ]} parse={[
106
- ...this.props.parsePatterns(linkStyle),
107
- { type: 'url', style: linkStyle, onPress: this.onUrlPress },
108
- { type: 'phone', style: linkStyle, onPress: this.onPhonePress },
109
- { type: 'email', style: linkStyle, onPress: this.onEmailPress },
110
- ]} childrenProps={{ ...this.props.textProps }}>
111
- {this.props.currentMessage.text}
112
- </ParsedText>
113
- </View>);
114
- }
115
- }
116
- MessageText.contextTypes = {
117
- actionSheet: PropTypes.func,
107
+ ...parsePatterns(linkStyle),
108
+ { type: 'url', style: linkStyle, onPress: onUrlPress },
109
+ { type: 'phone', style: linkStyle, onPress: onPhonePress },
110
+ { type: 'email', style: linkStyle, onPress: onEmailPress },
111
+ ]} childrenProps={{ ...textProps }}>
112
+ {currentMessage.text}
113
+ </ParsedText>
114
+ </View>);
118
115
  };
119
116
  MessageText.defaultProps = {
120
117
  position: 'left',
@@ -1 +1 @@
1
- {"version":3,"file":"MessageText.js","sourceRoot":"","sources":["../src/MessageText.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MessageText.js","sourceRoot":"","sources":["../src/MessageText.tsx"],"names":[],"mappings":"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"}
@@ -1,3 +1 @@
1
- /// <reference types="react" />
2
- declare const _default: (_props: any) => JSX.Element;
3
- export default _default;
1
+ export declare function MessageVideo(_props: any): JSX.Element;
@@ -1,13 +1,15 @@
1
1
  import React from 'react';
2
2
  import Color from './Color';
3
3
  import { View, Text } from 'react-native';
4
- export default (_props) => (<View style={{ padding: 20 }}>
5
- <Text style={{ color: Color.alizarin, fontWeight: '600' }}>
6
- Video is not implemented by GiftedChat.
7
- </Text>
8
- <Text style={{ color: Color.alizarin, fontWeight: '600' }}>
9
- You need to provide your own implementation by using renderMessageVideo
10
- prop.
11
- </Text>
12
- </View>);
4
+ export function MessageVideo(_props) {
5
+ return (<View style={{ padding: 20 }}>
6
+ <Text style={{ color: Color.alizarin, fontWeight: '600' }}>
7
+ Video is not implemented by GiftedChat.
8
+ </Text>
9
+ <Text style={{ color: Color.alizarin, fontWeight: '600' }}>
10
+ You need to provide your own implementation by using renderMessageVideo
11
+ prop.
12
+ </Text>
13
+ </View>);
14
+ }
13
15
  //# sourceMappingURL=MessageVideo.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"MessageVideo.js","sourceRoot":"","sources":["../src/MessageVideo.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,KAAK,MAAM,SAAS,CAAA;AAC3B,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,cAAc,CAAA;AAEzC,eAAe,CAAC,MAAW,EAAE,EAAE,CAAC,CAC9B,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAC3B;IAAA,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,QAAQ,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,CACxD;;IACF,EAAE,IAAI,CACN;IAAA,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,QAAQ,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,CACxD;;;IAEF,EAAE,IAAI,CACR;EAAA,EAAE,IAAI,CAAC,CACR,CAAA"}
1
+ {"version":3,"file":"MessageVideo.js","sourceRoot":"","sources":["../src/MessageVideo.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,KAAK,MAAM,SAAS,CAAA;AAC3B,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,cAAc,CAAA;AAEzC,MAAM,UAAU,YAAY,CAAC,MAAW;IACtC,OAAO,CACL,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAC3B;MAAA,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,QAAQ,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,CACxD;;MACF,EAAE,IAAI,CACN;MAAA,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,QAAQ,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,CACxD;;;MAEF,EAAE,IAAI,CACR;IAAA,EAAE,IAAI,CAAC,CACR,CAAA;AACH,CAAC"}
package/lib/Models.d.ts CHANGED
@@ -1,4 +1,3 @@
1
- /// <reference types="react" />
2
1
  import { StyleProp, ViewStyle } from 'react-native';
3
2
  export { ActionsProps } from './Actions';
4
3
  export { AvatarProps } from './Avatar';
@@ -18,14 +17,14 @@ export { SystemMessageProps } from './SystemMessage';
18
17
  export { TimeProps } from './Time';
19
18
  export declare type Omit<T, K> = Pick<T, Exclude<keyof T, K>>;
20
19
  export interface LeftRightStyle<T> {
21
- left: StyleProp<T>;
22
- right: StyleProp<T>;
20
+ left?: StyleProp<T>;
21
+ right?: StyleProp<T>;
23
22
  }
24
23
  declare type renderFunction = (x: any) => JSX.Element;
25
24
  export interface User {
26
25
  _id: string | number;
27
26
  name?: string;
28
- avatar?: string | renderFunction;
27
+ avatar?: string | number | renderFunction;
29
28
  }
30
29
  export interface Reply {
31
30
  title: string;
package/lib/Models.js CHANGED
@@ -1 +1,2 @@
1
+ export {};
1
2
  //# sourceMappingURL=Models.js.map
@@ -1,5 +1,5 @@
1
1
  import PropTypes from 'prop-types';
2
- import React, { Component } from 'react';
2
+ import React from 'react';
3
3
  import { StyleProp, ViewStyle } from 'react-native';
4
4
  import { IMessage, Reply } from './Models';
5
5
  export interface QuickRepliesProps {
@@ -11,11 +11,9 @@ export interface QuickRepliesProps {
11
11
  onQuickReply?(reply: Reply[]): void;
12
12
  renderQuickReplySend?(): React.ReactNode;
13
13
  }
14
- export interface QuickRepliesState {
15
- replies: Reply[];
16
- }
17
- export default class QuickReplies extends Component<QuickRepliesProps, QuickRepliesState> {
18
- static defaultProps: {
14
+ export declare function QuickReplies(props: QuickRepliesProps): JSX.Element | null;
15
+ export declare namespace QuickReplies {
16
+ var defaultProps: {
19
17
  currentMessage: {
20
18
  quickReplies: never[];
21
19
  };
@@ -26,7 +24,7 @@ export default class QuickReplies extends Component<QuickRepliesProps, QuickRepl
26
24
  renderQuickReplySend: undefined;
27
25
  quickReplyStyle: undefined;
28
26
  };
29
- static propTypes: {
27
+ var propTypes: {
30
28
  currentMessage: PropTypes.Validator<object>;
31
29
  onQuickReply: PropTypes.Requireable<(...args: any[]) => any>;
32
30
  color: PropTypes.Requireable<string>;
@@ -35,12 +33,4 @@ export default class QuickReplies extends Component<QuickRepliesProps, QuickRepl
35
33
  renderQuickReplySend: PropTypes.Requireable<(...args: any[]) => any>;
36
34
  quickReplyStyle: PropTypes.Requireable<number | boolean | object>;
37
35
  };
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
36
  }
@@ -1,8 +1,9 @@
1
1
  import PropTypes from 'prop-types';
2
- import React, { Component } from 'react';
2
+ import React, { useState, useMemo } from 'react';
3
3
  import { Text, StyleSheet, View, TouchableOpacity, } from 'react-native';
4
4
  import Color from './Color';
5
5
  import { warning, StylePropType } from './utils';
6
+ import { useCallbackOne } from 'use-memo-one';
6
7
  const styles = StyleSheet.create({
7
8
  container: {
8
9
  flexDirection: 'row',
@@ -34,97 +35,76 @@ const styles = StyleSheet.create({
34
35
  });
35
36
  const sameReply = (currentReply) => (reply) => currentReply.value === reply.value;
36
37
  const diffReply = (currentReply) => (reply) => currentReply.value !== reply.value;
37
- export default class QuickReplies extends Component {
38
- constructor() {
39
- super(...arguments);
40
- this.state = {
41
- replies: [],
42
- };
43
- this.handlePress = (reply) => () => {
44
- const { currentMessage } = this.props;
45
- const { replies } = this.state;
46
- if (currentMessage) {
47
- const { type } = currentMessage.quickReplies;
48
- switch (type) {
49
- case 'radio': {
50
- this.handleSend([reply])();
51
- return;
52
- }
53
- case 'checkbox': {
54
- if (replies.find(sameReply(reply))) {
55
- this.setState({
56
- replies: this.state.replies.filter(diffReply(reply)),
57
- });
58
- }
59
- else {
60
- this.setState({ replies: [...this.state.replies, reply] });
61
- }
62
- return;
38
+ export function QuickReplies(props) {
39
+ const { currentMessage, nextMessage, color, quickReplyStyle, onQuickReply, sendText, renderQuickReplySend, } = props;
40
+ const { type } = currentMessage.quickReplies;
41
+ const [replies, setReplies] = useState([]);
42
+ const shouldComponentDisplay = useMemo(() => {
43
+ const hasReplies = !!currentMessage && !!currentMessage.quickReplies;
44
+ const hasNext = !!nextMessage && !!nextMessage._id;
45
+ const keepIt = currentMessage.quickReplies.keepIt;
46
+ if (hasReplies && !hasNext) {
47
+ return true;
48
+ }
49
+ if (hasReplies && hasNext && keepIt) {
50
+ return true;
51
+ }
52
+ return false;
53
+ }, [currentMessage, nextMessage]);
54
+ if (!shouldComponentDisplay) {
55
+ return null;
56
+ }
57
+ const handlePress = useCallbackOne((reply) => () => {
58
+ if (currentMessage) {
59
+ const { type } = currentMessage.quickReplies;
60
+ switch (type) {
61
+ case 'radio': {
62
+ handleSend([reply])();
63
+ return;
64
+ }
65
+ case 'checkbox': {
66
+ if (replies.find(sameReply(reply))) {
67
+ setReplies(replies.filter(diffReply(reply)));
63
68
  }
64
- default: {
65
- warning(`onQuickReply unknown type: ${type}`);
66
- return;
69
+ else {
70
+ setReplies([...replies, reply]);
67
71
  }
72
+ return;
73
+ }
74
+ default: {
75
+ warning(`onQuickReply unknown type: ${type}`);
76
+ return;
68
77
  }
69
78
  }
70
- };
71
- this.handleSend = (replies) => () => {
72
- const { currentMessage } = this.props;
73
- if (this.props.onQuickReply) {
74
- this.props.onQuickReply(replies.map((reply) => ({
75
- ...reply,
76
- messageId: currentMessage._id,
77
- })));
78
- }
79
- };
80
- this.shouldComponentDisplay = () => {
81
- const { currentMessage, nextMessage } = this.props;
82
- const hasReplies = !!currentMessage && !!currentMessage.quickReplies;
83
- const hasNext = !!nextMessage && !!nextMessage._id;
84
- const keepIt = currentMessage.quickReplies.keepIt;
85
- if (hasReplies && !hasNext) {
86
- return true;
87
- }
88
- if (hasReplies && hasNext && keepIt) {
89
- return true;
90
- }
91
- return false;
92
- };
93
- this.renderQuickReplySend = () => {
94
- const { replies } = this.state;
95
- const { sendText, renderQuickReplySend: customSend } = this.props;
96
- return (<TouchableOpacity style={[styles.quickReply, styles.sendLink]} onPress={this.handleSend(replies)}>
97
- {customSend ? (customSend()) : (<Text style={styles.sendLinkText}>{sendText}</Text>)}
98
- </TouchableOpacity>);
99
- };
100
- }
101
- render() {
102
- const { currentMessage, color, quickReplyStyle } = this.props;
103
- const { replies } = this.state;
104
- if (!this.shouldComponentDisplay()) {
105
- return null;
106
79
  }
107
- const { type } = currentMessage.quickReplies;
108
- return (<View style={styles.container}>
109
- {currentMessage.quickReplies.values.map((reply, index) => {
80
+ }, [replies, currentMessage]);
81
+ const handleSend = (repliesData) => () => {
82
+ onQuickReply === null || onQuickReply === void 0 ? void 0 : onQuickReply(repliesData.map((reply) => ({
83
+ ...reply,
84
+ messageId: currentMessage._id,
85
+ })));
86
+ };
87
+ return (<View style={styles.container}>
88
+ {currentMessage.quickReplies.values.map((reply, index) => {
110
89
  const selected = type === 'checkbox' && replies.find(sameReply(reply));
111
- return (<TouchableOpacity onPress={this.handlePress(reply)} style={[
112
- styles.quickReply,
113
- quickReplyStyle,
114
- { borderColor: color },
115
- selected && { backgroundColor: color },
116
- ]} key={`${reply.value}-${index}`}>
117
- <Text numberOfLines={10} ellipsizeMode={'tail'} style={[
118
- styles.quickReplyText,
119
- { color: selected ? Color.white : color },
120
- ]}>
121
- {reply.title}
122
- </Text>
123
- </TouchableOpacity>);
90
+ return (<TouchableOpacity onPress={handlePress(reply)} style={[
91
+ styles.quickReply,
92
+ quickReplyStyle,
93
+ { borderColor: color },
94
+ selected && { backgroundColor: color },
95
+ ]} key={`${reply.value}-${index}`}>
96
+ <Text numberOfLines={10} ellipsizeMode={'tail'} style={[
97
+ styles.quickReplyText,
98
+ { color: selected ? Color.white : color },
99
+ ]}>
100
+ {reply.title}
101
+ </Text>
102
+ </TouchableOpacity>);
124
103
  })}
125
- {replies.length > 0 && this.renderQuickReplySend()}
126
- </View>);
127
- }
104
+ {replies.length > 0 && (<TouchableOpacity style={[styles.quickReply, styles.sendLink]} onPress={handleSend(replies)}>
105
+ {(renderQuickReplySend === null || renderQuickReplySend === void 0 ? void 0 : renderQuickReplySend()) || (<Text style={styles.sendLinkText}>{sendText}</Text>)}
106
+ </TouchableOpacity>)}
107
+ </View>);
128
108
  }
129
109
  QuickReplies.defaultProps = {
130
110
  currentMessage: {
@@ -1 +1 @@
1
- {"version":3,"file":"QuickReplies.js","sourceRoot":"","sources":["../src/QuickReplies.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"QuickReplies.js","sourceRoot":"","sources":["../src/QuickReplies.tsx"],"names":[],"mappings":"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"}
package/lib/Send.d.ts CHANGED
@@ -1,5 +1,5 @@
1
+ import * as React from 'react';
1
2
  import PropTypes from 'prop-types';
2
- import React, { Component } from 'react';
3
3
  import { StyleProp, ViewStyle, TextStyle, TouchableOpacityProps } from 'react-native';
4
4
  import { IMessage } from './Models';
5
5
  export interface SendProps<TMessage extends IMessage> {
@@ -13,8 +13,9 @@ export interface SendProps<TMessage extends IMessage> {
13
13
  sendButtonProps?: Partial<TouchableOpacityProps>;
14
14
  onSend?(messages: Partial<TMessage> | Partial<TMessage>[], shouldResetInputToolbar: boolean): void;
15
15
  }
16
- export default class Send<TMessage extends IMessage = IMessage> extends Component<SendProps<TMessage>> {
17
- static defaultProps: {
16
+ export declare const Send: {
17
+ <TMessage extends IMessage = IMessage>({ text, containerStyle, children, textStyle, label, alwaysShowSend, disabled, sendButtonProps, onSend, }: SendProps<TMessage>): JSX.Element;
18
+ defaultProps: {
18
19
  text: string;
19
20
  onSend: () => void;
20
21
  label: string;
@@ -25,7 +26,7 @@ export default class Send<TMessage extends IMessage = IMessage> extends Componen
25
26
  disabled: boolean;
26
27
  sendButtonProps: null;
27
28
  };
28
- static propTypes: {
29
+ propTypes: {
29
30
  text: PropTypes.Requireable<string>;
30
31
  onSend: PropTypes.Requireable<(...args: any[]) => any>;
31
32
  label: PropTypes.Requireable<string>;
@@ -36,6 +37,4 @@ export default class Send<TMessage extends IMessage = IMessage> extends Componen
36
37
  disabled: PropTypes.Requireable<boolean>;
37
38
  sendButtonProps: PropTypes.Requireable<object>;
38
39
  };
39
- handleOnPress: () => void;
40
- render(): JSX.Element;
41
- }
40
+ };
package/lib/Send.js CHANGED
@@ -1,6 +1,7 @@
1
+ import * as React from 'react';
1
2
  import PropTypes from 'prop-types';
2
- import React, { Component } from 'react';
3
3
  import { StyleSheet, Text, TouchableOpacity, View, } from 'react-native';
4
+ import { useCallbackOne, useMemoOne } from 'use-memo-one';
4
5
  import Color from './Color';
5
6
  import { StylePropType } from './utils';
6
7
  const styles = StyleSheet.create({
@@ -18,28 +19,22 @@ const styles = StyleSheet.create({
18
19
  marginRight: 10,
19
20
  },
20
21
  });
21
- export default class Send extends Component {
22
- constructor() {
23
- super(...arguments);
24
- this.handleOnPress = () => {
25
- const { text, onSend } = this.props;
26
- if (text && onSend) {
27
- onSend({ text: text.trim() }, true);
28
- }
29
- };
30
- }
31
- render() {
32
- const { text, containerStyle, children, textStyle, label, alwaysShowSend, disabled, sendButtonProps, } = this.props;
33
- if (alwaysShowSend || (text && text.trim().length > 0)) {
34
- return (<TouchableOpacity testID='send' accessible accessibilityLabel='send' style={[styles.container, containerStyle]} onPress={this.handleOnPress} accessibilityTraits='button' disabled={disabled} {...sendButtonProps}>
35
- <View>
36
- {children || <Text style={[styles.text, textStyle]}>{label}</Text>}
37
- </View>
38
- </TouchableOpacity>);
22
+ export const Send = ({ text, containerStyle, children, textStyle, label, alwaysShowSend, disabled, sendButtonProps, onSend, }) => {
23
+ const handleOnPress = useCallbackOne(() => {
24
+ if (text && onSend) {
25
+ onSend({ text: text.trim() }, true);
39
26
  }
40
- return <View />;
27
+ }, [text, onSend]);
28
+ const showSend = useMemoOne(() => alwaysShowSend || (text && text.trim().length > 0), [alwaysShowSend, text]);
29
+ if (showSend) {
30
+ return (<TouchableOpacity testID='send' accessible accessibilityLabel='send' style={[styles.container, containerStyle]} onPress={handleOnPress} accessibilityRole='button' disabled={disabled} {...sendButtonProps}>
31
+ <View>
32
+ {children || <Text style={[styles.text, textStyle]}>{label}</Text>}
33
+ </View>
34
+ </TouchableOpacity>);
41
35
  }
42
- }
36
+ return <View />;
37
+ };
43
38
  Send.defaultProps = {
44
39
  text: '',
45
40
  onSend: () => { },
package/lib/Send.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"Send.js","sourceRoot":"","sources":["../src/Send.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Send.js","sourceRoot":"","sources":["../src/Send.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,SAAS,MAAM,YAAY,CAAA;AAClC,OAAO,EACL,UAAU,EACV,IAAI,EACJ,gBAAgB,EAChB,IAAI,GAKL,MAAM,cAAc,CAAA;AACrB,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAEzD,OAAO,KAAK,MAAM,SAAS,CAAA;AAE3B,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAEvC,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC;IAC/B,SAAS,EAAE;QACT,MAAM,EAAE,EAAE;QACV,cAAc,EAAE,UAAU;KAC3B;IACD,IAAI,EAAE;QACJ,KAAK,EAAE,KAAK,CAAC,WAAW;QACxB,UAAU,EAAE,KAAK;QACjB,QAAQ,EAAE,EAAE;QACZ,eAAe,EAAE,KAAK,CAAC,qBAAqB;QAC5C,YAAY,EAAE,EAAE;QAChB,UAAU,EAAE,EAAE;QACd,WAAW,EAAE,EAAE;KAChB;CACF,CAAC,CAAA;AAiBF,MAAM,CAAC,MAAM,IAAI,GAAG,CAAuC,EACzD,IAAI,EACJ,cAAc,EACd,QAAQ,EACR,SAAS,EACT,KAAK,EACL,cAAc,EACd,QAAQ,EACR,eAAe,EACf,MAAM,GACc,EAAE,EAAE;IACxB,MAAM,aAAa,GAAG,cAAc,CAAC,GAAG,EAAE;QACxC,IAAI,IAAI,IAAI,MAAM,EAAE;YAClB,MAAM,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,EAAuB,EAAE,IAAI,CAAC,CAAA;SACzD;IACH,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAA;IAElB,MAAM,QAAQ,GAAG,UAAU,CACzB,GAAG,EAAE,CAAC,cAAc,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,EACxD,CAAC,cAAc,EAAE,IAAI,CAAC,CACvB,CAAA;IAED,IAAI,QAAQ,EAAE;QACZ,OAAO,CACL,CAAC,gBAAgB,CACf,MAAM,CAAC,MAAM,CACb,UAAU,CACV,kBAAkB,CAAC,MAAM,CACzB,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC,CAC1C,OAAO,CAAC,CAAC,aAAa,CAAC,CACvB,iBAAiB,CAAC,QAAQ,CAC1B,QAAQ,CAAC,CAAC,QAAQ,CAAC,CACnB,IAAI,eAAe,CAAC,CAEpB;QAAA,CAAC,IAAI,CACH;UAAA,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,CACpE;QAAA,EAAE,IAAI,CACR;MAAA,EAAE,gBAAgB,CAAC,CACpB,CAAA;KACF;IACD,OAAO,CAAC,IAAI,CAAC,AAAD,EAAG,CAAA;AACjB,CAAC,CAAA;AAED,IAAI,CAAC,YAAY,GAAG;IAClB,IAAI,EAAE,EAAE;IACR,MAAM,EAAE,GAAG,EAAE,GAAE,CAAC;IAChB,KAAK,EAAE,MAAM;IACb,cAAc,EAAE,EAAE;IAClB,SAAS,EAAE,EAAE;IACb,QAAQ,EAAE,IAAI;IACd,cAAc,EAAE,KAAK;IACrB,QAAQ,EAAE,KAAK;IACf,eAAe,EAAE,IAAI;CACtB,CAAA;AAED,IAAI,CAAC,SAAS,GAAG;IACf,IAAI,EAAE,SAAS,CAAC,MAAM;IACtB,MAAM,EAAE,SAAS,CAAC,IAAI;IACtB,KAAK,EAAE,SAAS,CAAC,MAAM;IACvB,cAAc,EAAE,aAAa;IAC7B,SAAS,EAAE,aAAa;IACxB,QAAQ,EAAE,SAAS,CAAC,OAAO;IAC3B,cAAc,EAAE,SAAS,CAAC,IAAI;IAC9B,QAAQ,EAAE,SAAS,CAAC,IAAI;IACxB,eAAe,EAAE,SAAS,CAAC,MAAM;CAClC,CAAA"}