react-native-gifted-chat 2.4.0 → 2.5.1
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/README.md +16 -6
- package/lib/Actions.d.ts +5 -6
- package/lib/Actions.js +16 -13
- package/lib/Actions.js.map +1 -1
- package/lib/Avatar.d.ts +10 -24
- package/lib/Avatar.js +24 -35
- package/lib/Avatar.js.flow +1 -1
- package/lib/Avatar.js.map +1 -1
- package/lib/Bubble.d.ts +30 -29
- package/lib/Bubble.js +90 -72
- package/lib/Bubble.js.flow +3 -1
- package/lib/Bubble.js.map +1 -1
- package/lib/Composer.d.ts +1 -1
- package/lib/Composer.js +30 -32
- package/lib/Composer.js.map +1 -1
- package/lib/Constant.js +1 -0
- package/lib/Constant.js.map +1 -1
- package/lib/Day.d.ts +3 -15
- package/lib/Day.js +2 -14
- package/lib/Day.js.flow +1 -1
- package/lib/Day.js.map +1 -1
- package/lib/GiftedAvatar.d.ts +7 -7
- package/lib/GiftedAvatar.js +30 -29
- package/lib/GiftedAvatar.js.map +1 -1
- package/lib/GiftedChat.d.ts +16 -89
- package/lib/GiftedChat.js +204 -350
- package/lib/GiftedChat.js.flow +3 -3
- package/lib/GiftedChat.js.map +1 -1
- package/lib/GiftedChatContext.d.ts +2 -1
- package/lib/GiftedChatContext.js.map +1 -1
- package/lib/InputToolbar.d.ts +7 -5
- package/lib/InputToolbar.js +41 -34
- package/lib/InputToolbar.js.map +1 -1
- package/lib/LoadEarlier.d.ts +4 -4
- package/lib/LoadEarlier.js +8 -6
- package/lib/LoadEarlier.js.map +1 -1
- package/lib/Message.d.ts +8 -9
- package/lib/Message.js +47 -40
- package/lib/Message.js.flow +1 -1
- package/lib/Message.js.map +1 -1
- package/lib/MessageAudio.d.ts +2 -1
- package/lib/MessageAudio.js +4 -4
- package/lib/MessageAudio.js.flow +1 -1
- package/lib/MessageAudio.js.map +1 -1
- package/lib/MessageContainer.d.ts +17 -17
- package/lib/MessageContainer.js +33 -51
- package/lib/MessageContainer.js.map +1 -1
- package/lib/MessageImage.d.ts +8 -5
- package/lib/MessageImage.js +6 -6
- package/lib/MessageImage.js.flow +1 -1
- package/lib/MessageImage.js.map +1 -1
- package/lib/MessageText.d.ts +11 -10
- package/lib/MessageText.js +5 -10
- package/lib/MessageText.js.flow +1 -1
- package/lib/MessageText.js.map +1 -1
- package/lib/MessageVideo.d.ts +2 -1
- package/lib/MessageVideo.js +4 -4
- package/lib/MessageVideo.js.flow +1 -1
- package/lib/MessageVideo.js.map +1 -1
- package/lib/Models.d.ts +7 -7
- package/lib/QuickReplies.d.ts +4 -3
- package/lib/QuickReplies.js +10 -16
- package/lib/QuickReplies.js.flow +4 -2
- package/lib/QuickReplies.js.map +1 -1
- package/lib/Send.d.ts +4 -4
- package/lib/Send.js +6 -9
- package/lib/Send.js.map +1 -1
- package/lib/SystemMessage.d.ts +6 -5
- package/lib/SystemMessage.js +1 -2
- package/lib/SystemMessage.js.flow +1 -1
- package/lib/SystemMessage.js.map +1 -1
- package/lib/Time.d.ts +7 -6
- package/lib/Time.js +1 -3
- package/lib/Time.js.flow +1 -1
- package/lib/Time.js.map +1 -1
- package/lib/TypingIndicator.d.ts +2 -1
- package/lib/TypingIndicator.js +5 -5
- package/lib/TypingIndicator.js.map +1 -1
- package/lib/hooks/useUpdateLayoutEffect.js +2 -4
- package/lib/hooks/useUpdateLayoutEffect.js.map +1 -1
- package/lib/index.d.ts +1 -0
- package/lib/index.js +1 -0
- package/lib/index.js.map +1 -1
- package/lib/logging.d.ts +2 -2
- package/lib/logging.js.map +1 -1
- package/lib/types.js.flow +1 -1
- package/lib/utils.d.ts +1 -1
- package/lib/utils.js +2 -4
- package/lib/utils.js.map +1 -1
- package/package.json +83 -53
- package/src/Actions.tsx +114 -0
- package/src/Avatar.tsx +178 -0
- package/src/Bubble.tsx +601 -0
- package/src/Color.ts +17 -0
- package/src/Composer.tsx +147 -0
- package/src/Constant.ts +18 -0
- package/src/Day.tsx +71 -0
- package/src/GiftedAvatar.tsx +205 -0
- package/src/GiftedChat.tsx +670 -0
- package/src/GiftedChatContext.ts +23 -0
- package/src/InputToolbar.tsx +113 -0
- package/src/LoadEarlier.tsx +108 -0
- package/src/Message.tsx +229 -0
- package/src/MessageAudio.tsx +19 -0
- package/src/MessageContainer.tsx +362 -0
- package/src/MessageImage.tsx +78 -0
- package/src/MessageText.tsx +187 -0
- package/src/MessageVideo.tsx +19 -0
- package/src/Models.ts +84 -0
- package/src/QuickReplies.tsx +186 -0
- package/src/Send.tsx +102 -0
- package/src/SystemMessage.tsx +61 -0
- package/src/Time.tsx +97 -0
- package/src/TypingIndicator.tsx +108 -0
- package/src/__tests__/Actions.test.tsx +10 -0
- package/src/__tests__/Avatar.test.tsx +13 -0
- package/src/__tests__/Bubble.test.tsx +23 -0
- package/src/__tests__/Color.test.tsx +5 -0
- package/src/__tests__/Composer.test.tsx +11 -0
- package/src/__tests__/Constant.test.tsx +5 -0
- package/src/__tests__/Day.test.tsx +23 -0
- package/src/__tests__/GiftedAvatar.test.tsx +11 -0
- package/src/__tests__/GiftedChat.test.tsx +36 -0
- package/src/__tests__/InputToolbar.test.tsx +11 -0
- package/src/__tests__/LoadEarlier.test.tsx +11 -0
- package/src/__tests__/Message.test.tsx +77 -0
- package/src/__tests__/MessageContainer.test.tsx +11 -0
- package/src/__tests__/MessageImage.test.tsx +27 -0
- package/src/__tests__/MessageText.test.tsx +11 -0
- package/src/__tests__/Send.test.tsx +22 -0
- package/src/__tests__/SystemMessage.test.tsx +27 -0
- package/src/__tests__/Time.test.tsx +29 -0
- package/src/__tests__/__snapshots__/Actions.test.tsx.snap +76 -0
- package/src/__tests__/__snapshots__/Avatar.test.tsx.snap +17 -0
- package/src/__tests__/__snapshots__/Bubble.test.tsx.snap +145 -0
- package/src/__tests__/__snapshots__/Color.test.tsx.snap +21 -0
- package/src/__tests__/__snapshots__/Composer.test.tsx.snap +35 -0
- package/src/__tests__/__snapshots__/Constant.test.tsx.snap +16 -0
- package/src/__tests__/__snapshots__/Day.test.tsx.snap +37 -0
- package/src/__tests__/__snapshots__/GiftedAvatar.test.tsx.snap +22 -0
- package/src/__tests__/__snapshots__/GiftedChat.test.tsx.snap +15 -0
- package/src/__tests__/__snapshots__/InputToolbar.test.tsx.snap +60 -0
- package/src/__tests__/__snapshots__/LoadEarlier.test.tsx.snap +74 -0
- package/src/__tests__/__snapshots__/Message.test.tsx.snap +628 -0
- package/src/__tests__/__snapshots__/MessageContainer.test.tsx.snap +127 -0
- package/src/__tests__/__snapshots__/MessageImage.test.tsx.snap +38 -0
- package/src/__tests__/__snapshots__/MessageText.test.tsx.snap +30 -0
- package/src/__tests__/__snapshots__/Send.test.tsx.snap +129 -0
- package/src/__tests__/__snapshots__/SystemMessage.test.tsx.snap +38 -0
- package/src/__tests__/__snapshots__/Time.test.tsx.snap +33 -0
- package/src/__tests__/data.ts +8 -0
- package/src/__tests__/utils.test.ts +31 -0
- package/src/hooks/useUpdateLayoutEffect.ts +21 -0
- package/src/index.ts +4 -0
- package/src/logging.ts +8 -0
- package/src/utils.ts +39 -0
- package/.eslintignore +0 -2
- package/.eslintrc.js +0 -21
- package/jest.config.js +0 -15
package/lib/MessageContainer.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import PropTypes from 'prop-types';
|
|
2
1
|
import React from 'react';
|
|
2
|
+
import PropTypes from 'prop-types';
|
|
3
3
|
import { FlatList, View, StyleSheet, TouchableOpacity, Text, Platform, } from 'react-native';
|
|
4
4
|
import { LoadEarlier } from './LoadEarlier';
|
|
5
5
|
import Message from './Message';
|
|
@@ -47,7 +47,7 @@ const styles = StyleSheet.create({
|
|
|
47
47
|
shadowRadius: 1,
|
|
48
48
|
},
|
|
49
49
|
});
|
|
50
|
-
|
|
50
|
+
class MessageContainer extends React.PureComponent {
|
|
51
51
|
constructor() {
|
|
52
52
|
super(...arguments);
|
|
53
53
|
this.state = {
|
|
@@ -55,15 +55,13 @@ export default class MessageContainer extends React.PureComponent {
|
|
|
55
55
|
hasScrolled: false,
|
|
56
56
|
};
|
|
57
57
|
this.renderTypingIndicator = () => {
|
|
58
|
-
if (Platform.OS === 'web')
|
|
58
|
+
if (Platform.OS === 'web')
|
|
59
59
|
return null;
|
|
60
|
-
}
|
|
61
60
|
return <TypingIndicator isTyping={this.props.isTyping || false}/>;
|
|
62
61
|
};
|
|
63
62
|
this.renderFooter = () => {
|
|
64
|
-
if (this.props.renderFooter)
|
|
63
|
+
if (this.props.renderFooter)
|
|
65
64
|
return this.props.renderFooter(this.props);
|
|
66
|
-
}
|
|
67
65
|
return this.renderTypingIndicator();
|
|
68
66
|
};
|
|
69
67
|
this.renderLoadEarlier = () => {
|
|
@@ -71,51 +69,39 @@ export default class MessageContainer extends React.PureComponent {
|
|
|
71
69
|
const loadEarlierProps = {
|
|
72
70
|
...this.props,
|
|
73
71
|
};
|
|
74
|
-
if (this.props.renderLoadEarlier)
|
|
72
|
+
if (this.props.renderLoadEarlier)
|
|
75
73
|
return this.props.renderLoadEarlier(loadEarlierProps);
|
|
76
|
-
}
|
|
77
74
|
return <LoadEarlier {...loadEarlierProps}/>;
|
|
78
75
|
}
|
|
79
76
|
return null;
|
|
80
77
|
};
|
|
81
78
|
this.scrollToBottom = (animated = true) => {
|
|
82
79
|
const { inverted } = this.props;
|
|
83
|
-
if (inverted)
|
|
80
|
+
if (inverted)
|
|
84
81
|
this.scrollTo({ offset: 0, animated });
|
|
85
|
-
|
|
86
|
-
else if (this.props.forwardRef && this.props.forwardRef.current) {
|
|
82
|
+
else if (this.props.forwardRef?.current)
|
|
87
83
|
this.props.forwardRef.current.scrollToEnd({ animated });
|
|
88
|
-
}
|
|
89
84
|
};
|
|
90
85
|
this.handleOnScroll = (event) => {
|
|
91
86
|
const { nativeEvent: { contentOffset: { y: contentOffsetY }, contentSize: { height: contentSizeHeight }, layoutMeasurement: { height: layoutMeasurementHeight }, }, } = event;
|
|
92
87
|
const { scrollToBottomOffset } = this.props;
|
|
93
|
-
if (this.props.inverted)
|
|
94
|
-
if (contentOffsetY > scrollToBottomOffset)
|
|
95
|
-
this.setState({ showScrollBottom: true, hasScrolled: true });
|
|
96
|
-
}
|
|
97
|
-
else {
|
|
98
|
-
this.setState({ showScrollBottom: false, hasScrolled: true });
|
|
99
|
-
}
|
|
100
|
-
}
|
|
101
|
-
else {
|
|
102
|
-
if (contentOffsetY < scrollToBottomOffset &&
|
|
103
|
-
contentSizeHeight - layoutMeasurementHeight > scrollToBottomOffset) {
|
|
88
|
+
if (this.props.inverted)
|
|
89
|
+
if (contentOffsetY > scrollToBottomOffset)
|
|
104
90
|
this.setState({ showScrollBottom: true, hasScrolled: true });
|
|
105
|
-
|
|
106
|
-
else {
|
|
91
|
+
else
|
|
107
92
|
this.setState({ showScrollBottom: false, hasScrolled: true });
|
|
108
|
-
|
|
109
|
-
|
|
93
|
+
else if (contentOffsetY < scrollToBottomOffset &&
|
|
94
|
+
contentSizeHeight - layoutMeasurementHeight > scrollToBottomOffset)
|
|
95
|
+
this.setState({ showScrollBottom: true, hasScrolled: true });
|
|
96
|
+
else
|
|
97
|
+
this.setState({ showScrollBottom: false, hasScrolled: true });
|
|
110
98
|
};
|
|
111
99
|
this.renderRow = ({ item, index }) => {
|
|
112
|
-
if (!item._id && item._id !== 0)
|
|
100
|
+
if (!item._id && item._id !== 0)
|
|
113
101
|
warning('GiftedChat: `_id` is missing for message', JSON.stringify(item));
|
|
114
|
-
}
|
|
115
102
|
if (!item.user) {
|
|
116
|
-
if (!item.system)
|
|
103
|
+
if (!item.system)
|
|
117
104
|
warning('GiftedChat: `user` is missing for message', JSON.stringify(item));
|
|
118
|
-
}
|
|
119
105
|
item.user = { _id: 0 };
|
|
120
106
|
}
|
|
121
107
|
const { messages, user, inverted, ...restProps } = this.props;
|
|
@@ -125,61 +111,56 @@ export default class MessageContainer extends React.PureComponent {
|
|
|
125
111
|
const messageProps = {
|
|
126
112
|
...restProps,
|
|
127
113
|
user,
|
|
128
|
-
key: item._id,
|
|
129
114
|
currentMessage: item,
|
|
130
115
|
previousMessage,
|
|
131
116
|
inverted,
|
|
132
117
|
nextMessage,
|
|
133
118
|
position: item.user._id === user._id ? 'right' : 'left',
|
|
134
119
|
};
|
|
135
|
-
if (this.props.renderMessage)
|
|
120
|
+
if (this.props.renderMessage)
|
|
136
121
|
return this.props.renderMessage(messageProps);
|
|
137
|
-
}
|
|
138
|
-
return <Message {...messageProps}/>;
|
|
122
|
+
return <Message key={item._id.toString()} {...messageProps}/>;
|
|
139
123
|
}
|
|
140
124
|
return null;
|
|
141
125
|
};
|
|
142
126
|
this.renderChatEmpty = () => {
|
|
143
|
-
if (this.props.renderChatEmpty)
|
|
144
|
-
return this.props.inverted
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
}
|
|
127
|
+
if (this.props.renderChatEmpty)
|
|
128
|
+
return this.props.inverted
|
|
129
|
+
? (this.props.renderChatEmpty())
|
|
130
|
+
: (<View style={styles.emptyChatContainer}>
|
|
131
|
+
{this.props.renderChatEmpty()}
|
|
132
|
+
</View>);
|
|
148
133
|
return <View style={styles.container}/>;
|
|
149
134
|
};
|
|
150
135
|
this.renderHeaderWrapper = () => (<View style={styles.headerWrapper}>{this.renderLoadEarlier()}</View>);
|
|
151
136
|
this.onLayoutList = () => {
|
|
152
137
|
if (!this.props.inverted &&
|
|
153
138
|
!!this.props.messages &&
|
|
154
|
-
this.props.messages.length)
|
|
139
|
+
this.props.messages.length)
|
|
155
140
|
setTimeout(() => this.scrollToBottom && this.scrollToBottom(false), 15 * this.props.messages.length);
|
|
156
|
-
}
|
|
157
141
|
};
|
|
158
142
|
this.onEndReached = ({ distanceFromEnd }) => {
|
|
159
|
-
const { loadEarlier, onLoadEarlier, infiniteScroll, isLoadingEarlier
|
|
143
|
+
const { loadEarlier, onLoadEarlier, infiniteScroll, isLoadingEarlier } = this.props;
|
|
160
144
|
if (infiniteScroll &&
|
|
161
145
|
(this.state.hasScrolled || distanceFromEnd > 0) &&
|
|
162
146
|
distanceFromEnd <= 100 &&
|
|
163
147
|
loadEarlier &&
|
|
164
148
|
onLoadEarlier &&
|
|
165
149
|
!isLoadingEarlier &&
|
|
166
|
-
Platform.OS !== 'web')
|
|
150
|
+
Platform.OS !== 'web')
|
|
167
151
|
onLoadEarlier();
|
|
168
|
-
}
|
|
169
152
|
};
|
|
170
153
|
this.keyExtractor = (item) => `${item._id}`;
|
|
171
154
|
}
|
|
172
155
|
scrollTo(options) {
|
|
173
|
-
if (this.props.forwardRef
|
|
156
|
+
if (this.props.forwardRef?.current && options)
|
|
174
157
|
this.props.forwardRef.current.scrollToOffset(options);
|
|
175
|
-
}
|
|
176
158
|
}
|
|
177
159
|
renderScrollBottomComponent() {
|
|
178
160
|
const { scrollToBottomComponent } = this.props;
|
|
179
|
-
if (scrollToBottomComponent)
|
|
161
|
+
if (scrollToBottomComponent)
|
|
180
162
|
return scrollToBottomComponent();
|
|
181
|
-
}
|
|
182
|
-
return <Text>V</Text>;
|
|
163
|
+
return <Text>{'V'}</Text>;
|
|
183
164
|
}
|
|
184
165
|
renderScrollToBottomWrapper() {
|
|
185
166
|
const propsStyle = this.props.scrollToBottomStyle || {};
|
|
@@ -192,7 +173,7 @@ export default class MessageContainer extends React.PureComponent {
|
|
|
192
173
|
render() {
|
|
193
174
|
const { inverted } = this.props;
|
|
194
175
|
return (<View style={this.props.alignTop ? styles.containerAlignTop : styles.container}>
|
|
195
|
-
<FlatList ref={this.props.forwardRef} extraData={[this.props.extraData, this.props.isTyping]} keyExtractor={this.keyExtractor}
|
|
176
|
+
<FlatList ref={this.props.forwardRef} extraData={[this.props.extraData, this.props.isTyping]} keyExtractor={this.keyExtractor} automaticallyAdjustContentInsets={false} inverted={inverted} data={this.props.messages} style={styles.listStyle} contentContainerStyle={styles.contentContainerStyle} renderItem={this.renderRow} {...this.props.invertibleScrollViewProps} ListEmptyComponent={this.renderChatEmpty} ListFooterComponent={inverted ? this.renderHeaderWrapper : this.renderFooter} ListHeaderComponent={inverted ? this.renderFooter : this.renderHeaderWrapper} onScroll={this.handleOnScroll} scrollEventThrottle={100} onLayout={this.onLayoutList} onEndReached={this.onEndReached} onEndReachedThreshold={0.1} {...this.props.listViewProps}/>
|
|
196
177
|
{this.state.showScrollBottom && this.props.scrollToBottom
|
|
197
178
|
? this.renderScrollToBottomWrapper()
|
|
198
179
|
: null}
|
|
@@ -241,4 +222,5 @@ MessageContainer.propTypes = {
|
|
|
241
222
|
scrollToBottomStyle: StylePropType,
|
|
242
223
|
infiniteScroll: PropTypes.bool,
|
|
243
224
|
};
|
|
225
|
+
export default MessageContainer;
|
|
244
226
|
//# sourceMappingURL=MessageContainer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MessageContainer.js","sourceRoot":"","sources":["../src/MessageContainer.tsx"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"MessageContainer.js","sourceRoot":"","sources":["../src/MessageContainer.tsx"],"names":[],"mappings":"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"}
|
package/lib/MessageImage.d.ts
CHANGED
|
@@ -1,20 +1,23 @@
|
|
|
1
1
|
import PropTypes from 'prop-types';
|
|
2
|
-
import
|
|
2
|
+
import React from 'react';
|
|
3
|
+
import { ImageProps, ViewStyle, StyleProp, ImageStyle, ImageURISource } from 'react-native';
|
|
3
4
|
import { LightboxProps } from 'react-native-lightbox-v2';
|
|
4
5
|
import { IMessage } from './Models';
|
|
5
6
|
export interface MessageImageProps<TMessage extends IMessage> {
|
|
6
|
-
currentMessage
|
|
7
|
+
currentMessage: TMessage;
|
|
7
8
|
containerStyle?: StyleProp<ViewStyle>;
|
|
9
|
+
imageSourceProps?: Partial<ImageURISource>;
|
|
8
10
|
imageStyle?: StyleProp<ImageStyle>;
|
|
9
11
|
imageProps?: Partial<ImageProps>;
|
|
10
12
|
lightboxProps?: LightboxProps;
|
|
11
13
|
}
|
|
12
|
-
export declare function MessageImage<TMessage extends IMessage = IMessage>({ containerStyle, lightboxProps, imageProps, imageStyle, currentMessage, }: MessageImageProps<TMessage>): JSX.Element | null;
|
|
14
|
+
export declare function MessageImage<TMessage extends IMessage = IMessage>({ containerStyle, lightboxProps, imageProps, imageSourceProps, imageStyle, currentMessage, }: MessageImageProps<TMessage>): React.JSX.Element | null;
|
|
13
15
|
export declare namespace MessageImage {
|
|
14
16
|
var propTypes: {
|
|
15
17
|
currentMessage: PropTypes.Requireable<object>;
|
|
16
|
-
containerStyle: PropTypes.Requireable<number | boolean | object
|
|
17
|
-
|
|
18
|
+
containerStyle: PropTypes.Requireable<NonNullable<number | boolean | object | null | undefined>>;
|
|
19
|
+
imageSourceProps: PropTypes.Requireable<object>;
|
|
20
|
+
imageStyle: PropTypes.Requireable<NonNullable<number | boolean | object | null | undefined>>;
|
|
18
21
|
imageProps: PropTypes.Requireable<object>;
|
|
19
22
|
lightboxProps: PropTypes.Requireable<object>;
|
|
20
23
|
};
|
package/lib/MessageImage.js
CHANGED
|
@@ -5,7 +5,6 @@ import { Image, StyleSheet, View, } from 'react-native';
|
|
|
5
5
|
import Lightbox from 'react-native-lightbox-v2';
|
|
6
6
|
import { StylePropType } from './utils';
|
|
7
7
|
const styles = StyleSheet.create({
|
|
8
|
-
container: {},
|
|
9
8
|
image: {
|
|
10
9
|
width: 150,
|
|
11
10
|
height: 100,
|
|
@@ -18,21 +17,22 @@ const styles = StyleSheet.create({
|
|
|
18
17
|
resizeMode: 'contain',
|
|
19
18
|
},
|
|
20
19
|
});
|
|
21
|
-
export function MessageImage({ containerStyle, lightboxProps
|
|
22
|
-
if (currentMessage == null)
|
|
20
|
+
export function MessageImage({ containerStyle, lightboxProps, imageProps, imageSourceProps, imageStyle, currentMessage, }) {
|
|
21
|
+
if (currentMessage == null)
|
|
23
22
|
return null;
|
|
24
|
-
}
|
|
25
|
-
|
|
23
|
+
return (<View style={containerStyle}>
|
|
24
|
+
{/* @ts-expect-error: Lightbox types are not fully compatible */}
|
|
26
25
|
<Lightbox activeProps={{
|
|
27
26
|
style: styles.imageActive,
|
|
28
27
|
}} {...lightboxProps}>
|
|
29
|
-
<Image {...imageProps} style={[styles.image, imageStyle]} source={{ uri: currentMessage.image }}/>
|
|
28
|
+
<Image {...imageProps} style={[styles.image, imageStyle]} source={{ ...imageSourceProps, uri: currentMessage.image }}/>
|
|
30
29
|
</Lightbox>
|
|
31
30
|
</View>);
|
|
32
31
|
}
|
|
33
32
|
MessageImage.propTypes = {
|
|
34
33
|
currentMessage: PropTypes.object,
|
|
35
34
|
containerStyle: StylePropType,
|
|
35
|
+
imageSourceProps: PropTypes.object,
|
|
36
36
|
imageStyle: StylePropType,
|
|
37
37
|
imageProps: PropTypes.object,
|
|
38
38
|
lightboxProps: PropTypes.object,
|
package/lib/MessageImage.js.flow
CHANGED
|
@@ -8,7 +8,7 @@ import type {
|
|
|
8
8
|
} from 'react-native/Libraries/StyleSheet/StyleSheet'
|
|
9
9
|
|
|
10
10
|
export type MessageImageProps<TMessage: IMessage = IMessage> = $ReadOnly<{|
|
|
11
|
-
currentMessage
|
|
11
|
+
currentMessage: TMessage,
|
|
12
12
|
containerStyle?: ViewStyleProp,
|
|
13
13
|
imageStyle?: ImageStyleProp,
|
|
14
14
|
imageProps?: $Shape<React.ElementProps<typeof Image>>,
|
package/lib/MessageImage.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MessageImage.js","sourceRoot":"","sources":["../src/MessageImage.tsx"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,YAAY,CAAA;AAClC,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EACL,KAAK,EACL,UAAU,EACV,IAAI,
|
|
1
|
+
{"version":3,"file":"MessageImage.js","sourceRoot":"","sources":["../src/MessageImage.tsx"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,YAAY,CAAA;AAClC,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EACL,KAAK,EACL,UAAU,EACV,IAAI,GAML,MAAM,cAAc,CAAA;AACrB,oBAAoB;AACpB,OAAO,QAA2B,MAAM,0BAA0B,CAAA;AAElE,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAEvC,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC;IAC/B,KAAK,EAAE;QACL,KAAK,EAAE,GAAG;QACV,MAAM,EAAE,GAAG;QACX,YAAY,EAAE,EAAE;QAChB,MAAM,EAAE,CAAC;QACT,UAAU,EAAE,OAAO;KACpB;IACD,WAAW,EAAE;QACX,IAAI,EAAE,CAAC;QACP,UAAU,EAAE,SAAS;KACtB;CACF,CAAC,CAAA;AAWF,MAAM,UAAU,YAAY,CAAwC,EAClE,cAAc,EACd,aAAa,EACb,UAAU,EACV,gBAAgB,EAChB,UAAU,EACV,cAAc,GACc;IAC5B,IAAI,cAAc,IAAI,IAAI;QACxB,OAAO,IAAI,CAAA;IAEb,OAAO,CACL,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,cAAc,CAAC,CAC1B;MAAA,CAAC,+DAA+D,CAChE;MAAA,CAAC,QAAQ,CACP,WAAW,CAAC,CAAC;YACX,KAAK,EAAE,MAAM,CAAC,WAAW;SAC1B,CAAC,CACF,IAAI,aAAa,CAAC,CAElB;QAAA,CAAC,KAAK,CACJ,IAAI,UAAU,CAAC,CACf,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC,CAClC,MAAM,CAAC,CAAC,EAAE,GAAG,gBAAgB,EAAE,GAAG,EAAE,cAAc,CAAC,KAAK,EAAE,CAAC,EAE/D;MAAA,EAAE,QAAQ,CACZ;IAAA,EAAE,IAAI,CAAC,CACR,CAAA;AACH,CAAC;AAED,YAAY,CAAC,SAAS,GAAG;IACvB,cAAc,EAAE,SAAS,CAAC,MAAM;IAChC,cAAc,EAAE,aAAa;IAC7B,gBAAgB,EAAE,SAAS,CAAC,MAAM;IAClC,UAAU,EAAE,aAAa;IACzB,UAAU,EAAE,SAAS,CAAC,MAAM;IAC5B,aAAa,EAAE,SAAS,CAAC,MAAM;CAChC,CAAA"}
|
package/lib/MessageText.d.ts
CHANGED
|
@@ -1,37 +1,38 @@
|
|
|
1
1
|
import PropTypes from 'prop-types';
|
|
2
|
+
import React from 'react';
|
|
2
3
|
import { TextProps, StyleProp, ViewStyle, TextStyle } from 'react-native';
|
|
3
4
|
import { LeftRightStyle, IMessage } from './Models';
|
|
4
5
|
export interface MessageTextProps<TMessage extends IMessage> {
|
|
5
6
|
position?: 'left' | 'right';
|
|
6
7
|
optionTitles?: string[];
|
|
7
|
-
currentMessage
|
|
8
|
+
currentMessage: TMessage;
|
|
8
9
|
containerStyle?: LeftRightStyle<ViewStyle>;
|
|
9
10
|
textStyle?: LeftRightStyle<TextStyle>;
|
|
10
11
|
linkStyle?: LeftRightStyle<TextStyle>;
|
|
11
12
|
textProps?: TextProps;
|
|
12
13
|
customTextStyle?: StyleProp<TextStyle>;
|
|
13
|
-
parsePatterns
|
|
14
|
+
parsePatterns?: (linkStyle: TextStyle) => [];
|
|
14
15
|
}
|
|
15
|
-
export declare function MessageText<TMessage extends IMessage = IMessage>({ currentMessage, optionTitles, position, containerStyle, textStyle, linkStyle: linkStyleProp, customTextStyle, parsePatterns, textProps, }: MessageTextProps<TMessage>): JSX.Element;
|
|
16
|
+
export declare function MessageText<TMessage extends IMessage = IMessage>({ currentMessage, optionTitles, position, containerStyle, textStyle, linkStyle: linkStyleProp, customTextStyle, parsePatterns, textProps, }: MessageTextProps<TMessage>): React.JSX.Element;
|
|
16
17
|
export declare namespace MessageText {
|
|
17
18
|
var propTypes: {
|
|
18
19
|
position: PropTypes.Requireable<string>;
|
|
19
20
|
optionTitles: PropTypes.Requireable<(string | null | undefined)[]>;
|
|
20
21
|
currentMessage: PropTypes.Requireable<object>;
|
|
21
22
|
containerStyle: PropTypes.Requireable<PropTypes.InferProps<{
|
|
22
|
-
left: PropTypes.Requireable<number | boolean | object
|
|
23
|
-
right: PropTypes.Requireable<number | boolean | object
|
|
23
|
+
left: PropTypes.Requireable<NonNullable<number | boolean | object | null | undefined>>;
|
|
24
|
+
right: PropTypes.Requireable<NonNullable<number | boolean | object | null | undefined>>;
|
|
24
25
|
}>>;
|
|
25
26
|
textStyle: PropTypes.Requireable<PropTypes.InferProps<{
|
|
26
|
-
left: PropTypes.Requireable<number | boolean | object
|
|
27
|
-
right: PropTypes.Requireable<number | boolean | object
|
|
27
|
+
left: PropTypes.Requireable<NonNullable<number | boolean | object | null | undefined>>;
|
|
28
|
+
right: PropTypes.Requireable<NonNullable<number | boolean | object | null | undefined>>;
|
|
28
29
|
}>>;
|
|
29
30
|
linkStyle: PropTypes.Requireable<PropTypes.InferProps<{
|
|
30
|
-
left: PropTypes.Requireable<number | boolean | object
|
|
31
|
-
right: PropTypes.Requireable<number | boolean | object
|
|
31
|
+
left: PropTypes.Requireable<NonNullable<number | boolean | object | null | undefined>>;
|
|
32
|
+
right: PropTypes.Requireable<NonNullable<number | boolean | object | null | undefined>>;
|
|
32
33
|
}>>;
|
|
33
34
|
parsePatterns: PropTypes.Requireable<(...args: any[]) => any>;
|
|
34
35
|
textProps: PropTypes.Requireable<object>;
|
|
35
|
-
customTextStyle: PropTypes.Requireable<number | boolean | object
|
|
36
|
+
customTextStyle: PropTypes.Requireable<NonNullable<number | boolean | object | null | undefined>>;
|
|
36
37
|
};
|
|
37
38
|
}
|
package/lib/MessageText.js
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import PropTypes from 'prop-types';
|
|
2
2
|
import React from 'react';
|
|
3
3
|
import { Linking, StyleSheet, View, } from 'react-native';
|
|
4
|
-
// @ts-ignore
|
|
5
4
|
import ParsedText from 'react-native-parsed-text';
|
|
6
5
|
import { StylePropType } from './utils';
|
|
7
6
|
import { useChatContext } from './GiftedChatContext';
|
|
@@ -42,7 +41,7 @@ const styles = {
|
|
|
42
41
|
}),
|
|
43
42
|
};
|
|
44
43
|
const DEFAULT_OPTION_TITLES = ['Call', 'Text', 'Cancel'];
|
|
45
|
-
export function MessageText({ currentMessage = {}, optionTitles = DEFAULT_OPTION_TITLES, position = 'left', containerStyle, textStyle, linkStyle: linkStyleProp, customTextStyle, parsePatterns
|
|
44
|
+
export function MessageText({ currentMessage = {}, optionTitles = DEFAULT_OPTION_TITLES, position = 'left', containerStyle, textStyle, linkStyle: linkStyleProp, customTextStyle, parsePatterns, textProps, }) {
|
|
46
45
|
const { actionSheet } = useChatContext();
|
|
47
46
|
// TODO: React.memo
|
|
48
47
|
// const shouldComponentUpdate = (nextProps: MessageTextProps<TMessage>) => {
|
|
@@ -55,14 +54,12 @@ export function MessageText({ currentMessage = {}, optionTitles = DEFAULT_OPTION
|
|
|
55
54
|
const onUrlPress = (url) => {
|
|
56
55
|
// When someone sends a message that includes a website address beginning with "www." (omitting the scheme),
|
|
57
56
|
// 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))
|
|
57
|
+
if (WWW_URL_PATTERN.test(url))
|
|
59
58
|
onUrlPress(`https://${url}`);
|
|
60
|
-
|
|
61
|
-
else {
|
|
59
|
+
else
|
|
62
60
|
Linking.openURL(url).catch(e => {
|
|
63
61
|
error(e, 'No handler for URL:', url);
|
|
64
62
|
});
|
|
65
|
-
}
|
|
66
63
|
};
|
|
67
64
|
const onPhonePress = (phone) => {
|
|
68
65
|
const options = optionTitles && optionTitles.length > 0
|
|
@@ -84,15 +81,13 @@ export function MessageText({ currentMessage = {}, optionTitles = DEFAULT_OPTION
|
|
|
84
81
|
error(e, 'No handler for text');
|
|
85
82
|
});
|
|
86
83
|
break;
|
|
87
|
-
default:
|
|
88
|
-
break;
|
|
89
84
|
}
|
|
90
85
|
});
|
|
91
86
|
};
|
|
92
87
|
const onEmailPress = (email) => Linking.openURL(`mailto:${email}`).catch(e => error(e, 'No handler for mailto'));
|
|
93
88
|
const linkStyle = [
|
|
94
89
|
styles[position].link,
|
|
95
|
-
linkStyleProp
|
|
90
|
+
linkStyleProp?.[position],
|
|
96
91
|
];
|
|
97
92
|
return (<View style={[
|
|
98
93
|
styles[position].container,
|
|
@@ -103,7 +98,7 @@ export function MessageText({ currentMessage = {}, optionTitles = DEFAULT_OPTION
|
|
|
103
98
|
textStyle && textStyle[position],
|
|
104
99
|
customTextStyle,
|
|
105
100
|
]} parse={[
|
|
106
|
-
...parsePatterns(linkStyle),
|
|
101
|
+
...(parsePatterns ? parsePatterns(linkStyle) : []),
|
|
107
102
|
{ type: 'url', style: linkStyle, onPress: onUrlPress },
|
|
108
103
|
{ type: 'phone', style: linkStyle, onPress: onPhonePress },
|
|
109
104
|
{ type: 'email', style: linkStyle, onPress: onEmailPress },
|
package/lib/MessageText.js.flow
CHANGED
|
@@ -9,7 +9,7 @@ import * as React from 'react'
|
|
|
9
9
|
|
|
10
10
|
export type MessageTextProps<TMessage: IMessage = IMessage> = $ReadOnly<{|
|
|
11
11
|
position: 'left' | 'right',
|
|
12
|
-
currentMessage
|
|
12
|
+
currentMessage: TMessage,
|
|
13
13
|
containerStyle: LeftRightStyle<ViewStyleProp>,
|
|
14
14
|
textStyle?: LeftRightStyle<TextStyleProp>,
|
|
15
15
|
linkStyle?: LeftRightStyle<TextStyleProp>,
|
package/lib/MessageText.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MessageText.js","sourceRoot":"","sources":["../src/MessageText.tsx"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,YAAY,CAAA;AAClC,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EACL,OAAO,EACP,UAAU,EACV,IAAI,GAKL,MAAM,cAAc,CAAA;AAErB,
|
|
1
|
+
{"version":3,"file":"MessageText.js","sourceRoot":"","sources":["../src/MessageText.tsx"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,YAAY,CAAA;AAClC,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EACL,OAAO,EACP,UAAU,EACV,IAAI,GAKL,MAAM,cAAc,CAAA;AAErB,OAAO,UAAU,MAAM,0BAA0B,CAAA;AAEjD,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AACvC,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AACpD,OAAO,EAAE,KAAK,EAAE,MAAM,WAAW,CAAA;AAEjC,MAAM,eAAe,GAAG,SAAS,CAAA;AAEjC,MAAM,EAAE,SAAS,EAAE,GAAG,UAAU,CAAC,MAAM,CAAC;IACtC,SAAS,EAAE;QACT,QAAQ,EAAE,EAAE;QACZ,UAAU,EAAE,EAAE;QACd,SAAS,EAAE,CAAC;QACZ,YAAY,EAAE,CAAC;QACf,UAAU,EAAE,EAAE;QACd,WAAW,EAAE,EAAE;KAChB;CACF,CAAC,CAAA;AAEF,MAAM,MAAM,GAAG;IACb,IAAI,EAAE,UAAU,CAAC,MAAM,CAAC;QACtB,SAAS,EAAE,EAAE;QACb,IAAI,EAAE;YACJ,KAAK,EAAE,OAAO;YACd,GAAG,SAAS;SACb;QACD,IAAI,EAAE;YACJ,KAAK,EAAE,OAAO;YACd,kBAAkB,EAAE,WAAW;SAChC;KACF,CAAC;IACF,KAAK,EAAE,UAAU,CAAC,MAAM,CAAC;QACvB,SAAS,EAAE,EAAE;QACb,IAAI,EAAE;YACJ,KAAK,EAAE,OAAO;YACd,GAAG,SAAS;SACb;QACD,IAAI,EAAE;YACJ,KAAK,EAAE,OAAO;YACd,kBAAkB,EAAE,WAAW;SAChC;KACF,CAAC;CACH,CAAA;AAED,MAAM,qBAAqB,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAA;AAcxD,MAAM,UAAU,WAAW,CAAwC,EACjE,cAAc,GAAG,EAAc,EAC/B,YAAY,GAAG,qBAAqB,EACpC,QAAQ,GAAG,MAAM,EACjB,cAAc,EACd,SAAS,EACT,SAAS,EAAE,aAAa,EACxB,eAAe,EACf,aAAa,EACb,SAAS,GACkB;IAC3B,MAAM,EAAE,WAAW,EAAE,GAAG,cAAc,EAAE,CAAA;IAExC,mBAAmB;IACnB,6EAA6E;IAC7E,aAAa;IACb,0BAA0B;IAC1B,oCAAoC;IACpC,4DAA4D;IAC5D,MAAM;IACN,IAAI;IAEJ,MAAM,UAAU,GAAG,CAAC,GAAW,EAAE,EAAE;QACjC,4GAA4G;QAC5G,8GAA8G;QAC9G,IAAI,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC;YAC3B,UAAU,CAAC,WAAW,GAAG,EAAE,CAAC,CAAA;;YAE5B,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;gBAC7B,KAAK,CAAC,CAAC,EAAE,qBAAqB,EAAE,GAAG,CAAC,CAAA;YACtC,CAAC,CAAC,CAAA;IACN,CAAC,CAAA;IAED,MAAM,YAAY,GAAG,CAAC,KAAa,EAAE,EAAE;QACrC,MAAM,OAAO,GACX,YAAY,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC;YACrC,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;YAC1B,CAAC,CAAC,qBAAqB,CAAA;QAC3B,MAAM,iBAAiB,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,CAAA;QAC5C,WAAW,EAAE,CAAC,0BAA0B,CACtC;YACE,OAAO;YACP,iBAAiB;SAClB,EACD,CAAC,WAAoB,EAAE,EAAE;YACvB,QAAQ,WAAW,EAAE,CAAC;gBACpB,KAAK,CAAC;oBACJ,OAAO,CAAC,OAAO,CAAC,OAAO,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;wBACxC,KAAK,CAAC,CAAC,EAAE,0BAA0B,CAAC,CAAA;oBACtC,CAAC,CAAC,CAAA;oBACF,MAAK;gBACP,KAAK,CAAC;oBACJ,OAAO,CAAC,OAAO,CAAC,OAAO,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;wBACxC,KAAK,CAAC,CAAC,EAAE,qBAAqB,CAAC,CAAA;oBACjC,CAAC,CAAC,CAAA;oBACF,MAAK;YACT,CAAC;QACH,CAAC,CACF,CAAA;IACH,CAAC,CAAA;IAED,MAAM,YAAY,GAAG,CAAC,KAAa,EAAE,EAAE,CACrC,OAAO,CAAC,OAAO,CAAC,UAAU,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAC3C,KAAK,CAAC,CAAC,EAAE,uBAAuB,CAAC,CAClC,CAAA;IAEH,MAAM,SAAS,GAAG;QAChB,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI;QACrB,aAAa,EAAE,CAAC,QAAQ,CAAC;KAC1B,CAAA;IACD,OAAO,CACL,CAAC,IAAI,CACH,KAAK,CAAC,CAAC;YACL,MAAM,CAAC,QAAQ,CAAC,CAAC,SAAS;YAC1B,cAAc,IAAI,cAAc,CAAC,QAAQ,CAAC;SAC3C,CAAC,CAEF;MAAA,CAAC,UAAU,CACT,KAAK,CAAC,CAAC;YACL,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI;YACrB,SAAS,IAAI,SAAS,CAAC,QAAQ,CAAC;YAChC,eAAe;SAChB,CAAC,CACF,KAAK,CAAC,CAAC;YACL,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,aAAa,CAAC,SAAsB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAC/D,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,UAAU,EAAE;YACtD,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,YAAY,EAAE;YAC1D,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,YAAY,EAAE;SAC3D,CAAC,CACF,aAAa,CAAC,CAAC,EAAE,GAAG,SAAS,EAAE,CAAC,CAEhC;QAAA,CAAC,cAAe,CAAC,IAAI,CACvB;MAAA,EAAE,UAAU,CACd;IAAA,EAAE,IAAI,CAAC,CACR,CAAA;AACH,CAAC;AAED,WAAW,CAAC,SAAS,GAAG;IACtB,QAAQ,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC5C,YAAY,EAAE,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC;IACjD,cAAc,EAAE,SAAS,CAAC,MAAM;IAChC,cAAc,EAAE,SAAS,CAAC,KAAK,CAAC;QAC9B,IAAI,EAAE,aAAa;QACnB,KAAK,EAAE,aAAa;KACrB,CAAC;IACF,SAAS,EAAE,SAAS,CAAC,KAAK,CAAC;QACzB,IAAI,EAAE,aAAa;QACnB,KAAK,EAAE,aAAa;KACrB,CAAC;IACF,SAAS,EAAE,SAAS,CAAC,KAAK,CAAC;QACzB,IAAI,EAAE,aAAa;QACnB,KAAK,EAAE,aAAa;KACrB,CAAC;IACF,aAAa,EAAE,SAAS,CAAC,IAAI;IAC7B,SAAS,EAAE,SAAS,CAAC,MAAM;IAC3B,eAAe,EAAE,aAAa;CAC/B,CAAA"}
|
package/lib/MessageVideo.d.ts
CHANGED
|
@@ -1 +1,2 @@
|
|
|
1
|
-
|
|
1
|
+
import React from 'react';
|
|
2
|
+
export declare function MessageVideo(): React.JSX.Element;
|
package/lib/MessageVideo.js
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import Color from './Color';
|
|
3
3
|
import { View, Text } from 'react-native';
|
|
4
|
-
export function MessageVideo(
|
|
4
|
+
export function MessageVideo() {
|
|
5
5
|
return (<View style={{ padding: 20 }}>
|
|
6
6
|
<Text style={{ color: Color.alizarin, fontWeight: '600' }}>
|
|
7
|
-
Video is not implemented by GiftedChat.
|
|
7
|
+
{'Video is not implemented by GiftedChat.'}
|
|
8
8
|
</Text>
|
|
9
9
|
<Text style={{ color: Color.alizarin, fontWeight: '600' }}>
|
|
10
|
-
You need to provide your own implementation by using renderMessageVideo
|
|
11
|
-
prop.
|
|
10
|
+
{'You need to provide your own implementation by using renderMessageVideo'}
|
|
11
|
+
{'prop.'}
|
|
12
12
|
</Text>
|
|
13
13
|
</View>);
|
|
14
14
|
}
|
package/lib/MessageVideo.js.flow
CHANGED
|
@@ -4,7 +4,7 @@ import type { IMessage } from './types'
|
|
|
4
4
|
import type { ViewStyleProp } from 'react-native/Libraries/StyleSheet/StyleSheet'
|
|
5
5
|
|
|
6
6
|
export type MessageVideoProps<TMessage: IMessage = IMessage> = $ReadOnly<{|
|
|
7
|
-
currentMessage
|
|
7
|
+
currentMessage: TMessage,
|
|
8
8
|
containerStyle?: ViewStyleProp,
|
|
9
9
|
videoStyle?: ViewStyleProp,
|
|
10
10
|
videoProps?: Object,
|
package/lib/MessageVideo.js.map
CHANGED
|
@@ -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,MAAM,UAAU,YAAY
|
|
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;IAC1B,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;QAAA,CAAC,yCAAyC,CAC5C;MAAA,EAAE,IAAI,CACN;MAAA,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,QAAQ,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,CACxD;QAAA,CACE,yEACF,CACA;QAAA,CAAC,OAAO,CACV;MAAA,EAAE,IAAI,CACR;IAAA,EAAE,IAAI,CAAC,CACR,CAAA;AACH,CAAC"}
|
package/lib/Models.d.ts
CHANGED
|
@@ -2,7 +2,7 @@ import { StyleProp, ViewStyle } from 'react-native';
|
|
|
2
2
|
import { LightboxProps } from 'react-native-lightbox-v2';
|
|
3
3
|
export { ActionsProps } from './Actions';
|
|
4
4
|
export { AvatarProps } from './Avatar';
|
|
5
|
-
export { BubbleProps, RenderMessageImageProps, RenderMessageVideoProps, RenderMessageAudioProps, RenderMessageTextProps
|
|
5
|
+
export { BubbleProps, RenderMessageImageProps, RenderMessageVideoProps, RenderMessageAudioProps, RenderMessageTextProps } from './Bubble';
|
|
6
6
|
export { ComposerProps } from './Composer';
|
|
7
7
|
export { DayProps } from './Day';
|
|
8
8
|
export { GiftedAvatarProps } from './GiftedAvatar';
|
|
@@ -16,12 +16,12 @@ export { QuickRepliesProps } from './QuickReplies';
|
|
|
16
16
|
export { SendProps } from './Send';
|
|
17
17
|
export { SystemMessageProps } from './SystemMessage';
|
|
18
18
|
export { TimeProps } from './Time';
|
|
19
|
-
export
|
|
19
|
+
export type Omit<T, K> = Pick<T, Exclude<keyof T, K>>;
|
|
20
20
|
export interface LeftRightStyle<T> {
|
|
21
21
|
left?: StyleProp<T>;
|
|
22
22
|
right?: StyleProp<T>;
|
|
23
23
|
}
|
|
24
|
-
|
|
24
|
+
type renderFunction = (x: unknown) => JSX.Element;
|
|
25
25
|
export interface User {
|
|
26
26
|
_id: string | number;
|
|
27
27
|
name?: string;
|
|
@@ -30,7 +30,7 @@ export interface User {
|
|
|
30
30
|
export interface Reply {
|
|
31
31
|
title: string;
|
|
32
32
|
value: string;
|
|
33
|
-
messageId?:
|
|
33
|
+
messageId?: number | string;
|
|
34
34
|
}
|
|
35
35
|
export interface QuickReplies {
|
|
36
36
|
type: 'radio' | 'checkbox';
|
|
@@ -51,16 +51,16 @@ export interface IMessage {
|
|
|
51
51
|
pending?: boolean;
|
|
52
52
|
quickReplies?: QuickReplies;
|
|
53
53
|
}
|
|
54
|
-
export
|
|
54
|
+
export type IChatMessage = IMessage;
|
|
55
55
|
export interface MessageVideoProps<TMessage extends IMessage> {
|
|
56
|
-
currentMessage
|
|
56
|
+
currentMessage: TMessage;
|
|
57
57
|
containerStyle?: StyleProp<ViewStyle>;
|
|
58
58
|
videoStyle?: StyleProp<ViewStyle>;
|
|
59
59
|
videoProps?: object;
|
|
60
60
|
lightboxProps?: LightboxProps;
|
|
61
61
|
}
|
|
62
62
|
export interface MessageAudioProps<TMessage extends IMessage> {
|
|
63
|
-
currentMessage
|
|
63
|
+
currentMessage: TMessage;
|
|
64
64
|
containerStyle?: StyleProp<ViewStyle>;
|
|
65
65
|
audioStyle?: StyleProp<ViewStyle>;
|
|
66
66
|
audioProps?: object;
|
package/lib/QuickReplies.d.ts
CHANGED
|
@@ -4,15 +4,16 @@ import { StyleProp, ViewStyle, TextStyle } from 'react-native';
|
|
|
4
4
|
import { IMessage, Reply } from './Models';
|
|
5
5
|
export interface QuickRepliesProps<TMessage extends IMessage = IMessage> {
|
|
6
6
|
nextMessage?: TMessage;
|
|
7
|
-
currentMessage
|
|
7
|
+
currentMessage: TMessage;
|
|
8
8
|
color?: string;
|
|
9
9
|
sendText?: string;
|
|
10
10
|
quickReplyStyle?: StyleProp<ViewStyle>;
|
|
11
11
|
quickReplyTextStyle?: StyleProp<TextStyle>;
|
|
12
|
+
quickReplyContainerStyle?: StyleProp<ViewStyle>;
|
|
12
13
|
onQuickReply?(reply: Reply[]): void;
|
|
13
14
|
renderQuickReplySend?(): React.ReactNode;
|
|
14
15
|
}
|
|
15
|
-
export declare function QuickReplies({ currentMessage, nextMessage, color, quickReplyStyle, quickReplyTextStyle, onQuickReply, sendText, renderQuickReplySend, }: QuickRepliesProps<IMessage>): JSX.Element | null;
|
|
16
|
+
export declare function QuickReplies({ currentMessage, nextMessage, color, quickReplyStyle, quickReplyTextStyle, quickReplyContainerStyle, onQuickReply, sendText, renderQuickReplySend, }: QuickRepliesProps<IMessage>): React.JSX.Element | null;
|
|
16
17
|
export declare namespace QuickReplies {
|
|
17
18
|
var propTypes: {
|
|
18
19
|
currentMessage: PropTypes.Validator<object>;
|
|
@@ -20,6 +21,6 @@ export declare namespace QuickReplies {
|
|
|
20
21
|
color: PropTypes.Requireable<string>;
|
|
21
22
|
sendText: PropTypes.Requireable<string>;
|
|
22
23
|
renderQuickReplySend: PropTypes.Requireable<(...args: any[]) => any>;
|
|
23
|
-
quickReplyStyle: PropTypes.Requireable<number | boolean | object
|
|
24
|
+
quickReplyStyle: PropTypes.Requireable<NonNullable<number | boolean | object | null | undefined>>;
|
|
24
25
|
};
|
|
25
26
|
}
|