@sujeetdotkumar/react-native-gifted-chat-performant 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +868 -0
- package/lib/Actions.d.ts +16 -0
- package/lib/Actions.d.ts.map +1 -0
- package/lib/Actions.js +65 -0
- package/lib/Actions.js.map +1 -0
- package/lib/Avatar.d.ts +19 -0
- package/lib/Avatar.d.ts.map +1 -0
- package/lib/Avatar.js +93 -0
- package/lib/Avatar.js.map +1 -0
- package/lib/Bubble/index.d.ts +6 -0
- package/lib/Bubble/index.d.ts.map +1 -0
- package/lib/Bubble/index.js +269 -0
- package/lib/Bubble/index.js.map +1 -0
- package/lib/Bubble/styles.d.ts +57 -0
- package/lib/Bubble/styles.d.ts.map +1 -0
- package/lib/Bubble/styles.js +59 -0
- package/lib/Bubble/styles.js.map +1 -0
- package/lib/Bubble/types.d.ts +59 -0
- package/lib/Bubble/types.d.ts.map +1 -0
- package/lib/Bubble/types.js +2 -0
- package/lib/Bubble/types.js.map +1 -0
- package/lib/Color.d.ts +18 -0
- package/lib/Color.d.ts.map +1 -0
- package/lib/Color.js +18 -0
- package/lib/Color.js.map +1 -0
- package/lib/Composer.d.ts +9 -0
- package/lib/Composer.d.ts.map +1 -0
- package/lib/Composer.js +56 -0
- package/lib/Composer.js.map +1 -0
- package/lib/Constant.d.ts +6 -0
- package/lib/Constant.d.ts.map +1 -0
- package/lib/Constant.js +6 -0
- package/lib/Constant.js.map +1 -0
- package/lib/Day/index.d.ts +5 -0
- package/lib/Day/index.d.ts.map +1 -0
- package/lib/Day/index.js +37 -0
- package/lib/Day/index.js.map +1 -0
- package/lib/Day/styles.d.ts +21 -0
- package/lib/Day/styles.d.ts.map +1 -0
- package/lib/Day/styles.js +22 -0
- package/lib/Day/styles.js.map +1 -0
- package/lib/Day/types.d.ts +11 -0
- package/lib/Day/types.d.ts.map +1 -0
- package/lib/Day/types.js +2 -0
- package/lib/Day/types.js.map +1 -0
- package/lib/GiftedAvatar.d.ts +12 -0
- package/lib/GiftedAvatar.d.ts.map +1 -0
- package/lib/GiftedAvatar.js +101 -0
- package/lib/GiftedAvatar.js.map +1 -0
- package/lib/GiftedChat/index.d.ts +10 -0
- package/lib/GiftedChat/index.d.ts.map +1 -0
- package/lib/GiftedChat/index.js +215 -0
- package/lib/GiftedChat/index.js.map +1 -0
- package/lib/GiftedChat/styles.d.ts +13 -0
- package/lib/GiftedChat/styles.d.ts.map +1 -0
- package/lib/GiftedChat/styles.js +13 -0
- package/lib/GiftedChat/styles.js.map +1 -0
- package/lib/GiftedChat/types.d.ts +89 -0
- package/lib/GiftedChat/types.d.ts.map +1 -0
- package/lib/GiftedChat/types.js +2 -0
- package/lib/GiftedChat/types.js.map +1 -0
- package/lib/GiftedChatContext.d.ts +11 -0
- package/lib/GiftedChatContext.d.ts.map +1 -0
- package/lib/GiftedChatContext.js +10 -0
- package/lib/GiftedChatContext.js.map +1 -0
- package/lib/InputToolbar.d.ts +36 -0
- package/lib/InputToolbar.d.ts.map +1 -0
- package/lib/InputToolbar.js +108 -0
- package/lib/InputToolbar.js.map +1 -0
- package/lib/LoadEarlierMessages.d.ts +17 -0
- package/lib/LoadEarlierMessages.d.ts.map +1 -0
- package/lib/LoadEarlierMessages.js +45 -0
- package/lib/LoadEarlierMessages.js.map +1 -0
- package/lib/Message/index.d.ts +6 -0
- package/lib/Message/index.d.ts.map +1 -0
- package/lib/Message/index.js +180 -0
- package/lib/Message/index.js.map +1 -0
- package/lib/Message/styles.d.ts +18 -0
- package/lib/Message/styles.d.ts.map +1 -0
- package/lib/Message/styles.js +18 -0
- package/lib/Message/styles.js.map +1 -0
- package/lib/Message/types.d.ts +25 -0
- package/lib/Message/types.d.ts.map +1 -0
- package/lib/Message/types.js +2 -0
- package/lib/Message/types.js.map +1 -0
- package/lib/MessageAudio.d.ts +3 -0
- package/lib/MessageAudio.d.ts.map +1 -0
- package/lib/MessageAudio.js +25 -0
- package/lib/MessageAudio.js.map +1 -0
- package/lib/MessageImage.d.ts +12 -0
- package/lib/MessageImage.d.ts.map +1 -0
- package/lib/MessageImage.js +164 -0
- package/lib/MessageImage.js.map +1 -0
- package/lib/MessageReply.d.ts +15 -0
- package/lib/MessageReply.d.ts.map +1 -0
- package/lib/MessageReply.js +103 -0
- package/lib/MessageReply.js.map +1 -0
- package/lib/MessageText.d.ts +24 -0
- package/lib/MessageText.d.ts.map +1 -0
- package/lib/MessageText.js +41 -0
- package/lib/MessageText.js.map +1 -0
- package/lib/MessageVideo.d.ts +3 -0
- package/lib/MessageVideo.d.ts.map +1 -0
- package/lib/MessageVideo.js +25 -0
- package/lib/MessageVideo.js.map +1 -0
- package/lib/MessagesContainer/components/DayAnimated/index.d.ts +5 -0
- package/lib/MessagesContainer/components/DayAnimated/index.d.ts.map +1 -0
- package/lib/MessagesContainer/components/DayAnimated/index.js +44 -0
- package/lib/MessagesContainer/components/DayAnimated/index.js.map +1 -0
- package/lib/MessagesContainer/components/DayAnimated/styles.d.ts +12 -0
- package/lib/MessagesContainer/components/DayAnimated/styles.d.ts.map +1 -0
- package/lib/MessagesContainer/components/DayAnimated/styles.js +12 -0
- package/lib/MessagesContainer/components/DayAnimated/styles.js.map +1 -0
- package/lib/MessagesContainer/components/DayAnimated/types.d.ts +9 -0
- package/lib/MessagesContainer/components/DayAnimated/types.d.ts.map +1 -0
- package/lib/MessagesContainer/components/DayAnimated/types.js +2 -0
- package/lib/MessagesContainer/components/DayAnimated/types.js.map +1 -0
- package/lib/MessagesContainer/components/Item/index.d.ts +6 -0
- package/lib/MessagesContainer/components/Item/index.d.ts.map +1 -0
- package/lib/MessagesContainer/components/Item/index.js +25 -0
- package/lib/MessagesContainer/components/Item/index.js.map +1 -0
- package/lib/MessagesContainer/components/Item/types.d.ts +10 -0
- package/lib/MessagesContainer/components/Item/types.d.ts.map +1 -0
- package/lib/MessagesContainer/components/Item/types.js +2 -0
- package/lib/MessagesContainer/components/Item/types.js.map +1 -0
- package/lib/MessagesContainer/index.d.ts +7 -0
- package/lib/MessagesContainer/index.d.ts.map +1 -0
- package/lib/MessagesContainer/index.js +168 -0
- package/lib/MessagesContainer/index.js.map +1 -0
- package/lib/MessagesContainer/styles.d.ts +55 -0
- package/lib/MessagesContainer/styles.d.ts.map +1 -0
- package/lib/MessagesContainer/styles.js +42 -0
- package/lib/MessagesContainer/styles.js.map +1 -0
- package/lib/MessagesContainer/types.d.ts +72 -0
- package/lib/MessagesContainer/types.d.ts.map +1 -0
- package/lib/MessagesContainer/types.js +2 -0
- package/lib/MessagesContainer/types.js.map +1 -0
- package/lib/MessagesContainer/utils.d.ts +20 -0
- package/lib/MessagesContainer/utils.d.ts.map +1 -0
- package/lib/MessagesContainer/utils.js +28 -0
- package/lib/MessagesContainer/utils.js.map +1 -0
- package/lib/Models.d.ts +58 -0
- package/lib/Models.d.ts.map +1 -0
- package/lib/Models.js +2 -0
- package/lib/Models.js.map +1 -0
- package/lib/QuickReplies.d.ts +16 -0
- package/lib/QuickReplies.d.ts.map +1 -0
- package/lib/QuickReplies.js +108 -0
- package/lib/QuickReplies.js.map +1 -0
- package/lib/Reply/index.d.ts +2 -0
- package/lib/Reply/index.d.ts.map +1 -0
- package/lib/Reply/index.js +2 -0
- package/lib/Reply/index.js.map +1 -0
- package/lib/Reply/types.d.ts +72 -0
- package/lib/Reply/types.d.ts.map +1 -0
- package/lib/Reply/types.js +2 -0
- package/lib/Reply/types.js.map +1 -0
- package/lib/ReplyPreview.d.ts +14 -0
- package/lib/ReplyPreview.d.ts.map +1 -0
- package/lib/ReplyPreview.js +95 -0
- package/lib/ReplyPreview.js.map +1 -0
- package/lib/Send.d.ts +19 -0
- package/lib/Send.d.ts.map +1 -0
- package/lib/Send.js +57 -0
- package/lib/Send.js.map +1 -0
- package/lib/SystemMessage.d.ts +14 -0
- package/lib/SystemMessage.d.ts.map +1 -0
- package/lib/SystemMessage.js +42 -0
- package/lib/SystemMessage.js.map +1 -0
- package/lib/Time.d.ts +13 -0
- package/lib/Time.d.ts.map +1 -0
- package/lib/Time.js +42 -0
- package/lib/Time.js.map +1 -0
- package/lib/TypingIndicator/index.d.ts +5 -0
- package/lib/TypingIndicator/index.d.ts.map +1 -0
- package/lib/TypingIndicator/index.js +94 -0
- package/lib/TypingIndicator/index.js.map +1 -0
- package/lib/TypingIndicator/styles.d.ts +21 -0
- package/lib/TypingIndicator/styles.d.ts.map +1 -0
- package/lib/TypingIndicator/styles.js +22 -0
- package/lib/TypingIndicator/styles.js.map +1 -0
- package/lib/TypingIndicator/types.d.ts +6 -0
- package/lib/TypingIndicator/types.d.ts.map +1 -0
- package/lib/TypingIndicator/types.js +2 -0
- package/lib/TypingIndicator/types.js.map +1 -0
- package/lib/components/MessageReply.d.ts +29 -0
- package/lib/components/MessageReply.d.ts.map +1 -0
- package/lib/components/MessageReply.js +87 -0
- package/lib/components/MessageReply.js.map +1 -0
- package/lib/components/ReplyPreview.d.ts +17 -0
- package/lib/components/ReplyPreview.d.ts.map +1 -0
- package/lib/components/ReplyPreview.js +148 -0
- package/lib/components/ReplyPreview.js.map +1 -0
- package/lib/components/TouchableOpacity.d.ts +9 -0
- package/lib/components/TouchableOpacity.d.ts.map +1 -0
- package/lib/components/TouchableOpacity.js +37 -0
- package/lib/components/TouchableOpacity.js.map +1 -0
- package/lib/hooks/useColorScheme.d.ts +8 -0
- package/lib/hooks/useColorScheme.d.ts.map +1 -0
- package/lib/hooks/useColorScheme.js +17 -0
- package/lib/hooks/useColorScheme.js.map +1 -0
- package/lib/hooks/useUpdateLayoutEffect.d.ts +9 -0
- package/lib/hooks/useUpdateLayoutEffect.d.ts.map +1 -0
- package/lib/hooks/useUpdateLayoutEffect.js +17 -0
- package/lib/hooks/useUpdateLayoutEffect.js.map +1 -0
- package/lib/index.d.ts +31 -0
- package/lib/index.d.ts.map +1 -0
- package/lib/index.js +31 -0
- package/lib/index.js.map +1 -0
- package/lib/linkParser.d.ts +39 -0
- package/lib/linkParser.d.ts.map +1 -0
- package/lib/linkParser.js +154 -0
- package/lib/linkParser.js.map +1 -0
- package/lib/logging.d.ts +3 -0
- package/lib/logging.d.ts.map +1 -0
- package/lib/logging.js +5 -0
- package/lib/logging.js.map +1 -0
- package/lib/styles.d.ts +14 -0
- package/lib/styles.d.ts.map +1 -0
- package/lib/styles.js +23 -0
- package/lib/styles.js.map +1 -0
- package/lib/types.d.ts +19 -0
- package/lib/types.d.ts.map +1 -0
- package/lib/types.js +2 -0
- package/lib/types.js.map +1 -0
- package/lib/utils.d.ts +8 -0
- package/lib/utils.d.ts.map +1 -0
- package/lib/utils.js +104 -0
- package/lib/utils.js.map +1 -0
- package/package.json +114 -0
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
import React, { useEffect } from 'react';
|
|
2
|
+
import { Image, Pressable, StyleSheet, Text, View, } from 'react-native';
|
|
3
|
+
import Animated, { useAnimatedStyle, useSharedValue, withTiming, Easing, interpolate, runOnJS, } from 'react-native-reanimated';
|
|
4
|
+
import { useColorScheme } from '../hooks/useColorScheme';
|
|
5
|
+
const ANIMATION_DURATION = 200;
|
|
6
|
+
const ANIMATION_EASING = Easing.bezier(0.25, 0.1, 0.25, 1);
|
|
7
|
+
const DEFAULT_HEIGHT = 68;
|
|
8
|
+
const styles = StyleSheet.create({
|
|
9
|
+
borderIndicator: {
|
|
10
|
+
backgroundColor: '#0084ff',
|
|
11
|
+
borderTopLeftRadius: 4,
|
|
12
|
+
height: '100%',
|
|
13
|
+
width: 4,
|
|
14
|
+
},
|
|
15
|
+
clearButton: {
|
|
16
|
+
alignItems: 'center',
|
|
17
|
+
borderRadius: 12,
|
|
18
|
+
height: 24,
|
|
19
|
+
justifyContent: 'center',
|
|
20
|
+
width: 24,
|
|
21
|
+
},
|
|
22
|
+
clearButtonText: {
|
|
23
|
+
fontSize: 18,
|
|
24
|
+
fontWeight: '600',
|
|
25
|
+
},
|
|
26
|
+
container: {
|
|
27
|
+
borderRadius: 8,
|
|
28
|
+
flexDirection: 'row',
|
|
29
|
+
marginBottom: 8,
|
|
30
|
+
marginHorizontal: 10,
|
|
31
|
+
overflow: 'hidden',
|
|
32
|
+
},
|
|
33
|
+
containerDark: {
|
|
34
|
+
backgroundColor: '#2c2c2e',
|
|
35
|
+
},
|
|
36
|
+
containerLight: {
|
|
37
|
+
backgroundColor: '#e9e9eb',
|
|
38
|
+
},
|
|
39
|
+
content: {
|
|
40
|
+
flex: 1,
|
|
41
|
+
paddingHorizontal: 10,
|
|
42
|
+
paddingVertical: 8,
|
|
43
|
+
},
|
|
44
|
+
image: {
|
|
45
|
+
borderRadius: 4,
|
|
46
|
+
height: 40,
|
|
47
|
+
marginRight: 8,
|
|
48
|
+
width: 40,
|
|
49
|
+
},
|
|
50
|
+
row: {
|
|
51
|
+
alignItems: 'center',
|
|
52
|
+
flexDirection: 'row',
|
|
53
|
+
},
|
|
54
|
+
text: {
|
|
55
|
+
fontSize: 14,
|
|
56
|
+
},
|
|
57
|
+
textDark: {
|
|
58
|
+
color: '#fff',
|
|
59
|
+
},
|
|
60
|
+
textLight: {
|
|
61
|
+
color: '#333',
|
|
62
|
+
},
|
|
63
|
+
username: {
|
|
64
|
+
color: '#0084ff',
|
|
65
|
+
fontSize: 13,
|
|
66
|
+
fontWeight: '600',
|
|
67
|
+
marginBottom: 2,
|
|
68
|
+
},
|
|
69
|
+
wrapper: {
|
|
70
|
+
overflow: 'hidden',
|
|
71
|
+
},
|
|
72
|
+
});
|
|
73
|
+
export function ReplyPreview({ replyMessage, onClearReply, containerStyle, textStyle, imageStyle, }) {
|
|
74
|
+
const colorScheme = useColorScheme();
|
|
75
|
+
const isDark = colorScheme === 'dark';
|
|
76
|
+
const animationProgress = useSharedValue(0);
|
|
77
|
+
const contentHeight = useSharedValue(DEFAULT_HEIGHT);
|
|
78
|
+
// Animate in on mount
|
|
79
|
+
useEffect(() => {
|
|
80
|
+
animationProgress.value = withTiming(1, {
|
|
81
|
+
duration: ANIMATION_DURATION,
|
|
82
|
+
easing: ANIMATION_EASING,
|
|
83
|
+
});
|
|
84
|
+
}, [animationProgress]);
|
|
85
|
+
const handleClear = () => {
|
|
86
|
+
'worklet';
|
|
87
|
+
animationProgress.value = withTiming(0, {
|
|
88
|
+
duration: ANIMATION_DURATION,
|
|
89
|
+
easing: ANIMATION_EASING,
|
|
90
|
+
}, finished => {
|
|
91
|
+
if (finished && onClearReply)
|
|
92
|
+
runOnJS(onClearReply)();
|
|
93
|
+
});
|
|
94
|
+
};
|
|
95
|
+
const wrapperAnimatedStyle = useAnimatedStyle(() => {
|
|
96
|
+
const height = interpolate(animationProgress.value, [0, 1], [0, contentHeight.value]);
|
|
97
|
+
const opacity = interpolate(animationProgress.value, [0, 0.5, 1], [0, 0.5, 1]);
|
|
98
|
+
const translateY = interpolate(animationProgress.value, [0, 1], [10, 0]);
|
|
99
|
+
return {
|
|
100
|
+
height,
|
|
101
|
+
opacity,
|
|
102
|
+
transform: [{ translateY }],
|
|
103
|
+
};
|
|
104
|
+
});
|
|
105
|
+
const displayName = replyMessage.user?.name || 'Unknown';
|
|
106
|
+
return (<Animated.View style={[styles.wrapper, wrapperAnimatedStyle]}>
|
|
107
|
+
<View style={[
|
|
108
|
+
styles.container,
|
|
109
|
+
isDark ? styles.containerDark : styles.containerLight,
|
|
110
|
+
containerStyle,
|
|
111
|
+
]} onLayout={e => {
|
|
112
|
+
const newHeight = e.nativeEvent.layout.height + 8;
|
|
113
|
+
// Animate height change smoothly when content changes
|
|
114
|
+
contentHeight.value = withTiming(newHeight, {
|
|
115
|
+
duration: ANIMATION_DURATION,
|
|
116
|
+
easing: ANIMATION_EASING,
|
|
117
|
+
});
|
|
118
|
+
}}>
|
|
119
|
+
<View style={styles.borderIndicator}/>
|
|
120
|
+
<View style={styles.content}>
|
|
121
|
+
<View style={styles.row}>
|
|
122
|
+
{replyMessage.image && (<Image source={{ uri: replyMessage.image }} style={[styles.image, imageStyle]}/>)}
|
|
123
|
+
<View style={{ flex: 1 }}>
|
|
124
|
+
<Text style={styles.username} numberOfLines={1}>
|
|
125
|
+
Replying to {displayName}
|
|
126
|
+
</Text>
|
|
127
|
+
{replyMessage.text && (<Text style={[
|
|
128
|
+
styles.text,
|
|
129
|
+
isDark ? styles.textDark : styles.textLight,
|
|
130
|
+
textStyle,
|
|
131
|
+
]} numberOfLines={2}>
|
|
132
|
+
{replyMessage.text}
|
|
133
|
+
</Text>)}
|
|
134
|
+
</View>
|
|
135
|
+
</View>
|
|
136
|
+
</View>
|
|
137
|
+
<Pressable style={styles.clearButton} onPress={handleClear} hitSlop={8}>
|
|
138
|
+
<Text style={[
|
|
139
|
+
styles.clearButtonText,
|
|
140
|
+
isDark ? styles.textDark : styles.textLight,
|
|
141
|
+
]}>
|
|
142
|
+
×
|
|
143
|
+
</Text>
|
|
144
|
+
</Pressable>
|
|
145
|
+
</View>
|
|
146
|
+
</Animated.View>);
|
|
147
|
+
}
|
|
148
|
+
//# sourceMappingURL=ReplyPreview.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ReplyPreview.js","sourceRoot":"","sources":["../../src/components/ReplyPreview.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { BaseButton } from 'react-native-gesture-handler';
|
|
3
|
+
import Animated from 'react-native-reanimated';
|
|
4
|
+
export type TouchableOpacityProps = Omit<React.ComponentProps<typeof BaseButton>, 'onPress'> & {
|
|
5
|
+
activeOpacity?: number;
|
|
6
|
+
onPress?: () => void;
|
|
7
|
+
} & React.ComponentProps<typeof Animated.View>;
|
|
8
|
+
export declare const TouchableOpacity: React.FC<TouchableOpacityProps>;
|
|
9
|
+
//# sourceMappingURL=TouchableOpacity.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TouchableOpacity.d.ts","sourceRoot":"","sources":["../../src/components/TouchableOpacity.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAsB,MAAM,OAAO,CAAA;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAA;AACzD,OAAO,QAIN,MAAM,yBAAyB,CAAA;AAEhC,MAAM,MAAM,qBAAqB,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,UAAU,CAAC,EAAE,SAAS,CAAC,GAAG;IAC7F,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAA;CACrB,GAAG,KAAK,CAAC,cAAc,CAAC,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAA;AAE9C,eAAO,MAAM,gBAAgB,EAAE,KAAK,CAAC,EAAE,CAAC,qBAAqB,CAqD5D,CAAA"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import React, { useCallback } from 'react';
|
|
2
|
+
import { BaseButton } from 'react-native-gesture-handler';
|
|
3
|
+
import Animated, { useAnimatedStyle, useSharedValue, withTiming, } from 'react-native-reanimated';
|
|
4
|
+
export const TouchableOpacity = ({ children, style, activeOpacity = 0.2, onPress, ...rest }) => {
|
|
5
|
+
const opacity = useSharedValue(1);
|
|
6
|
+
const isAnimationInFinished = useSharedValue(false);
|
|
7
|
+
const handlePressIn = useCallback(() => {
|
|
8
|
+
opacity.value = withTiming(activeOpacity, { duration: 150 }, () => {
|
|
9
|
+
isAnimationInFinished.value = true;
|
|
10
|
+
});
|
|
11
|
+
}, [activeOpacity, opacity, isAnimationInFinished]);
|
|
12
|
+
const handlePressOut = useCallback(() => {
|
|
13
|
+
setTimeout(() => {
|
|
14
|
+
'worklet';
|
|
15
|
+
opacity.value = withTiming(1, { duration: 150 });
|
|
16
|
+
isAnimationInFinished.value = false;
|
|
17
|
+
}, isAnimationInFinished.value ? 0 : 150);
|
|
18
|
+
}, [opacity, isAnimationInFinished]);
|
|
19
|
+
const handleActiveStateChange = useCallback((isActive) => {
|
|
20
|
+
if (isActive)
|
|
21
|
+
handlePressIn();
|
|
22
|
+
else
|
|
23
|
+
handlePressOut();
|
|
24
|
+
}, [handlePressIn, handlePressOut]);
|
|
25
|
+
const animatedStyle = useAnimatedStyle(() => ({
|
|
26
|
+
opacity: opacity.value,
|
|
27
|
+
}));
|
|
28
|
+
const handlePress = useCallback(() => {
|
|
29
|
+
onPress?.();
|
|
30
|
+
}, [onPress]);
|
|
31
|
+
return (<BaseButton {...rest} onPress={handlePress} onActiveStateChange={handleActiveStateChange}>
|
|
32
|
+
<Animated.View style={[style, animatedStyle]}>
|
|
33
|
+
{children}
|
|
34
|
+
</Animated.View>
|
|
35
|
+
</BaseButton>);
|
|
36
|
+
};
|
|
37
|
+
//# sourceMappingURL=TouchableOpacity.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TouchableOpacity.js","sourceRoot":"","sources":["../../src/components/TouchableOpacity.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,WAAW,EAAE,MAAM,OAAO,CAAA;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAA;AACzD,OAAO,QAAQ,EAAE,EACf,gBAAgB,EAChB,cAAc,EACd,UAAU,GACX,MAAM,yBAAyB,CAAA;AAOhC,MAAM,CAAC,MAAM,gBAAgB,GAAoC,CAAC,EAChE,QAAQ,EACR,KAAK,EACL,aAAa,GAAG,GAAG,EACnB,OAAO,EACP,GAAG,IAAI,EACR,EAAE,EAAE;IACH,MAAM,OAAO,GAAG,cAAc,CAAC,CAAC,CAAC,CAAA;IACjC,MAAM,qBAAqB,GAAG,cAAc,CAAC,KAAK,CAAC,CAAA;IAEnD,MAAM,aAAa,GAAG,WAAW,CAAC,GAAG,EAAE;QACrC,OAAO,CAAC,KAAK,GAAG,UAAU,CAAC,aAAa,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE;YAChE,qBAAqB,CAAC,KAAK,GAAG,IAAI,CAAA;QACpC,CAAC,CAAC,CAAA;IACJ,CAAC,EAAE,CAAC,aAAa,EAAE,OAAO,EAAE,qBAAqB,CAAC,CAAC,CAAA;IAEnD,MAAM,cAAc,GAAG,WAAW,CAAC,GAAG,EAAE;QACtC,UAAU,CAAC,GAAG,EAAE;YACd,SAAS,CAAA;YAET,OAAO,CAAC,KAAK,GAAG,UAAU,CAAC,CAAC,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,CAAA;YAChD,qBAAqB,CAAC,KAAK,GAAG,KAAK,CAAA;QACrC,CAAC,EAAE,qBAAqB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;IAC3C,CAAC,EAAE,CAAC,OAAO,EAAE,qBAAqB,CAAC,CAAC,CAAA;IAEpC,MAAM,uBAAuB,GAAG,WAAW,CAAC,CAAC,QAAiB,EAAE,EAAE;QAChE,IAAI,QAAQ;YACV,aAAa,EAAE,CAAA;;YAEf,cAAc,EAAE,CAAA;IACpB,CAAC,EAAE,CAAC,aAAa,EAAE,cAAc,CAAC,CAAC,CAAA;IAEnC,MAAM,aAAa,GAAG,gBAAgB,CAAC,GAAG,EAAE,CAAC,CAAC;QAC5C,OAAO,EAAE,OAAO,CAAC,KAAK;KACvB,CAAC,CAAC,CAAA;IAEH,MAAM,WAAW,GAAG,WAAW,CAAC,GAAG,EAAE;QACnC,OAAO,EAAE,EAAE,CAAA;IACb,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAA;IAEb,OAAO,CACL,CAAC,UAAU,CACT,IAAI,IAAI,CAAC,CACT,OAAO,CAAC,CAAC,WAAW,CAAC,CACrB,mBAAmB,CAAC,CAAC,uBAAuB,CAAC,CAE7C;MAAA,CAAC,QAAQ,CAAC,IAAI,CACZ,KAAK,CAAC,CAAC,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC,CAE9B;QAAA,CAAC,QAAQ,CACX;MAAA,EAAE,QAAQ,CAAC,IAAI,CACjB;IAAA,EAAE,UAAU,CAAC,CACd,CAAA;AACH,CAAC,CAAA"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Custom hook that returns the color scheme from GiftedChat context if provided,
|
|
3
|
+
* otherwise falls back to the system color scheme from React Native.
|
|
4
|
+
*
|
|
5
|
+
* @returns The current color scheme ('light', 'dark', null, or undefined)
|
|
6
|
+
*/
|
|
7
|
+
export declare function useColorScheme(): import("react-native").ColorSchemeName;
|
|
8
|
+
//# sourceMappingURL=useColorScheme.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useColorScheme.d.ts","sourceRoot":"","sources":["../../src/hooks/useColorScheme.ts"],"names":[],"mappings":"AAGA;;;;;GAKG;AACH,wBAAgB,cAAc,2CAQ7B"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { useColorScheme as useRNColorScheme } from 'react-native';
|
|
2
|
+
import { useChatContext } from '../GiftedChatContext';
|
|
3
|
+
/**
|
|
4
|
+
* Custom hook that returns the color scheme from GiftedChat context if provided,
|
|
5
|
+
* otherwise falls back to the system color scheme from React Native.
|
|
6
|
+
*
|
|
7
|
+
* @returns The current color scheme ('light', 'dark', null, or undefined)
|
|
8
|
+
*/
|
|
9
|
+
export function useColorScheme() {
|
|
10
|
+
const { getColorScheme } = useChatContext();
|
|
11
|
+
const contextColorScheme = getColorScheme();
|
|
12
|
+
const systemColorScheme = useRNColorScheme();
|
|
13
|
+
return contextColorScheme !== undefined && contextColorScheme !== null
|
|
14
|
+
? contextColorScheme
|
|
15
|
+
: systemColorScheme;
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=useColorScheme.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useColorScheme.js","sourceRoot":"","sources":["../../src/hooks/useColorScheme.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,IAAI,gBAAgB,EAAE,MAAM,cAAc,CAAA;AACjE,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAErD;;;;;GAKG;AACH,MAAM,UAAU,cAAc;IAC5B,MAAM,EAAE,cAAc,EAAE,GAAG,cAAc,EAAE,CAAA;IAC3C,MAAM,kBAAkB,GAAG,cAAc,EAAE,CAAA;IAC3C,MAAM,iBAAiB,GAAG,gBAAgB,EAAE,CAAA;IAE5C,OAAO,kBAAkB,KAAK,SAAS,IAAI,kBAAkB,KAAK,IAAI;QACpE,CAAC,CAAC,kBAAkB;QACpB,CAAC,CAAC,iBAAiB,CAAA;AACvB,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { DependencyList } from 'react';
|
|
2
|
+
/**
|
|
3
|
+
* A custom useEffect hook that only triggers on updates, not on initial mount
|
|
4
|
+
* Idea stolen from: https://stackoverflow.com/a/55075818/1526448
|
|
5
|
+
* @param {()=>void} effect the function to call
|
|
6
|
+
* @param {DependencyList} dependencies the state(s) that fires the update
|
|
7
|
+
*/
|
|
8
|
+
export declare function useUpdateLayoutEffect(effect: () => void, dependencies?: DependencyList): void;
|
|
9
|
+
//# sourceMappingURL=useUpdateLayoutEffect.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useUpdateLayoutEffect.d.ts","sourceRoot":"","sources":["../../src/hooks/useUpdateLayoutEffect.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAA2B,MAAM,OAAO,CAAA;AAE/D;;;;;GAKG;AACH,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,MAAM,IAAI,EAClB,YAAY,GAAE,cAAmB,QAUlC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { useLayoutEffect, useRef } from 'react';
|
|
2
|
+
/**
|
|
3
|
+
* A custom useEffect hook that only triggers on updates, not on initial mount
|
|
4
|
+
* Idea stolen from: https://stackoverflow.com/a/55075818/1526448
|
|
5
|
+
* @param {()=>void} effect the function to call
|
|
6
|
+
* @param {DependencyList} dependencies the state(s) that fires the update
|
|
7
|
+
*/
|
|
8
|
+
export function useUpdateLayoutEffect(effect, dependencies = []) {
|
|
9
|
+
const isInitialMount = useRef(true);
|
|
10
|
+
useLayoutEffect(() => {
|
|
11
|
+
if (isInitialMount.current)
|
|
12
|
+
isInitialMount.current = false;
|
|
13
|
+
else
|
|
14
|
+
effect();
|
|
15
|
+
}, dependencies);
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=useUpdateLayoutEffect.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useUpdateLayoutEffect.js","sourceRoot":"","sources":["../../src/hooks/useUpdateLayoutEffect.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,eAAe,EAAE,MAAM,EAAE,MAAM,OAAO,CAAA;AAE/D;;;;;GAKG;AACH,MAAM,UAAU,qBAAqB,CACnC,MAAkB,EAClB,eAA+B,EAAE;IAEjC,MAAM,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,CAAA;IAEnC,eAAe,CAAC,GAAG,EAAE;QACnB,IAAI,cAAc,CAAC,OAAO;YACxB,cAAc,CAAC,OAAO,GAAG,KAAK,CAAA;;YAE9B,MAAM,EAAE,CAAA;IACZ,CAAC,EAAE,YAAY,CAAC,CAAA;AAClB,CAAC"}
|
package/lib/index.d.ts
ADDED
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import * as utils from './utils';
|
|
2
|
+
export * from './GiftedChat';
|
|
3
|
+
export * from './Constant';
|
|
4
|
+
export { utils };
|
|
5
|
+
export * from './GiftedChatContext';
|
|
6
|
+
export * from './types';
|
|
7
|
+
export * from './linkParser';
|
|
8
|
+
export * from './Reply';
|
|
9
|
+
export * from './styles';
|
|
10
|
+
export { Color } from './Color';
|
|
11
|
+
export { Actions } from './Actions';
|
|
12
|
+
export { Avatar } from './Avatar';
|
|
13
|
+
export { Bubble } from './Bubble';
|
|
14
|
+
export { SystemMessage } from './SystemMessage';
|
|
15
|
+
export { MessageImage } from './MessageImage';
|
|
16
|
+
export { MessageText } from './MessageText';
|
|
17
|
+
export { Composer } from './Composer';
|
|
18
|
+
export { Day } from './Day';
|
|
19
|
+
export { InputToolbar } from './InputToolbar';
|
|
20
|
+
export { LoadEarlierMessages } from './LoadEarlierMessages';
|
|
21
|
+
export { Message } from './Message';
|
|
22
|
+
export { MessagesContainer } from './MessagesContainer';
|
|
23
|
+
export { Send } from './Send';
|
|
24
|
+
export { Time } from './Time';
|
|
25
|
+
export { GiftedAvatar } from './GiftedAvatar';
|
|
26
|
+
export { MessageAudio } from './MessageAudio';
|
|
27
|
+
export { MessageVideo } from './MessageVideo';
|
|
28
|
+
export { MessageReply } from './components/MessageReply';
|
|
29
|
+
export { ReplyPreview } from './components/ReplyPreview';
|
|
30
|
+
export { useColorScheme } from './hooks/useColorScheme';
|
|
31
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,SAAS,CAAA;AAEhC,cAAc,cAAc,CAAA;AAC5B,cAAc,YAAY,CAAA;AAC1B,OAAO,EAAE,KAAK,EAAE,CAAA;AAChB,cAAc,qBAAqB,CAAA;AACnC,cAAc,SAAS,CAAA;AACvB,cAAc,cAAc,CAAA;AAC5B,cAAc,SAAS,CAAA;AACvB,cAAc,UAAU,CAAA;AACxB,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAC/B,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AACjC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AACjC,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAC3C,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AACrC,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAA;AAC3B,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAC7C,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AAC3D,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AACvD,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAA;AAC7B,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAA;AAC7B,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA"}
|
package/lib/index.js
ADDED
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import * as utils from './utils';
|
|
2
|
+
export * from './GiftedChat';
|
|
3
|
+
export * from './Constant';
|
|
4
|
+
export { utils };
|
|
5
|
+
export * from './GiftedChatContext';
|
|
6
|
+
export * from './types';
|
|
7
|
+
export * from './linkParser';
|
|
8
|
+
export * from './Reply';
|
|
9
|
+
export * from './styles';
|
|
10
|
+
export { Color } from './Color';
|
|
11
|
+
export { Actions } from './Actions';
|
|
12
|
+
export { Avatar } from './Avatar';
|
|
13
|
+
export { Bubble } from './Bubble';
|
|
14
|
+
export { SystemMessage } from './SystemMessage';
|
|
15
|
+
export { MessageImage } from './MessageImage';
|
|
16
|
+
export { MessageText } from './MessageText';
|
|
17
|
+
export { Composer } from './Composer';
|
|
18
|
+
export { Day } from './Day';
|
|
19
|
+
export { InputToolbar } from './InputToolbar';
|
|
20
|
+
export { LoadEarlierMessages } from './LoadEarlierMessages';
|
|
21
|
+
export { Message } from './Message';
|
|
22
|
+
export { MessagesContainer } from './MessagesContainer';
|
|
23
|
+
export { Send } from './Send';
|
|
24
|
+
export { Time } from './Time';
|
|
25
|
+
export { GiftedAvatar } from './GiftedAvatar';
|
|
26
|
+
export { MessageAudio } from './MessageAudio';
|
|
27
|
+
export { MessageVideo } from './MessageVideo';
|
|
28
|
+
export { MessageReply } from './components/MessageReply';
|
|
29
|
+
export { ReplyPreview } from './components/ReplyPreview';
|
|
30
|
+
export { useColorScheme } from './hooks/useColorScheme';
|
|
31
|
+
//# sourceMappingURL=index.js.map
|
package/lib/index.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,SAAS,CAAA;AAEhC,cAAc,cAAc,CAAA;AAC5B,cAAc,YAAY,CAAA;AAC1B,OAAO,EAAE,KAAK,EAAE,CAAA;AAChB,cAAc,qBAAqB,CAAA;AACnC,cAAc,SAAS,CAAA;AACvB,cAAc,cAAc,CAAA;AAC5B,cAAc,SAAS,CAAA;AACvB,cAAc,UAAU,CAAA;AACxB,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAC/B,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AACjC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AACjC,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAC3C,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AACrC,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAA;AAC3B,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAC7C,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AAC3D,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AACvD,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAA;AAC7B,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAA;AAC7B,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { TextStyle, StyleProp } from 'react-native';
|
|
3
|
+
export type LinkType = 'url' | 'email' | 'phone' | 'mention' | 'hashtag';
|
|
4
|
+
export interface ParsedLink {
|
|
5
|
+
type: LinkType;
|
|
6
|
+
text: string;
|
|
7
|
+
url: string;
|
|
8
|
+
index: number;
|
|
9
|
+
length: number;
|
|
10
|
+
}
|
|
11
|
+
export interface LinkMatcher {
|
|
12
|
+
type: LinkType;
|
|
13
|
+
pattern: RegExp;
|
|
14
|
+
getLinkUrl?: (text: string) => string;
|
|
15
|
+
getLinkText?: (text: string) => string;
|
|
16
|
+
baseUrl?: string;
|
|
17
|
+
style?: StyleProp<TextStyle>;
|
|
18
|
+
renderLink?: (text: string, url: string, index: number, type: LinkType) => React.ReactNode;
|
|
19
|
+
onPress?: (url: string, type: LinkType) => void;
|
|
20
|
+
}
|
|
21
|
+
interface LinkParserProps {
|
|
22
|
+
text: string;
|
|
23
|
+
matchers?: LinkMatcher[];
|
|
24
|
+
email?: boolean;
|
|
25
|
+
phone?: boolean;
|
|
26
|
+
url?: boolean;
|
|
27
|
+
hashtag?: boolean;
|
|
28
|
+
mention?: boolean;
|
|
29
|
+
hashtagUrl?: string;
|
|
30
|
+
mentionUrl?: string;
|
|
31
|
+
linkStyle?: StyleProp<TextStyle>;
|
|
32
|
+
onPress?: (url: string, type: LinkType) => void;
|
|
33
|
+
stripPrefix?: boolean;
|
|
34
|
+
textStyle?: StyleProp<TextStyle>;
|
|
35
|
+
TextComponent?: React.ComponentType<any>;
|
|
36
|
+
}
|
|
37
|
+
export declare function LinkParser({ text, matchers: customMatchers, email, phone, url, hashtag, mention, hashtagUrl, mentionUrl, linkStyle, onPress, stripPrefix, textStyle, TextComponent, }: LinkParserProps): React.ReactElement;
|
|
38
|
+
export {};
|
|
39
|
+
//# sourceMappingURL=linkParser.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"linkParser.d.ts","sourceRoot":"","sources":["../src/linkParser.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAQ,SAAS,EAAE,SAAS,EAAW,MAAM,cAAc,CAAA;AAElE,MAAM,MAAM,QAAQ,GAAG,KAAK,GAAG,OAAO,GAAG,OAAO,GAAG,SAAS,GAAG,SAAS,CAAA;AAExE,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,QAAQ,CAAA;IACd,IAAI,EAAE,MAAM,CAAA;IACZ,GAAG,EAAE,MAAM,CAAA;IACX,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;CACf;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,QAAQ,CAAA;IACd,OAAO,EAAE,MAAM,CAAA;IACf,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAA;IACrC,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAA;IACtC,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAA;IAC5B,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,KAAK,KAAK,CAAC,SAAS,CAAA;IAC1F,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,KAAK,IAAI,CAAA;CAChD;AAED,UAAU,eAAe;IACvB,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,CAAC,EAAE,WAAW,EAAE,CAAA;IACxB,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,GAAG,CAAC,EAAE,OAAO,CAAA;IACb,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,SAAS,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAA;IAChC,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,KAAK,IAAI,CAAA;IAC/C,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,SAAS,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAA;IAChC,aAAa,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,CAAA;CACzC;AA6FD,wBAAgB,UAAU,CAAC,EACzB,IAAI,EACJ,QAAQ,EAAE,cAAc,EACxB,KAAY,EACZ,KAAY,EACZ,GAAU,EACV,OAAe,EACf,OAAe,EACf,UAAU,EACV,UAAU,EACV,SAAS,EACT,OAAO,EACP,WAAkB,EAClB,SAAS,EACT,aAAoB,GACrB,EAAE,eAAe,GAAG,KAAK,CAAC,YAAY,CA2GtC"}
|
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { Text, Linking } from 'react-native';
|
|
3
|
+
const DEFAULT_MATCHERS = [
|
|
4
|
+
{
|
|
5
|
+
type: 'url',
|
|
6
|
+
pattern: /(?:https?:\/\/(?:www\.)?|www\.)[^\s]+|(?<![A-Za-z0-9_.@])(?![A-Za-z0-9._%+-]*@)[a-zA-Z0-9][a-zA-Z0-9-]*\.(?!@)[a-zA-Z]{2,}(?![A-Za-z0-9._%+-]*@)(?:\/[^\s]*)?/gi,
|
|
7
|
+
getLinkUrl: (text) => {
|
|
8
|
+
if (!/^https?:\/\//i.test(text))
|
|
9
|
+
return `http://${text}`;
|
|
10
|
+
return text;
|
|
11
|
+
},
|
|
12
|
+
},
|
|
13
|
+
{
|
|
14
|
+
type: 'email',
|
|
15
|
+
pattern: /(?<![A-Za-z0-9])([a-zA-Z0-9][a-zA-Z0-9._%+-]*@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,})/gi,
|
|
16
|
+
getLinkUrl: (text) => `mailto:${text}`,
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
type: 'phone',
|
|
20
|
+
pattern: /(?<![A-Za-z0-9_])(?:\+?\d{1,3}[\s.\-]?)?\(?\d{1,4}\)?[\s.\-]?\d{1,4}[\s.\-]?\d{1,9}(?![A-Za-z0-9_]|\.[a-z]{2,4})/gi,
|
|
21
|
+
getLinkUrl: (text) => {
|
|
22
|
+
const cleaned = text.replace(/[\s.()\-]/g, '');
|
|
23
|
+
return `tel:${cleaned}`;
|
|
24
|
+
},
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
type: 'hashtag',
|
|
28
|
+
pattern: /#[\w]+/g,
|
|
29
|
+
getLinkUrl: (text) => text,
|
|
30
|
+
baseUrl: undefined,
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
type: 'mention',
|
|
34
|
+
pattern: /(?<![a-zA-Z0-9._%+-])@[\w-]+/g,
|
|
35
|
+
getLinkUrl: (text) => text,
|
|
36
|
+
baseUrl: undefined,
|
|
37
|
+
},
|
|
38
|
+
];
|
|
39
|
+
function parseLinks(text, matchers) {
|
|
40
|
+
const links = [];
|
|
41
|
+
matchers.forEach(matcher => {
|
|
42
|
+
const matches = text.matchAll(matcher.pattern);
|
|
43
|
+
for (const match of matches)
|
|
44
|
+
if (match.index !== undefined) {
|
|
45
|
+
const matchText = match[0];
|
|
46
|
+
const url = matcher.getLinkUrl
|
|
47
|
+
? matcher.getLinkUrl(matchText)
|
|
48
|
+
: matchText;
|
|
49
|
+
const linkText = matcher.getLinkText
|
|
50
|
+
? matcher.getLinkText(matchText)
|
|
51
|
+
: matchText;
|
|
52
|
+
links.push({
|
|
53
|
+
type: matcher.type,
|
|
54
|
+
text: linkText,
|
|
55
|
+
url,
|
|
56
|
+
index: match.index,
|
|
57
|
+
length: matchText.length,
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
});
|
|
61
|
+
// Sort by index to maintain order
|
|
62
|
+
return links.sort((a, b) => a.index - b.index);
|
|
63
|
+
}
|
|
64
|
+
function removeOverlaps(links) {
|
|
65
|
+
const filtered = [];
|
|
66
|
+
for (const link of links) {
|
|
67
|
+
const hasOverlap = filtered.some(existing => {
|
|
68
|
+
const existingEnd = existing.index + existing.length;
|
|
69
|
+
const linkEnd = link.index + link.length;
|
|
70
|
+
return ((link.index >= existing.index && link.index < existingEnd) ||
|
|
71
|
+
(linkEnd > existing.index && linkEnd <= existingEnd) ||
|
|
72
|
+
(link.index <= existing.index && linkEnd >= existingEnd));
|
|
73
|
+
});
|
|
74
|
+
if (!hasOverlap)
|
|
75
|
+
filtered.push(link);
|
|
76
|
+
}
|
|
77
|
+
return filtered;
|
|
78
|
+
}
|
|
79
|
+
export function LinkParser({ text, matchers: customMatchers, email = true, phone = true, url = true, hashtag = false, mention = false, hashtagUrl, mentionUrl, linkStyle, onPress, stripPrefix = true, textStyle, TextComponent = Text, }) {
|
|
80
|
+
const activeMatchers = [];
|
|
81
|
+
// Add custom matchers first (they take precedence)
|
|
82
|
+
if (customMatchers)
|
|
83
|
+
activeMatchers.push(...customMatchers);
|
|
84
|
+
// Add default matchers based on flags
|
|
85
|
+
if (url && !customMatchers?.some(m => m.type === 'url'))
|
|
86
|
+
activeMatchers.push(DEFAULT_MATCHERS.find(m => m.type === 'url'));
|
|
87
|
+
if (email && !customMatchers?.some(m => m.type === 'email'))
|
|
88
|
+
activeMatchers.push(DEFAULT_MATCHERS.find(m => m.type === 'email'));
|
|
89
|
+
if (phone && !customMatchers?.some(m => m.type === 'phone'))
|
|
90
|
+
activeMatchers.push(DEFAULT_MATCHERS.find(m => m.type === 'phone'));
|
|
91
|
+
if (hashtag && !customMatchers?.some(m => m.type === 'hashtag')) {
|
|
92
|
+
const hashtagMatcher = { ...DEFAULT_MATCHERS.find(m => m.type === 'hashtag') };
|
|
93
|
+
if (hashtagUrl) {
|
|
94
|
+
hashtagMatcher.baseUrl = hashtagUrl;
|
|
95
|
+
const baseUrl = hashtagUrl.endsWith('/') ? hashtagUrl : `${hashtagUrl}/`;
|
|
96
|
+
hashtagMatcher.getLinkUrl = (text) => `${baseUrl}${text.substring(1)}`;
|
|
97
|
+
}
|
|
98
|
+
activeMatchers.push(hashtagMatcher);
|
|
99
|
+
}
|
|
100
|
+
if (mention && !customMatchers?.some(m => m.type === 'mention')) {
|
|
101
|
+
const mentionMatcher = { ...DEFAULT_MATCHERS.find(m => m.type === 'mention') };
|
|
102
|
+
if (mentionUrl) {
|
|
103
|
+
mentionMatcher.baseUrl = mentionUrl;
|
|
104
|
+
const baseUrl = mentionUrl.endsWith('/') ? mentionUrl : `${mentionUrl}/`;
|
|
105
|
+
mentionMatcher.getLinkUrl = (text) => `${baseUrl}${text.substring(1)}`;
|
|
106
|
+
}
|
|
107
|
+
activeMatchers.push(mentionMatcher);
|
|
108
|
+
}
|
|
109
|
+
const links = removeOverlaps(parseLinks(text, activeMatchers));
|
|
110
|
+
if (links.length === 0)
|
|
111
|
+
return <TextComponent style={textStyle}>{text}</TextComponent>;
|
|
112
|
+
const elements = [];
|
|
113
|
+
let lastIndex = 0;
|
|
114
|
+
links.forEach((link, index) => {
|
|
115
|
+
// Add text before link
|
|
116
|
+
if (link.index > lastIndex)
|
|
117
|
+
elements.push(<TextComponent key={`text-${index}`} style={textStyle}>
|
|
118
|
+
{text.substring(lastIndex, link.index)}
|
|
119
|
+
</TextComponent>);
|
|
120
|
+
// Find the matcher for this link
|
|
121
|
+
const matcher = activeMatchers.find(m => m.type === link.type);
|
|
122
|
+
// Handle link rendering
|
|
123
|
+
if (matcher?.renderLink) {
|
|
124
|
+
elements.push(matcher.renderLink(link.text, link.url, index, link.type));
|
|
125
|
+
}
|
|
126
|
+
else {
|
|
127
|
+
const handlePress = () => {
|
|
128
|
+
if (matcher?.onPress)
|
|
129
|
+
matcher.onPress(link.url, link.type);
|
|
130
|
+
else if (onPress)
|
|
131
|
+
onPress(link.url, link.type);
|
|
132
|
+
else
|
|
133
|
+
// Default behavior
|
|
134
|
+
Linking.openURL(link.url).catch(err => {
|
|
135
|
+
console.warn('Failed to open URL:', err);
|
|
136
|
+
});
|
|
137
|
+
};
|
|
138
|
+
let displayText = link.text;
|
|
139
|
+
if (stripPrefix && link.type === 'url')
|
|
140
|
+
displayText = displayText.replace(/^https?:\/\//i, '');
|
|
141
|
+
elements.push(<TextComponent key={`link-${index}`} style={[linkStyle, matcher?.style]} onPress={handlePress}>
|
|
142
|
+
{displayText}
|
|
143
|
+
</TextComponent>);
|
|
144
|
+
}
|
|
145
|
+
lastIndex = link.index + link.length;
|
|
146
|
+
});
|
|
147
|
+
// Add remaining text
|
|
148
|
+
if (lastIndex < text.length)
|
|
149
|
+
elements.push(<TextComponent key='text-end' style={textStyle}>
|
|
150
|
+
{text.substring(lastIndex)}
|
|
151
|
+
</TextComponent>);
|
|
152
|
+
return <TextComponent style={textStyle}>{elements}</TextComponent>;
|
|
153
|
+
}
|
|
154
|
+
//# sourceMappingURL=linkParser.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"linkParser.js","sourceRoot":"","sources":["../src/linkParser.tsx"],"names":[],"mappings":"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"}
|
package/lib/logging.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logging.d.ts","sourceRoot":"","sources":["../src/logging.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,OAAO,GAAI,GAAG,MAAM,OAAO,EAAE,SACc,CAAA;AAExD,eAAO,MAAM,KAAK,GAAI,GAAG,MAAM,OAAO,EAAE,SACa,CAAA"}
|
package/lib/logging.js
ADDED
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
const styleString = (color) => `color: ${color}; font-weight: bold`;
|
|
2
|
+
const headerLog = '%c[react-native-gifted-chat]';
|
|
3
|
+
export const warning = (...args) => console.log(headerLog, styleString('orange'), ...args);
|
|
4
|
+
export const error = (...args) => console.log(headerLog, styleString('red'), ...args);
|
|
5
|
+
//# sourceMappingURL=logging.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logging.js","sourceRoot":"","sources":["../src/logging.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,GAAG,CAAC,KAAa,EAAE,EAAE,CAAC,UAAU,KAAK,qBAAqB,CAAA;AAC3E,MAAM,SAAS,GAAG,8BAA8B,CAAA;AAEhD,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,GAAG,IAAe,EAAE,EAAE,CAC5C,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,WAAW,CAAC,QAAQ,CAAC,EAAE,GAAG,IAAI,CAAC,CAAA;AAExD,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC,GAAG,IAAe,EAAE,EAAE,CAC1C,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,WAAW,CAAC,KAAK,CAAC,EAAE,GAAG,IAAI,CAAC,CAAA"}
|
package/lib/styles.d.ts
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { StyleProp, TextStyle, ViewStyle } from 'react-native';
|
|
2
|
+
declare const _default: {
|
|
3
|
+
fill: {
|
|
4
|
+
flex: number;
|
|
5
|
+
};
|
|
6
|
+
centerItems: {
|
|
7
|
+
justifyContent: "center";
|
|
8
|
+
alignItems: "center";
|
|
9
|
+
};
|
|
10
|
+
};
|
|
11
|
+
export default _default;
|
|
12
|
+
export declare function getColorSchemeStyle<T>(styles: T, baseName: string, colorScheme?: string | null): T[keyof T][];
|
|
13
|
+
export declare function getStyleWithPosition<T>(styles: T, baseName: string, position?: 'left' | 'right' | null): StyleProp<ViewStyle> | StyleProp<TextStyle>;
|
|
14
|
+
//# sourceMappingURL=styles.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../src/styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAc,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;;;;;;;;;;AAE1E,wBAQE;AAEF,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,gBAG9F;AAED,wBAAgB,oBAAoB,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,IAAI,GAM3D,SAAS,CAAC,SAAS,CAAC,GAAG,SAAS,CAAC,SAAS,CAAC,CACtF"}
|
package/lib/styles.js
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { StyleSheet } from 'react-native';
|
|
2
|
+
export default StyleSheet.create({
|
|
3
|
+
fill: {
|
|
4
|
+
flex: 1,
|
|
5
|
+
},
|
|
6
|
+
centerItems: {
|
|
7
|
+
justifyContent: 'center',
|
|
8
|
+
alignItems: 'center',
|
|
9
|
+
},
|
|
10
|
+
});
|
|
11
|
+
export function getColorSchemeStyle(styles, baseName, colorScheme) {
|
|
12
|
+
const key = `${baseName}_${colorScheme}`;
|
|
13
|
+
return [styles[baseName], styles[key]];
|
|
14
|
+
}
|
|
15
|
+
export function getStyleWithPosition(styles, baseName, position) {
|
|
16
|
+
const stylesArray = [styles[baseName]];
|
|
17
|
+
if (position) {
|
|
18
|
+
const key = `${baseName}_${position}`;
|
|
19
|
+
stylesArray.push(styles[key]);
|
|
20
|
+
}
|
|
21
|
+
return StyleSheet.flatten(stylesArray);
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=styles.js.map
|