react-native-gifted-chat 2.8.2-alpha.0 → 2.8.2-alpha.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.
- package/README.md +51 -31
- package/package.json +28 -30
- package/src/Actions.tsx +1 -1
- package/src/Avatar.tsx +1 -1
- package/src/Bubble/index.tsx +24 -20
- package/src/Bubble/types.ts +7 -6
- package/src/Composer.tsx +19 -26
- package/src/Constant.ts +0 -1
- package/src/Day/index.tsx +3 -3
- package/src/GiftedAvatar.tsx +31 -38
- package/src/GiftedChat/index.tsx +59 -106
- package/src/GiftedChat/styles.ts +3 -0
- package/src/GiftedChat/types.ts +17 -67
- package/src/InputToolbar.tsx +27 -10
- package/src/LoadEarlier.tsx +22 -20
- package/src/Message/index.tsx +4 -18
- package/src/Message/types.ts +2 -2
- package/src/MessageAudio.tsx +19 -7
- package/src/MessageContainer/components/DayAnimated/index.tsx +16 -11
- package/src/MessageContainer/components/Item/index.tsx +10 -4
- package/src/MessageContainer/components/Item/types.ts +1 -1
- package/src/MessageContainer/index.tsx +57 -38
- package/src/MessageContainer/types.ts +32 -7
- package/src/MessageImage.tsx +132 -18
- package/src/MessageText.tsx +24 -64
- package/src/MessageVideo.tsx +19 -7
- package/src/QuickReplies.tsx +19 -12
- package/src/Send.tsx +10 -5
- package/src/SystemMessage.tsx +10 -3
- package/src/Time.tsx +10 -3
- package/src/TypingIndicator/index.tsx +4 -3
- package/src/TypingIndicator/types.ts +3 -0
- package/src/__tests__/Actions.test.tsx +3 -4
- package/src/__tests__/Avatar.test.tsx +5 -6
- package/src/__tests__/Bubble.test.tsx +14 -19
- package/src/__tests__/Composer.test.tsx +3 -4
- package/src/__tests__/Day.test.tsx +5 -8
- package/src/__tests__/DayAnimated.test.tsx +12 -14
- package/src/__tests__/GiftedAvatar.test.tsx +3 -8
- package/src/__tests__/GiftedChat.test.tsx +34 -43
- package/src/__tests__/InputToolbar.test.tsx +3 -4
- package/src/__tests__/LoadEarlier.test.tsx +3 -4
- package/src/__tests__/Message.test.tsx +51 -58
- package/src/__tests__/MessageContainer.test.tsx +39 -5
- package/src/__tests__/MessageImage.test.tsx +12 -15
- package/src/__tests__/MessageText.test.tsx +7 -4
- package/src/__tests__/Send.test.tsx +7 -8
- package/src/__tests__/SystemMessage.test.tsx +12 -15
- package/src/__tests__/Time.test.tsx +5 -8
- package/src/__tests__/__snapshots__/Actions.test.tsx.snap +39 -7
- package/src/__tests__/__snapshots__/Bubble.test.tsx.snap +48 -50
- package/src/__tests__/__snapshots__/Composer.test.tsx.snap +1 -2
- package/src/__tests__/__snapshots__/Constant.test.tsx.snap +0 -1
- package/src/__tests__/__snapshots__/GiftedChat.test.tsx.snap +20 -22
- package/src/__tests__/__snapshots__/InputToolbar.test.tsx.snap +2 -2
- package/src/__tests__/__snapshots__/LoadEarlier.test.tsx.snap +37 -6
- package/src/__tests__/__snapshots__/Message.test.tsx.snap +146 -150
- package/src/__tests__/__snapshots__/MessageImage.test.tsx.snap +32 -11
- package/src/__tests__/__snapshots__/MessageText.test.tsx.snap +12 -8
- package/src/__tests__/__snapshots__/Send.test.tsx.snap +72 -10
- package/src/components/TouchableOpacity.tsx +45 -0
- package/src/reanimatedCompat.ts +27 -0
- package/src/types.ts +4 -2
- package/src/utils.ts +2 -2
- package/lib/Actions.d.ts +0 -14
- package/lib/Actions.js +0 -57
- package/lib/Actions.js.map +0 -1
- package/lib/Avatar.d.ts +0 -18
- package/lib/Avatar.js +0 -93
- package/lib/Avatar.js.map +0 -1
- package/lib/Bubble/index.d.ts +0 -6
- package/lib/Bubble/index.js +0 -242
- package/lib/Bubble/index.js.map +0 -1
- package/lib/Bubble/styles.d.ts +0 -69
- package/lib/Bubble/styles.js +0 -72
- package/lib/Bubble/styles.js.map +0 -1
- package/lib/Bubble/types.d.ts +0 -47
- package/lib/Bubble/types.js +0 -2
- package/lib/Bubble/types.js.map +0 -1
- package/lib/Color.d.ts +0 -18
- package/lib/Color.js +0 -18
- package/lib/Color.js.map +0 -1
- package/lib/Composer.d.ts +0 -20
- package/lib/Composer.js +0 -60
- package/lib/Composer.js.map +0 -1
- package/lib/Constant.d.ts +0 -10
- package/lib/Constant.js +0 -17
- package/lib/Constant.js.map +0 -1
- package/lib/Day/index.d.ts +0 -4
- package/lib/Day/index.js +0 -39
- package/lib/Day/index.js.map +0 -1
- package/lib/Day/styles.d.ts +0 -20
- package/lib/Day/styles.js +0 -22
- package/lib/Day/styles.js.map +0 -1
- package/lib/Day/types.d.ts +0 -9
- package/lib/Day/types.js +0 -2
- package/lib/Day/types.js.map +0 -1
- package/lib/GiftedAvatar.d.ts +0 -11
- package/lib/GiftedAvatar.js +0 -104
- package/lib/GiftedAvatar.js.map +0 -1
- package/lib/GiftedChat/index.d.ts +0 -26
- package/lib/GiftedChat/index.js +0 -317
- package/lib/GiftedChat/index.js.map +0 -1
- package/lib/GiftedChat/styles.d.ts +0 -6
- package/lib/GiftedChat/styles.js +0 -7
- package/lib/GiftedChat/styles.js.map +0 -1
- package/lib/GiftedChat/types.d.ts +0 -112
- package/lib/GiftedChat/types.js +0 -2
- package/lib/GiftedChat/types.js.map +0 -1
- package/lib/GiftedChatContext.d.ts +0 -9
- package/lib/GiftedChatContext.js +0 -9
- package/lib/GiftedChatContext.js.map +0 -1
- package/lib/InputToolbar.d.ts +0 -23
- package/lib/InputToolbar.js +0 -56
- package/lib/InputToolbar.js.map +0 -1
- package/lib/LoadEarlier.d.ts +0 -14
- package/lib/LoadEarlier.js +0 -45
- package/lib/LoadEarlier.js.map +0 -1
- package/lib/Message/index.d.ts +0 -6
- package/lib/Message/index.js +0 -80
- package/lib/Message/index.js.map +0 -1
- package/lib/Message/styles.d.ts +0 -21
- package/lib/Message/styles.js +0 -22
- package/lib/Message/styles.js.map +0 -1
- package/lib/Message/types.d.ts +0 -22
- package/lib/Message/types.js +0 -2
- package/lib/Message/types.js.map +0 -1
- package/lib/MessageAudio.d.ts +0 -2
- package/lib/MessageAudio.js +0 -14
- package/lib/MessageAudio.js.map +0 -1
- package/lib/MessageContainer/components/DayAnimated/index.d.ts +0 -5
- package/lib/MessageContainer/components/DayAnimated/index.js +0 -85
- package/lib/MessageContainer/components/DayAnimated/index.js.map +0 -1
- package/lib/MessageContainer/components/DayAnimated/styles.d.ts +0 -11
- package/lib/MessageContainer/components/DayAnimated/styles.js +0 -12
- package/lib/MessageContainer/components/DayAnimated/styles.js.map +0 -1
- package/lib/MessageContainer/components/DayAnimated/types.d.ts +0 -17
- package/lib/MessageContainer/components/DayAnimated/types.js +0 -2
- package/lib/MessageContainer/components/DayAnimated/types.js.map +0 -1
- package/lib/MessageContainer/components/Item/index.d.ts +0 -23
- package/lib/MessageContainer/components/Item/index.js +0 -88
- package/lib/MessageContainer/components/Item/index.js.map +0 -1
- package/lib/MessageContainer/components/Item/types.d.ts +0 -17
- package/lib/MessageContainer/components/Item/types.js +0 -2
- package/lib/MessageContainer/components/Item/types.js.map +0 -1
- package/lib/MessageContainer/index.d.ts +0 -6
- package/lib/MessageContainer/index.js +0 -235
- package/lib/MessageContainer/index.js.map +0 -1
- package/lib/MessageContainer/styles.d.ts +0 -35
- package/lib/MessageContainer/styles.js +0 -32
- package/lib/MessageContainer/styles.js.map +0 -1
- package/lib/MessageContainer/types.d.ts +0 -51
- package/lib/MessageContainer/types.js +0 -2
- package/lib/MessageContainer/types.js.map +0 -1
- package/lib/MessageImage.d.ts +0 -13
- package/lib/MessageImage.js +0 -30
- package/lib/MessageImage.js.map +0 -1
- package/lib/MessageText.d.ts +0 -19
- package/lib/MessageText.js +0 -69
- package/lib/MessageText.js.map +0 -1
- package/lib/MessageVideo.d.ts +0 -2
- package/lib/MessageVideo.js +0 -14
- package/lib/MessageVideo.js.map +0 -1
- package/lib/QuickReplies.d.ts +0 -15
- package/lib/QuickReplies.js +0 -101
- package/lib/QuickReplies.js.map +0 -1
- package/lib/Send.d.ts +0 -15
- package/lib/Send.js +0 -34
- package/lib/Send.js.map +0 -1
- package/lib/SystemMessage.d.ts +0 -11
- package/lib/SystemMessage.js +0 -27
- package/lib/SystemMessage.js.map +0 -1
- package/lib/Time.d.ts +0 -11
- package/lib/Time.js +0 -56
- package/lib/Time.js.map +0 -1
- package/lib/TypingIndicator/index.d.ts +0 -5
- package/lib/TypingIndicator/index.js +0 -94
- package/lib/TypingIndicator/index.js.map +0 -1
- package/lib/TypingIndicator/styles.d.ts +0 -20
- package/lib/TypingIndicator/styles.js +0 -22
- package/lib/TypingIndicator/styles.js.map +0 -1
- package/lib/TypingIndicator/types.d.ts +0 -3
- package/lib/TypingIndicator/types.js +0 -2
- package/lib/TypingIndicator/types.js.map +0 -1
- package/lib/hooks/useUpdateLayoutEffect.d.ts +0 -8
- package/lib/hooks/useUpdateLayoutEffect.js +0 -17
- package/lib/hooks/useUpdateLayoutEffect.js.map +0 -1
- package/lib/index.d.ts +0 -4
- package/lib/index.js +0 -5
- package/lib/index.js.map +0 -1
- package/lib/logging.d.ts +0 -2
- package/lib/logging.js +0 -5
- package/lib/logging.js.map +0 -1
- package/lib/styles.d.ts +0 -10
- package/lib/styles.js +0 -11
- package/lib/styles.js.map +0 -1
- package/lib/types.d.ts +0 -67
- package/lib/types.js +0 -2
- package/lib/types.js.map +0 -1
- package/lib/utils.d.ts +0 -5
- package/lib/utils.js +0 -83
- package/lib/utils.js.map +0 -1
- package/src/__tests__/__snapshots__/MessageContainer.test.tsx.snap +0 -108
|
@@ -1,235 +0,0 @@
|
|
|
1
|
-
import React, { useCallback, useEffect, useMemo, useState } from 'react';
|
|
2
|
-
import { View, Pressable, Text, Platform, FlatList, } from 'react-native';
|
|
3
|
-
import Animated, { runOnJS, useAnimatedScrollHandler, useAnimatedStyle, useSharedValue, withTiming } from 'react-native-reanimated';
|
|
4
|
-
import DayAnimated from './components/DayAnimated';
|
|
5
|
-
import Item from './components/Item';
|
|
6
|
-
import { LoadEarlier } from '../LoadEarlier';
|
|
7
|
-
import TypingIndicator from '../TypingIndicator';
|
|
8
|
-
import { warning } from '../logging';
|
|
9
|
-
import stylesCommon from '../styles';
|
|
10
|
-
import styles from './styles';
|
|
11
|
-
import { isSameDay, useCallbackThrottled } from '../utils';
|
|
12
|
-
export * from './types';
|
|
13
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
14
|
-
const AnimatedFlatList = Animated.createAnimatedComponent(FlatList);
|
|
15
|
-
function MessageContainer(props) {
|
|
16
|
-
const { messages = [], user, isTyping = false, renderChatEmpty: renderChatEmptyProp, onLoadEarlier, inverted = true, loadEarlier = false, listViewProps, invertibleScrollViewProps, extraData = null, isScrollToBottomEnabled = false, scrollToBottomOffset = 200, alignTop = false, scrollToBottomStyle, infiniteScroll = false, isLoadingEarlier = false, renderTypingIndicator: renderTypingIndicatorProp, renderFooter: renderFooterProp, renderLoadEarlier: renderLoadEarlierProp, forwardRef, handleOnScroll: handleOnScrollProp, scrollToBottomComponent: scrollToBottomComponentProp, renderDay: renderDayProp, } = props;
|
|
17
|
-
const scrollToBottomOpacity = useSharedValue(0);
|
|
18
|
-
const isScrollingDown = useSharedValue(false);
|
|
19
|
-
const lastScrolledY = useSharedValue(0);
|
|
20
|
-
const [isScrollToBottomVisible, setIsScrollToBottomVisible] = useState(false);
|
|
21
|
-
const scrollToBottomStyleAnim = useAnimatedStyle(() => ({
|
|
22
|
-
opacity: scrollToBottomOpacity.value,
|
|
23
|
-
}), [scrollToBottomOpacity]);
|
|
24
|
-
const daysPositions = useSharedValue({});
|
|
25
|
-
const listHeight = useSharedValue(0);
|
|
26
|
-
const scrolledY = useSharedValue(0);
|
|
27
|
-
const renderTypingIndicator = useCallback(() => {
|
|
28
|
-
if (renderTypingIndicatorProp)
|
|
29
|
-
return renderTypingIndicatorProp();
|
|
30
|
-
return <TypingIndicator isTyping={isTyping}/>;
|
|
31
|
-
}, [isTyping, renderTypingIndicatorProp]);
|
|
32
|
-
const ListFooterComponent = useMemo(() => {
|
|
33
|
-
if (renderFooterProp)
|
|
34
|
-
return renderFooterProp(props);
|
|
35
|
-
return renderTypingIndicator();
|
|
36
|
-
}, [renderFooterProp, renderTypingIndicator, props]);
|
|
37
|
-
const renderLoadEarlier = useCallback(() => {
|
|
38
|
-
if (loadEarlier) {
|
|
39
|
-
if (renderLoadEarlierProp)
|
|
40
|
-
return renderLoadEarlierProp(props);
|
|
41
|
-
return <LoadEarlier {...props}/>;
|
|
42
|
-
}
|
|
43
|
-
return null;
|
|
44
|
-
}, [loadEarlier, renderLoadEarlierProp, props]);
|
|
45
|
-
const changeScrollToBottomVisibility = useCallbackThrottled((isVisible) => {
|
|
46
|
-
if (isScrollingDown.value && isVisible)
|
|
47
|
-
return;
|
|
48
|
-
if (isVisible)
|
|
49
|
-
setIsScrollToBottomVisible(true);
|
|
50
|
-
scrollToBottomOpacity.value = withTiming(isVisible ? 1 : 0, { duration: 250 }, isFinished => {
|
|
51
|
-
if (isFinished && !isVisible)
|
|
52
|
-
runOnJS(setIsScrollToBottomVisible)(false);
|
|
53
|
-
});
|
|
54
|
-
}, [scrollToBottomOpacity, isScrollingDown], 50);
|
|
55
|
-
const scrollTo = useCallback((options) => {
|
|
56
|
-
if (options)
|
|
57
|
-
forwardRef?.current?.scrollToOffset(options);
|
|
58
|
-
}, [forwardRef]);
|
|
59
|
-
const doScrollToBottom = useCallback((animated = true) => {
|
|
60
|
-
isScrollingDown.value = true;
|
|
61
|
-
changeScrollToBottomVisibility(false);
|
|
62
|
-
if (inverted)
|
|
63
|
-
scrollTo({ offset: 0, animated });
|
|
64
|
-
else if (forwardRef?.current)
|
|
65
|
-
forwardRef.current.scrollToEnd({ animated });
|
|
66
|
-
}, [forwardRef, inverted, scrollTo, isScrollingDown, changeScrollToBottomVisibility]);
|
|
67
|
-
const handleOnScroll = useCallback((event) => {
|
|
68
|
-
handleOnScrollProp?.(event);
|
|
69
|
-
const { contentOffset: { y: contentOffsetY }, contentSize: { height: contentSizeHeight }, layoutMeasurement: { height: layoutMeasurementHeight }, } = event;
|
|
70
|
-
isScrollingDown.value =
|
|
71
|
-
(inverted && lastScrolledY.value > contentOffsetY) ||
|
|
72
|
-
(!inverted && lastScrolledY.value < contentOffsetY);
|
|
73
|
-
lastScrolledY.value = contentOffsetY;
|
|
74
|
-
if (inverted)
|
|
75
|
-
if (contentOffsetY > scrollToBottomOffset)
|
|
76
|
-
changeScrollToBottomVisibility(true);
|
|
77
|
-
else
|
|
78
|
-
changeScrollToBottomVisibility(false);
|
|
79
|
-
else if (contentOffsetY < scrollToBottomOffset &&
|
|
80
|
-
contentSizeHeight - layoutMeasurementHeight > scrollToBottomOffset)
|
|
81
|
-
changeScrollToBottomVisibility(false);
|
|
82
|
-
else
|
|
83
|
-
changeScrollToBottomVisibility(false);
|
|
84
|
-
}, [handleOnScrollProp, inverted, scrollToBottomOffset, changeScrollToBottomVisibility, isScrollingDown, lastScrolledY]);
|
|
85
|
-
const renderItem = useCallback(({ item, index }) => {
|
|
86
|
-
const messageItem = item;
|
|
87
|
-
if (!messageItem._id && messageItem._id !== 0)
|
|
88
|
-
warning('GiftedChat: `_id` is missing for message', JSON.stringify(item));
|
|
89
|
-
if (!messageItem.user) {
|
|
90
|
-
if (!messageItem.system)
|
|
91
|
-
warning('GiftedChat: `user` is missing for message', JSON.stringify(messageItem));
|
|
92
|
-
messageItem.user = { _id: 0 };
|
|
93
|
-
}
|
|
94
|
-
const { messages, ...restProps } = props;
|
|
95
|
-
if (messages && user) {
|
|
96
|
-
const previousMessage = (inverted ? messages[index + 1] : messages[index - 1]) || {};
|
|
97
|
-
const nextMessage = (inverted ? messages[index - 1] : messages[index + 1]) || {};
|
|
98
|
-
const messageProps = {
|
|
99
|
-
...restProps,
|
|
100
|
-
currentMessage: messageItem,
|
|
101
|
-
previousMessage,
|
|
102
|
-
nextMessage,
|
|
103
|
-
position: messageItem.user._id === user._id ? 'right' : 'left',
|
|
104
|
-
scrolledY,
|
|
105
|
-
daysPositions,
|
|
106
|
-
listHeight,
|
|
107
|
-
};
|
|
108
|
-
return (<Item {...messageProps}/>);
|
|
109
|
-
}
|
|
110
|
-
return null;
|
|
111
|
-
}, [props, inverted, scrolledY, daysPositions, listHeight, user]);
|
|
112
|
-
const renderChatEmpty = useCallback(() => {
|
|
113
|
-
if (renderChatEmptyProp)
|
|
114
|
-
return inverted
|
|
115
|
-
? (renderChatEmptyProp())
|
|
116
|
-
: (<View style={[stylesCommon.fill, styles.emptyChatContainer]}>
|
|
117
|
-
{renderChatEmptyProp()}
|
|
118
|
-
</View>);
|
|
119
|
-
return <View style={stylesCommon.fill}/>;
|
|
120
|
-
}, [inverted, renderChatEmptyProp]);
|
|
121
|
-
const ListHeaderComponent = useMemo(() => {
|
|
122
|
-
const content = renderLoadEarlier();
|
|
123
|
-
if (!content)
|
|
124
|
-
return null;
|
|
125
|
-
return (<View style={stylesCommon.fill}>{content}</View>);
|
|
126
|
-
}, [renderLoadEarlier]);
|
|
127
|
-
const renderScrollBottomComponent = useCallback(() => {
|
|
128
|
-
if (scrollToBottomComponentProp)
|
|
129
|
-
return scrollToBottomComponentProp();
|
|
130
|
-
return <Text>{'V'}</Text>;
|
|
131
|
-
}, [scrollToBottomComponentProp]);
|
|
132
|
-
const ScrollToBottomWrapper = useCallback(() => {
|
|
133
|
-
if (!isScrollToBottomEnabled)
|
|
134
|
-
return null;
|
|
135
|
-
if (!isScrollToBottomVisible)
|
|
136
|
-
return null;
|
|
137
|
-
return (<Pressable style={styles.scrollToBottom} onPress={() => doScrollToBottom()}>
|
|
138
|
-
<Animated.View style={[
|
|
139
|
-
stylesCommon.centerItems,
|
|
140
|
-
styles.scrollToBottomContent,
|
|
141
|
-
scrollToBottomStyle,
|
|
142
|
-
scrollToBottomStyleAnim,
|
|
143
|
-
]}>
|
|
144
|
-
{renderScrollBottomComponent()}
|
|
145
|
-
</Animated.View>
|
|
146
|
-
</Pressable>);
|
|
147
|
-
}, [scrollToBottomStyle, renderScrollBottomComponent, doScrollToBottom, scrollToBottomStyleAnim, isScrollToBottomEnabled, isScrollToBottomVisible]);
|
|
148
|
-
const onLayoutList = useCallback((event) => {
|
|
149
|
-
listHeight.value = event.nativeEvent.layout.height;
|
|
150
|
-
if (!inverted &&
|
|
151
|
-
messages?.length &&
|
|
152
|
-
isScrollToBottomEnabled)
|
|
153
|
-
setTimeout(() => {
|
|
154
|
-
doScrollToBottom(false);
|
|
155
|
-
}, 500);
|
|
156
|
-
listViewProps?.onLayout?.(event);
|
|
157
|
-
}, [inverted, messages, doScrollToBottom, listHeight, listViewProps, isScrollToBottomEnabled]);
|
|
158
|
-
const onEndReached = useCallback(() => {
|
|
159
|
-
if (infiniteScroll &&
|
|
160
|
-
loadEarlier &&
|
|
161
|
-
onLoadEarlier &&
|
|
162
|
-
!isLoadingEarlier &&
|
|
163
|
-
Platform.OS !== 'web')
|
|
164
|
-
onLoadEarlier();
|
|
165
|
-
}, [infiniteScroll, loadEarlier, onLoadEarlier, isLoadingEarlier]);
|
|
166
|
-
const keyExtractor = useCallback((item) => item._id.toString(), []);
|
|
167
|
-
const renderCell = useCallback((props) => {
|
|
168
|
-
const { item, onLayout: onLayoutProp, children } = props;
|
|
169
|
-
const id = item._id.toString();
|
|
170
|
-
const handleOnLayout = (event) => {
|
|
171
|
-
onLayoutProp?.(event);
|
|
172
|
-
const { y, height } = event.nativeEvent.layout;
|
|
173
|
-
const newValue = {
|
|
174
|
-
y,
|
|
175
|
-
height,
|
|
176
|
-
createdAt: new Date(item.createdAt).getTime(),
|
|
177
|
-
};
|
|
178
|
-
daysPositions.modify(value => {
|
|
179
|
-
'worklet';
|
|
180
|
-
const isSameDay = (date1, date2) => {
|
|
181
|
-
const d1 = new Date(date1);
|
|
182
|
-
const d2 = new Date(date2);
|
|
183
|
-
return (d1.getDate() === d2.getDate() &&
|
|
184
|
-
d1.getMonth() === d2.getMonth() &&
|
|
185
|
-
d1.getFullYear() === d2.getFullYear());
|
|
186
|
-
};
|
|
187
|
-
for (const [key, item] of Object.entries(value))
|
|
188
|
-
if (isSameDay(newValue.createdAt, item.createdAt) && (inverted ? item.y <= newValue.y : item.y >= newValue.y)) {
|
|
189
|
-
delete value[key];
|
|
190
|
-
break;
|
|
191
|
-
}
|
|
192
|
-
// @ts-expect-error: https://docs.swmansion.com/react-native-reanimated/docs/core/useSharedValue#remarks
|
|
193
|
-
value[id] = newValue;
|
|
194
|
-
return value;
|
|
195
|
-
});
|
|
196
|
-
};
|
|
197
|
-
return (<View {...props} onLayout={handleOnLayout}>
|
|
198
|
-
{children}
|
|
199
|
-
</View>);
|
|
200
|
-
}, [daysPositions, inverted]);
|
|
201
|
-
const scrollHandler = useAnimatedScrollHandler({
|
|
202
|
-
onScroll: event => {
|
|
203
|
-
scrolledY.value = event.contentOffset.y;
|
|
204
|
-
runOnJS(handleOnScroll)(event);
|
|
205
|
-
},
|
|
206
|
-
}, [handleOnScroll]);
|
|
207
|
-
// removes unrendered days positions when messages are added/removed
|
|
208
|
-
useEffect(() => {
|
|
209
|
-
Object.keys(daysPositions.value).forEach(key => {
|
|
210
|
-
const messageIndex = messages.findIndex(m => m._id.toString() === key);
|
|
211
|
-
let shouldRemove = messageIndex === -1;
|
|
212
|
-
if (!shouldRemove) {
|
|
213
|
-
const prevMessage = messages[messageIndex + (inverted ? 1 : -1)];
|
|
214
|
-
const message = messages[messageIndex];
|
|
215
|
-
shouldRemove = !!prevMessage && isSameDay(message, prevMessage);
|
|
216
|
-
}
|
|
217
|
-
if (shouldRemove)
|
|
218
|
-
daysPositions.modify(value => {
|
|
219
|
-
'worklet';
|
|
220
|
-
delete value[key];
|
|
221
|
-
return value;
|
|
222
|
-
});
|
|
223
|
-
});
|
|
224
|
-
}, [messages, daysPositions, inverted]);
|
|
225
|
-
return (<View style={[
|
|
226
|
-
styles.contentContainerStyle,
|
|
227
|
-
alignTop ? styles.containerAlignTop : stylesCommon.fill,
|
|
228
|
-
]}>
|
|
229
|
-
<AnimatedFlatList extraData={extraData} ref={forwardRef} keyExtractor={keyExtractor} data={messages} renderItem={renderItem} inverted={inverted} automaticallyAdjustContentInsets={false} style={stylesCommon.fill} {...invertibleScrollViewProps} ListEmptyComponent={renderChatEmpty} ListFooterComponent={inverted ? ListHeaderComponent : ListFooterComponent} ListHeaderComponent={inverted ? ListFooterComponent : ListHeaderComponent} onScroll={scrollHandler} scrollEventThrottle={1} onEndReached={onEndReached} onEndReachedThreshold={0.1} {...listViewProps} onLayout={onLayoutList} CellRendererComponent={renderCell}/>
|
|
230
|
-
<ScrollToBottomWrapper />
|
|
231
|
-
<DayAnimated scrolledY={scrolledY} daysPositions={daysPositions} listHeight={listHeight} renderDay={renderDayProp} messages={messages} isLoadingEarlier={isLoadingEarlier}/>
|
|
232
|
-
</View>);
|
|
233
|
-
}
|
|
234
|
-
export default MessageContainer;
|
|
235
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/MessageContainer/index.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
declare const _default: {
|
|
2
|
-
containerAlignTop: {
|
|
3
|
-
flexDirection: "row";
|
|
4
|
-
alignItems: "flex-start";
|
|
5
|
-
};
|
|
6
|
-
contentContainerStyle: {
|
|
7
|
-
flexGrow: number;
|
|
8
|
-
justifyContent: "flex-start";
|
|
9
|
-
};
|
|
10
|
-
emptyChatContainer: {
|
|
11
|
-
transform: {
|
|
12
|
-
scaleY: number;
|
|
13
|
-
}[];
|
|
14
|
-
};
|
|
15
|
-
scrollToBottom: {
|
|
16
|
-
position: "absolute";
|
|
17
|
-
right: number;
|
|
18
|
-
bottom: number;
|
|
19
|
-
zIndex: number;
|
|
20
|
-
};
|
|
21
|
-
scrollToBottomContent: {
|
|
22
|
-
height: number;
|
|
23
|
-
width: number;
|
|
24
|
-
borderRadius: number;
|
|
25
|
-
backgroundColor: string;
|
|
26
|
-
shadowColor: string;
|
|
27
|
-
shadowOpacity: number;
|
|
28
|
-
shadowOffset: {
|
|
29
|
-
width: number;
|
|
30
|
-
height: number;
|
|
31
|
-
};
|
|
32
|
-
shadowRadius: number;
|
|
33
|
-
};
|
|
34
|
-
};
|
|
35
|
-
export default _default;
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
import { StyleSheet } from 'react-native';
|
|
2
|
-
import Color from '../Color';
|
|
3
|
-
export default StyleSheet.create({
|
|
4
|
-
containerAlignTop: {
|
|
5
|
-
flexDirection: 'row',
|
|
6
|
-
alignItems: 'flex-start',
|
|
7
|
-
},
|
|
8
|
-
contentContainerStyle: {
|
|
9
|
-
flexGrow: 1,
|
|
10
|
-
justifyContent: 'flex-start',
|
|
11
|
-
},
|
|
12
|
-
emptyChatContainer: {
|
|
13
|
-
transform: [{ scaleY: -1 }],
|
|
14
|
-
},
|
|
15
|
-
scrollToBottom: {
|
|
16
|
-
position: 'absolute',
|
|
17
|
-
right: 10,
|
|
18
|
-
bottom: 30,
|
|
19
|
-
zIndex: 999,
|
|
20
|
-
},
|
|
21
|
-
scrollToBottomContent: {
|
|
22
|
-
height: 40,
|
|
23
|
-
width: 40,
|
|
24
|
-
borderRadius: 20,
|
|
25
|
-
backgroundColor: Color.white,
|
|
26
|
-
shadowColor: Color.black,
|
|
27
|
-
shadowOpacity: 0.5,
|
|
28
|
-
shadowOffset: { width: 0, height: 0 },
|
|
29
|
-
shadowRadius: 1,
|
|
30
|
-
},
|
|
31
|
-
});
|
|
32
|
-
//# sourceMappingURL=styles.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"styles.js","sourceRoot":"","sources":["../../src/MessageContainer/styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AACzC,OAAO,KAAK,MAAM,UAAU,CAAA;AAE5B,eAAe,UAAU,CAAC,MAAM,CAAC;IAC/B,iBAAiB,EAAE;QACjB,aAAa,EAAE,KAAK;QACpB,UAAU,EAAE,YAAY;KACzB;IACD,qBAAqB,EAAE;QACrB,QAAQ,EAAE,CAAC;QACX,cAAc,EAAE,YAAY;KAC7B;IACD,kBAAkB,EAAE;QAClB,SAAS,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC;KAC5B;IACD,cAAc,EAAE;QACd,QAAQ,EAAE,UAAU;QACpB,KAAK,EAAE,EAAE;QACT,MAAM,EAAE,EAAE;QACV,MAAM,EAAE,GAAG;KACZ;IACD,qBAAqB,EAAE;QACrB,MAAM,EAAE,EAAE;QACV,KAAK,EAAE,EAAE;QACT,YAAY,EAAE,EAAE;QAChB,eAAe,EAAE,KAAK,CAAC,KAAK;QAC5B,WAAW,EAAE,KAAK,CAAC,KAAK;QACxB,aAAa,EAAE,GAAG;QAClB,YAAY,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE;QACrC,YAAY,EAAE,CAAC;KAChB;CACF,CAAC,CAAA"}
|
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
import React, { RefObject } from 'react';
|
|
2
|
-
import { FlatListProps, StyleProp, ViewStyle, FlatList } from 'react-native';
|
|
3
|
-
import { LoadEarlierProps } from '../LoadEarlier';
|
|
4
|
-
import { MessageProps } from '../Message';
|
|
5
|
-
import { User, IMessage, Reply, DayProps } from '../types';
|
|
6
|
-
import { ReanimatedScrollEvent } from 'react-native-reanimated/lib/typescript/hook/commonTypes';
|
|
7
|
-
export type ListViewProps<TMessage extends IMessage = IMessage> = Partial<FlatListProps<TMessage>>;
|
|
8
|
-
export type AnimatedList<TMessage> = FlatList<TMessage>;
|
|
9
|
-
export interface MessageContainerProps<TMessage extends IMessage = IMessage> {
|
|
10
|
-
forwardRef?: RefObject<AnimatedList<TMessage>>;
|
|
11
|
-
messages?: TMessage[];
|
|
12
|
-
isTyping?: boolean;
|
|
13
|
-
user?: User;
|
|
14
|
-
listViewProps?: ListViewProps;
|
|
15
|
-
inverted?: boolean;
|
|
16
|
-
loadEarlier?: boolean;
|
|
17
|
-
alignTop?: boolean;
|
|
18
|
-
isScrollToBottomEnabled?: boolean;
|
|
19
|
-
scrollToBottomStyle?: StyleProp<ViewStyle>;
|
|
20
|
-
invertibleScrollViewProps?: object;
|
|
21
|
-
extraData?: object;
|
|
22
|
-
scrollToBottomOffset?: number;
|
|
23
|
-
renderChatEmpty?(): React.ReactNode;
|
|
24
|
-
renderFooter?(props: MessageContainerProps<TMessage>): React.ReactNode;
|
|
25
|
-
renderMessage?(props: MessageProps<TMessage>): React.ReactElement;
|
|
26
|
-
renderDay?(props: DayProps): React.ReactNode;
|
|
27
|
-
renderLoadEarlier?(props: LoadEarlierProps): React.ReactNode;
|
|
28
|
-
renderTypingIndicator?(): React.ReactNode;
|
|
29
|
-
scrollToBottomComponent?(): React.ReactNode;
|
|
30
|
-
onLoadEarlier?(): void;
|
|
31
|
-
onQuickReply?(replies: Reply[]): void;
|
|
32
|
-
infiniteScroll?: boolean;
|
|
33
|
-
isLoadingEarlier?: boolean;
|
|
34
|
-
handleOnScroll?(event: ReanimatedScrollEvent): void;
|
|
35
|
-
}
|
|
36
|
-
export interface State {
|
|
37
|
-
showScrollBottom: boolean;
|
|
38
|
-
hasScrolled: boolean;
|
|
39
|
-
}
|
|
40
|
-
interface ViewLayout {
|
|
41
|
-
x: number;
|
|
42
|
-
y: number;
|
|
43
|
-
width: number;
|
|
44
|
-
height: number;
|
|
45
|
-
}
|
|
46
|
-
export type DaysPositions = {
|
|
47
|
-
[key: string]: ViewLayout & {
|
|
48
|
-
createdAt: number;
|
|
49
|
-
};
|
|
50
|
-
};
|
|
51
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/MessageContainer/types.ts"],"names":[],"mappings":""}
|
package/lib/MessageImage.d.ts
DELETED
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import { ImageProps, ViewStyle, StyleProp, ImageStyle, ImageURISource } from 'react-native';
|
|
3
|
-
import { LightboxProps } from 'react-native-lightbox-v2';
|
|
4
|
-
import { IMessage } from './types';
|
|
5
|
-
export interface MessageImageProps<TMessage extends IMessage> {
|
|
6
|
-
currentMessage: TMessage;
|
|
7
|
-
containerStyle?: StyleProp<ViewStyle>;
|
|
8
|
-
imageSourceProps?: Partial<ImageURISource>;
|
|
9
|
-
imageStyle?: StyleProp<ImageStyle>;
|
|
10
|
-
imageProps?: Partial<ImageProps>;
|
|
11
|
-
lightboxProps?: LightboxProps;
|
|
12
|
-
}
|
|
13
|
-
export declare function MessageImage<TMessage extends IMessage = IMessage>({ containerStyle, lightboxProps, imageProps, imageSourceProps, imageStyle, currentMessage, }: MessageImageProps<TMessage>): React.JSX.Element | null;
|
package/lib/MessageImage.js
DELETED
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import { Image, StyleSheet, View, } from 'react-native';
|
|
3
|
-
// TODO: support web
|
|
4
|
-
import Lightbox from 'react-native-lightbox-v2';
|
|
5
|
-
import stylesCommon from './styles';
|
|
6
|
-
const styles = StyleSheet.create({
|
|
7
|
-
image: {
|
|
8
|
-
width: 150,
|
|
9
|
-
height: 100,
|
|
10
|
-
borderRadius: 13,
|
|
11
|
-
margin: 3,
|
|
12
|
-
resizeMode: 'cover',
|
|
13
|
-
},
|
|
14
|
-
imageActive: {
|
|
15
|
-
resizeMode: 'contain',
|
|
16
|
-
},
|
|
17
|
-
});
|
|
18
|
-
export function MessageImage({ containerStyle, lightboxProps, imageProps, imageSourceProps, imageStyle, currentMessage, }) {
|
|
19
|
-
if (currentMessage == null)
|
|
20
|
-
return null;
|
|
21
|
-
return (<View style={containerStyle}>
|
|
22
|
-
{/* @ts-expect-error: Lightbox types are not fully compatible */}
|
|
23
|
-
<Lightbox activeProps={{
|
|
24
|
-
style: [stylesCommon.fill, styles.imageActive],
|
|
25
|
-
}} {...lightboxProps}>
|
|
26
|
-
<Image {...imageProps} style={[styles.image, imageStyle]} source={{ ...imageSourceProps, uri: currentMessage.image }}/>
|
|
27
|
-
</Lightbox>
|
|
28
|
-
</View>);
|
|
29
|
-
}
|
|
30
|
-
//# sourceMappingURL=MessageImage.js.map
|
package/lib/MessageImage.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"MessageImage.js","sourceRoot":"","sources":["../src/MessageImage.tsx"],"names":[],"mappings":"AAAA,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,YAAY,MAAM,UAAU,CAAA;AAEnC,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,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,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,WAAW,CAAC;SAC/C,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"}
|
package/lib/MessageText.d.ts
DELETED
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import { StyleProp, ViewStyle, TextStyle } from 'react-native';
|
|
3
|
-
import { AutolinkProps } from 'react-native-autolink';
|
|
4
|
-
import { Match } from 'autolinker/dist/es2015';
|
|
5
|
-
import { LeftRightStyle, IMessage } from './types';
|
|
6
|
-
export interface MessageOption {
|
|
7
|
-
title: string;
|
|
8
|
-
action: (phone: string) => void;
|
|
9
|
-
}
|
|
10
|
-
export type MessageTextProps<TMessage extends IMessage> = {
|
|
11
|
-
position?: 'left' | 'right';
|
|
12
|
-
currentMessage: TMessage;
|
|
13
|
-
containerStyle?: LeftRightStyle<ViewStyle>;
|
|
14
|
-
textStyle?: LeftRightStyle<TextStyle>;
|
|
15
|
-
linkStyle?: LeftRightStyle<TextStyle>;
|
|
16
|
-
customTextStyle?: StyleProp<TextStyle>;
|
|
17
|
-
onPress?: (message: TMessage, url: string, match: Match) => void;
|
|
18
|
-
} & Omit<AutolinkProps, 'text' | 'onPress'>;
|
|
19
|
-
export declare const MessageText: React.FC<MessageTextProps<IMessage>>;
|
package/lib/MessageText.js
DELETED
|
@@ -1,69 +0,0 @@
|
|
|
1
|
-
import React, { useMemo, useCallback } from 'react';
|
|
2
|
-
import { Linking, StyleSheet, } from 'react-native';
|
|
3
|
-
import Autolink from 'react-native-autolink';
|
|
4
|
-
import { error } from './logging';
|
|
5
|
-
export const MessageText = ({ currentMessage = {}, position = 'left', containerStyle, textStyle, linkStyle: linkStyleProp, customTextStyle, onPress: onPressProp, ...rest }) => {
|
|
6
|
-
// TODO: React.memo
|
|
7
|
-
// const shouldComponentUpdate = (nextProps: MessageTextProps<TMessage>) => {
|
|
8
|
-
// return (
|
|
9
|
-
// !!currentMessage &&
|
|
10
|
-
// !!nextProps.currentMessage &&
|
|
11
|
-
// currentMessage.text !== nextProps.currentMessage.text
|
|
12
|
-
// )
|
|
13
|
-
// }
|
|
14
|
-
const onUrlPress = useCallback((url) => {
|
|
15
|
-
if (/^www\./i.test(url))
|
|
16
|
-
url = `https://${url}`;
|
|
17
|
-
Linking.openURL(url).catch(e => {
|
|
18
|
-
error(e, 'No handler for URL:', url);
|
|
19
|
-
});
|
|
20
|
-
}, []);
|
|
21
|
-
const onPhonePress = useCallback((phone) => {
|
|
22
|
-
Linking.openURL(`tel:${phone}`).catch(e => {
|
|
23
|
-
error(e, 'No handler for telephone');
|
|
24
|
-
});
|
|
25
|
-
}, []);
|
|
26
|
-
const onEmailPress = useCallback((email) => Linking.openURL(`mailto:${email}`).catch(e => error(e, 'No handler for mailto')), []);
|
|
27
|
-
const linkStyle = useMemo(() => StyleSheet.flatten([
|
|
28
|
-
styles.link,
|
|
29
|
-
linkStyleProp?.[position],
|
|
30
|
-
]), [position, linkStyleProp]);
|
|
31
|
-
const handlePress = useCallback((url, match) => {
|
|
32
|
-
const type = match.getType();
|
|
33
|
-
if (onPressProp)
|
|
34
|
-
onPressProp(currentMessage, url, match);
|
|
35
|
-
else if (type === 'url')
|
|
36
|
-
onUrlPress(url);
|
|
37
|
-
else if (type === 'phone')
|
|
38
|
-
onPhonePress(url);
|
|
39
|
-
else if (type === 'email')
|
|
40
|
-
onEmailPress(url);
|
|
41
|
-
}, [onUrlPress, onPhonePress, onEmailPress, onPressProp, currentMessage]);
|
|
42
|
-
const style = useMemo(() => [
|
|
43
|
-
containerStyle?.[position],
|
|
44
|
-
styles[`text_${position}`],
|
|
45
|
-
textStyle?.[position],
|
|
46
|
-
customTextStyle,
|
|
47
|
-
], [containerStyle, position, textStyle, customTextStyle]);
|
|
48
|
-
return (<Autolink style={style} {...rest} text={currentMessage.text} email link linkStyle={linkStyle} onPress={handlePress}/>);
|
|
49
|
-
};
|
|
50
|
-
const styles = StyleSheet.create({
|
|
51
|
-
text: {
|
|
52
|
-
fontSize: 16,
|
|
53
|
-
lineHeight: 20,
|
|
54
|
-
marginTop: 5,
|
|
55
|
-
marginBottom: 5,
|
|
56
|
-
marginLeft: 10,
|
|
57
|
-
marginRight: 10,
|
|
58
|
-
},
|
|
59
|
-
text_left: {
|
|
60
|
-
color: 'black',
|
|
61
|
-
},
|
|
62
|
-
text_right: {
|
|
63
|
-
color: 'white',
|
|
64
|
-
},
|
|
65
|
-
link: {
|
|
66
|
-
textDecorationLine: 'underline',
|
|
67
|
-
},
|
|
68
|
-
});
|
|
69
|
-
//# sourceMappingURL=MessageText.js.map
|
package/lib/MessageText.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"MessageText.js","sourceRoot":"","sources":["../src/MessageText.tsx"],"names":[],"mappings":"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"}
|
package/lib/MessageVideo.d.ts
DELETED
package/lib/MessageVideo.js
DELETED
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import Color from './Color';
|
|
3
|
-
import { View, Text } from 'react-native';
|
|
4
|
-
export function MessageVideo() {
|
|
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
|
-
{'\nYou need to provide your own implementation by using renderMessageVideo prop.'}
|
|
11
|
-
</Text>
|
|
12
|
-
</View>);
|
|
13
|
-
}
|
|
14
|
-
//# sourceMappingURL=MessageVideo.js.map
|
package/lib/MessageVideo.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
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,CAAC,iFAAiF,CACpF;MAAA,EAAE,IAAI,CACR;IAAA,EAAE,IAAI,CAAC,CACR,CAAA;AACH,CAAC"}
|
package/lib/QuickReplies.d.ts
DELETED
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import { StyleProp, ViewStyle, TextStyle } from 'react-native';
|
|
3
|
-
import { IMessage, Reply } from './types';
|
|
4
|
-
export interface QuickRepliesProps<TMessage extends IMessage = IMessage> {
|
|
5
|
-
nextMessage?: TMessage;
|
|
6
|
-
currentMessage: TMessage;
|
|
7
|
-
color?: string;
|
|
8
|
-
sendText?: string;
|
|
9
|
-
quickReplyStyle?: StyleProp<ViewStyle>;
|
|
10
|
-
quickReplyTextStyle?: StyleProp<TextStyle>;
|
|
11
|
-
quickReplyContainerStyle?: StyleProp<ViewStyle>;
|
|
12
|
-
onQuickReply?(reply: Reply[]): void;
|
|
13
|
-
renderQuickReplySend?(): React.ReactNode;
|
|
14
|
-
}
|
|
15
|
-
export declare function QuickReplies({ currentMessage, nextMessage, color, quickReplyStyle, quickReplyTextStyle, quickReplyContainerStyle, onQuickReply, sendText, renderQuickReplySend, }: QuickRepliesProps<IMessage>): React.JSX.Element | null;
|