@kesha-antonov/react-native-chat 4.2.0 → 4.3.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/README.md +252 -47
- package/lib/Actions.d.ts +5 -5
- package/lib/Actions.d.ts.map +1 -1
- package/lib/Actions.js +28 -39
- package/lib/Actions.js.map +1 -1
- package/lib/Avatar.d.ts.map +1 -1
- package/lib/Avatar.js +22 -27
- package/lib/Avatar.js.map +1 -1
- package/lib/Bubble/index.d.ts.map +1 -1
- package/lib/Bubble/index.js +86 -25
- package/lib/Bubble/index.js.map +1 -1
- package/lib/Bubble/styles.d.ts +28 -11
- package/lib/Bubble/styles.d.ts.map +1 -1
- package/lib/Bubble/styles.js +108 -80
- package/lib/Bubble/styles.js.map +1 -1
- package/lib/Bubble/types.d.ts +12 -7
- package/lib/Bubble/types.d.ts.map +1 -1
- package/lib/Chat/ChatKeyboardAvoidingView.d.ts +8 -3
- package/lib/Chat/ChatKeyboardAvoidingView.d.ts.map +1 -1
- package/lib/Chat/ChatKeyboardAvoidingView.js +3 -5
- package/lib/Chat/ChatKeyboardAvoidingView.js.map +1 -1
- package/lib/Chat/index.d.ts.map +1 -1
- package/lib/Chat/index.js +65 -25
- package/lib/Chat/index.js.map +1 -1
- package/lib/Chat/types.d.ts +35 -25
- package/lib/Chat/types.d.ts.map +1 -1
- package/lib/ChatAvatar.d.ts.map +1 -1
- package/lib/ChatAvatar.js +11 -17
- package/lib/ChatAvatar.js.map +1 -1
- package/lib/ChatContext.d.ts +29 -1
- package/lib/ChatContext.d.ts.map +1 -1
- package/lib/ChatContext.js +3 -0
- package/lib/ChatContext.js.map +1 -1
- package/lib/Color.d.ts.map +1 -1
- package/lib/Color.js +6 -2
- package/lib/Color.js.map +1 -1
- package/lib/Composer.d.ts +14 -1
- package/lib/Composer.d.ts.map +1 -1
- package/lib/Composer.js +63 -50
- package/lib/Composer.js.map +1 -1
- package/lib/Day/index.d.ts.map +1 -1
- package/lib/Day/index.js +7 -3
- package/lib/Day/index.js.map +1 -1
- package/lib/Day/styles.d.ts +6 -7
- package/lib/Day/styles.d.ts.map +1 -1
- package/lib/Day/styles.js +11 -13
- package/lib/Day/styles.js.map +1 -1
- package/lib/Icons.d.ts +24 -0
- package/lib/Icons.d.ts.map +1 -0
- package/lib/Icons.js +2 -0
- package/lib/Icons.js.map +1 -0
- package/lib/InputToolbar.d.ts +18 -5
- package/lib/InputToolbar.d.ts.map +1 -1
- package/lib/InputToolbar.js +223 -19
- package/lib/InputToolbar.js.map +1 -1
- package/lib/LoadEarlierMessages.d.ts.map +1 -1
- package/lib/LoadEarlierMessages.js +12 -7
- package/lib/LoadEarlierMessages.js.map +1 -1
- package/lib/Message/index.d.ts.map +1 -1
- package/lib/Message/index.js +10 -9
- package/lib/Message/index.js.map +1 -1
- package/lib/Message/styles.js +2 -2
- package/lib/Message/styles.js.map +1 -1
- package/lib/MessageAudio.d.ts +2 -1
- package/lib/MessageAudio.d.ts.map +1 -1
- package/lib/MessageAudio.js +121 -19
- package/lib/MessageAudio.js.map +1 -1
- package/lib/MessageLocation.d.ts +9 -0
- package/lib/MessageLocation.d.ts.map +1 -0
- package/lib/MessageLocation.js +85 -0
- package/lib/MessageLocation.js.map +1 -0
- package/lib/MessageText.d.ts +12 -1
- package/lib/MessageText.d.ts.map +1 -1
- package/lib/MessageText.js +38 -11
- package/lib/MessageText.js.map +1 -1
- package/lib/MessageVideo.d.ts +2 -1
- package/lib/MessageVideo.d.ts.map +1 -1
- package/lib/MessageVideo.js +156 -18
- package/lib/MessageVideo.js.map +1 -1
- package/lib/MessagesContainer/components/Item/index.d.ts +2 -1
- package/lib/MessagesContainer/components/Item/index.d.ts.map +1 -1
- package/lib/MessagesContainer/components/Item/index.js +23 -1
- package/lib/MessagesContainer/components/Item/index.js.map +1 -1
- package/lib/MessagesContainer/index.d.ts.map +1 -1
- package/lib/MessagesContainer/index.js +24 -11
- package/lib/MessagesContainer/index.js.map +1 -1
- package/lib/MessagesContainer/styles.d.ts +23 -3
- package/lib/MessagesContainer/styles.d.ts.map +1 -1
- package/lib/MessagesContainer/styles.js +25 -5
- package/lib/MessagesContainer/styles.js.map +1 -1
- package/lib/Models.d.ts +72 -0
- package/lib/Models.d.ts.map +1 -1
- package/lib/QuickReplies.d.ts +1 -1
- package/lib/QuickReplies.d.ts.map +1 -1
- package/lib/QuickReplies.js +13 -7
- package/lib/QuickReplies.js.map +1 -1
- package/lib/Reactions/MessageReactions.d.ts.map +1 -1
- package/lib/Reactions/MessageReactions.js +11 -10
- package/lib/Reactions/MessageReactions.js.map +1 -1
- package/lib/Reactions/ReactionPicker.d.ts.map +1 -1
- package/lib/Reactions/ReactionPicker.js +5 -3
- package/lib/Reactions/ReactionPicker.js.map +1 -1
- package/lib/Send.d.ts +2 -2
- package/lib/Send.d.ts.map +1 -1
- package/lib/Send.js +37 -37
- package/lib/Send.js.map +1 -1
- package/lib/SystemMessage.d.ts.map +1 -1
- package/lib/SystemMessage.js +8 -5
- package/lib/SystemMessage.js.map +1 -1
- package/lib/Theme.d.ts +148 -0
- package/lib/Theme.d.ts.map +1 -0
- package/lib/Theme.js +142 -0
- package/lib/Theme.js.map +1 -0
- package/lib/Time.d.ts.map +1 -1
- package/lib/Time.js +7 -5
- package/lib/Time.js.map +1 -1
- package/lib/TypingIndicator/index.d.ts.map +1 -1
- package/lib/TypingIndicator/index.js +4 -1
- package/lib/TypingIndicator/index.js.map +1 -1
- package/lib/TypingIndicator/styles.d.ts +2 -2
- package/lib/TypingIndicator/styles.d.ts.map +1 -1
- package/lib/TypingIndicator/styles.js +4 -5
- package/lib/TypingIndicator/styles.js.map +1 -1
- package/lib/components/AttachmentSheet.d.ts +28 -0
- package/lib/components/AttachmentSheet.d.ts.map +1 -0
- package/lib/components/AttachmentSheet.js +177 -0
- package/lib/components/AttachmentSheet.js.map +1 -0
- package/lib/components/BasicMarkdown.d.ts +12 -0
- package/lib/components/BasicMarkdown.d.ts.map +1 -0
- package/lib/components/BasicMarkdown.js +220 -0
- package/lib/components/BasicMarkdown.js.map +1 -0
- package/lib/components/ContextMenu.d.ts +25 -0
- package/lib/components/ContextMenu.d.ts.map +1 -0
- package/lib/components/ContextMenu.js +122 -0
- package/lib/components/ContextMenu.js.map +1 -0
- package/lib/components/Icon.d.ts +17 -0
- package/lib/components/Icon.d.ts.map +1 -0
- package/lib/components/Icon.js +19 -0
- package/lib/components/Icon.js.map +1 -0
- package/lib/components/LucideIcon.d.ts +10 -0
- package/lib/components/LucideIcon.d.ts.map +1 -0
- package/lib/components/LucideIcon.js +118 -0
- package/lib/components/LucideIcon.js.map +1 -0
- package/lib/components/MarkdownMessageText.d.ts +19 -0
- package/lib/components/MarkdownMessageText.d.ts.map +1 -0
- package/lib/components/MarkdownMessageText.js +35 -0
- package/lib/components/MarkdownMessageText.js.map +1 -0
- package/lib/components/MediaCard.d.ts +19 -0
- package/lib/components/MediaCard.d.ts.map +1 -0
- package/lib/components/MediaCard.js +102 -0
- package/lib/components/MediaCard.js.map +1 -0
- package/lib/components/MediaControls.d.ts +41 -0
- package/lib/components/MediaControls.d.ts.map +1 -0
- package/lib/components/MediaControls.js +523 -0
- package/lib/components/MediaControls.js.map +1 -0
- package/lib/components/MessageReply.d.ts.map +1 -1
- package/lib/components/MessageReply.js +11 -9
- package/lib/components/MessageReply.js.map +1 -1
- package/lib/components/ReplyPreview.d.ts +3 -1
- package/lib/components/ReplyPreview.d.ts.map +1 -1
- package/lib/components/ReplyPreview.js +36 -36
- package/lib/components/ReplyPreview.js.map +1 -1
- package/lib/components/SendIcon.d.ts +13 -0
- package/lib/components/SendIcon.d.ts.map +1 -0
- package/lib/components/SendIcon.js +37 -0
- package/lib/components/SendIcon.js.map +1 -0
- package/lib/components/Ticks.d.ts +25 -0
- package/lib/components/Ticks.d.ts.map +1 -0
- package/lib/components/Ticks.js +102 -0
- package/lib/components/Ticks.js.map +1 -0
- package/lib/components/VideoNoteOverlay.d.ts +25 -0
- package/lib/components/VideoNoteOverlay.d.ts.map +1 -0
- package/lib/components/VideoNoteOverlay.js +151 -0
- package/lib/components/VideoNoteOverlay.js.map +1 -0
- package/lib/components/VideoNoteRecorder.d.ts +19 -0
- package/lib/components/VideoNoteRecorder.d.ts.map +1 -0
- package/lib/components/VideoNoteRecorder.js +634 -0
- package/lib/components/VideoNoteRecorder.js.map +1 -0
- package/lib/components/VideoRecordButton.d.ts +29 -0
- package/lib/components/VideoRecordButton.d.ts.map +1 -0
- package/lib/components/VideoRecordButton.js +117 -0
- package/lib/components/VideoRecordButton.js.map +1 -0
- package/lib/components/VoiceMessageInput.d.ts +33 -0
- package/lib/components/VoiceMessageInput.d.ts.map +1 -0
- package/lib/components/VoiceMessageInput.js +396 -0
- package/lib/components/VoiceMessageInput.js.map +1 -0
- package/lib/components/WaveformPlayer.d.ts +19 -0
- package/lib/components/WaveformPlayer.d.ts.map +1 -0
- package/lib/components/WaveformPlayer.js +367 -0
- package/lib/components/WaveformPlayer.js.map +1 -0
- package/lib/components/mediaPalette.d.ts +23 -0
- package/lib/components/mediaPalette.d.ts.map +1 -0
- package/lib/components/mediaPalette.js +16 -0
- package/lib/components/mediaPalette.js.map +1 -0
- package/lib/components/mediaPlayback.d.ts +22 -0
- package/lib/components/mediaPlayback.d.ts.map +1 -0
- package/lib/components/mediaPlayback.js +34 -0
- package/lib/components/mediaPlayback.js.map +1 -0
- package/lib/hooks/useColorScheme.d.ts +9 -2
- package/lib/hooks/useColorScheme.d.ts.map +1 -1
- package/lib/hooks/useColorScheme.js +9 -3
- package/lib/hooks/useColorScheme.js.map +1 -1
- package/lib/hooks/useIcons.d.ts +4 -0
- package/lib/hooks/useIcons.d.ts.map +1 -0
- package/lib/hooks/useIcons.js +8 -0
- package/lib/hooks/useIcons.js.map +1 -0
- package/lib/hooks/useKeyboardVerticalOffset.d.ts +17 -8
- package/lib/hooks/useKeyboardVerticalOffset.d.ts.map +1 -1
- package/lib/hooks/useKeyboardVerticalOffset.js +29 -8
- package/lib/hooks/useKeyboardVerticalOffset.js.map +1 -1
- package/lib/hooks/useLabels.d.ts +4 -0
- package/lib/hooks/useLabels.d.ts.map +1 -0
- package/lib/hooks/useLabels.js +8 -0
- package/lib/hooks/useLabels.js.map +1 -0
- package/lib/hooks/useTheme.d.ts +21 -0
- package/lib/hooks/useTheme.d.ts.map +1 -0
- package/lib/hooks/useTheme.js +32 -0
- package/lib/hooks/useTheme.js.map +1 -0
- package/lib/i18n.d.ts +59 -0
- package/lib/i18n.d.ts.map +1 -0
- package/lib/i18n.js +122 -0
- package/lib/i18n.js.map +1 -0
- package/lib/index.d.ts +17 -0
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +17 -0
- package/lib/index.js.map +1 -1
- package/lib/types.d.ts +2 -1
- package/lib/types.d.ts.map +1 -1
- package/package.json +99 -44
- package/lib/MessageReply.d.ts +0 -15
- package/lib/MessageReply.d.ts.map +0 -1
- package/lib/MessageReply.js +0 -102
- package/lib/MessageReply.js.map +0 -1
- package/lib/ReplyPreview.d.ts +0 -14
- package/lib/ReplyPreview.d.ts.map +0 -1
- package/lib/ReplyPreview.js +0 -94
- package/lib/ReplyPreview.js.map +0 -1
package/lib/Models.d.ts
CHANGED
|
@@ -1,5 +1,15 @@
|
|
|
1
1
|
import { StyleProp, ViewStyle } from 'react-native';
|
|
2
|
+
import { IconRenderer } from './Icons';
|
|
2
3
|
export type Omit<T, K> = Pick<T, Exclude<keyof T, K>>;
|
|
4
|
+
/** An action shown in the message long-press context menu (Telegram style). */
|
|
5
|
+
export interface MessageMenuItem {
|
|
6
|
+
label: string;
|
|
7
|
+
/** Optional leading icon, e.g. a lucide-react-native component. */
|
|
8
|
+
icon?: IconRenderer;
|
|
9
|
+
onPress: () => void;
|
|
10
|
+
/** Render the label in the destructive (error) color. */
|
|
11
|
+
destructive?: boolean;
|
|
12
|
+
}
|
|
3
13
|
export interface LeftRightStyle<T> {
|
|
4
14
|
left?: StyleProp<T>;
|
|
5
15
|
right?: StyleProp<T>;
|
|
@@ -35,7 +45,15 @@ export interface IMessage {
|
|
|
35
45
|
user: User;
|
|
36
46
|
image?: string;
|
|
37
47
|
video?: string;
|
|
48
|
+
/** Render `video` as a Telegram-style round video note (circular, autoplay/muted) instead of a rectangular player. */
|
|
49
|
+
videoNote?: boolean;
|
|
38
50
|
audio?: string;
|
|
51
|
+
/**
|
|
52
|
+
* Length of `audio` / `video` in seconds. Set by the built-in recorders and
|
|
53
|
+
* used to label a voice note before its file has been decoded, so a bubble can
|
|
54
|
+
* render its duration without downloading the whole clip first.
|
|
55
|
+
*/
|
|
56
|
+
duration?: number;
|
|
39
57
|
system?: boolean;
|
|
40
58
|
sent?: boolean;
|
|
41
59
|
received?: boolean;
|
|
@@ -53,15 +71,69 @@ export interface IMessage {
|
|
|
53
71
|
export type IChatMessage = IMessage;
|
|
54
72
|
export interface MessageVideoProps<TMessage extends IMessage> {
|
|
55
73
|
currentMessage: TMessage;
|
|
74
|
+
position?: 'left' | 'right';
|
|
56
75
|
containerStyle?: StyleProp<ViewStyle>;
|
|
57
76
|
videoStyle?: StyleProp<ViewStyle>;
|
|
58
77
|
videoProps?: object;
|
|
59
78
|
}
|
|
60
79
|
export interface MessageAudioProps<TMessage extends IMessage> {
|
|
61
80
|
currentMessage: TMessage;
|
|
81
|
+
position?: 'left' | 'right';
|
|
62
82
|
containerStyle?: StyleProp<ViewStyle>;
|
|
63
83
|
audioStyle?: StyleProp<ViewStyle>;
|
|
64
84
|
audioProps?: object;
|
|
65
85
|
}
|
|
86
|
+
export interface MessageLocationProps<TMessage extends IMessage> {
|
|
87
|
+
currentMessage: TMessage;
|
|
88
|
+
position?: 'left' | 'right';
|
|
89
|
+
containerStyle?: StyleProp<ViewStyle>;
|
|
90
|
+
locationStyle?: StyleProp<ViewStyle>;
|
|
91
|
+
/** Override the default behavior (opening the system maps app) when tapped. */
|
|
92
|
+
onPress?: (location: {
|
|
93
|
+
latitude: number;
|
|
94
|
+
longitude: number;
|
|
95
|
+
}) => void;
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Telegram-style hold-to-record voice messages. Requires the optional
|
|
99
|
+
* `expo-audio` peer dependency; when it is absent the mic button is hidden.
|
|
100
|
+
*/
|
|
101
|
+
export interface AudioRecordingProps {
|
|
102
|
+
isEnabled?: boolean;
|
|
103
|
+
/** Minimum recording length (ms) below which the take is discarded. Default 800. */
|
|
104
|
+
minDurationMs?: number;
|
|
105
|
+
/**
|
|
106
|
+
* Maximum recording length (ms); the take is sent automatically when reached.
|
|
107
|
+
* Matters most for a locked recording, which otherwise runs until the user
|
|
108
|
+
* sends it. Default 600000 (10 minutes).
|
|
109
|
+
*/
|
|
110
|
+
maxDurationMs?: number;
|
|
111
|
+
/**
|
|
112
|
+
* Called when the microphone permission is refused. iOS never re-prompts, so
|
|
113
|
+
* this is the hook for pointing the user at Settings - without it a denied
|
|
114
|
+
* permission leaves the mic button silently dead.
|
|
115
|
+
*/
|
|
116
|
+
onPermissionDenied?: () => void;
|
|
117
|
+
/** Called when a take is dropped for being shorter than `minDurationMs`. */
|
|
118
|
+
onTooShort?: () => void;
|
|
119
|
+
onError?: (error: unknown) => void;
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* Record-and-send video messages from the camera. Requires the optional
|
|
123
|
+
* `expo-image-picker` peer dependency; when it is absent the button is hidden.
|
|
124
|
+
*/
|
|
125
|
+
export interface VideoRecordingProps {
|
|
126
|
+
isEnabled?: boolean;
|
|
127
|
+
/** Max video length in seconds. Default 60. */
|
|
128
|
+
maxDuration?: number;
|
|
129
|
+
/** Minimum video length (ms) below which the take is discarded. Default 800. */
|
|
130
|
+
minDurationMs?: number;
|
|
131
|
+
/**
|
|
132
|
+
* Called when the camera (or microphone) permission is refused, so the app can
|
|
133
|
+
* point the user at Settings instead of leaving a dead button.
|
|
134
|
+
*/
|
|
135
|
+
onPermissionDenied?: () => void;
|
|
136
|
+
onError?: (error: unknown) => void;
|
|
137
|
+
}
|
|
66
138
|
export {};
|
|
67
139
|
//# sourceMappingURL=Models.d.ts.map
|
package/lib/Models.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Models.d.ts","sourceRoot":"","sources":["../src/Models.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;
|
|
1
|
+
{"version":3,"file":"Models.d.ts","sourceRoot":"","sources":["../src/Models.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AAEtC,MAAM,MAAM,IAAI,CAAC,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;AAErD,+EAA+E;AAC/E,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAA;IACb,mEAAmE;IACnE,IAAI,CAAC,EAAE,YAAY,CAAA;IACnB,OAAO,EAAE,MAAM,IAAI,CAAA;IACnB,yDAAyD;IACzD,WAAW,CAAC,EAAE,OAAO,CAAA;CACtB;AAED,MAAM,WAAW,cAAc,CAAC,CAAC;IAC/B,IAAI,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAA;IACnB,KAAK,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAA;CACrB;AAED,KAAK,cAAc,GAAG,CAAC,CAAC,EAAE,OAAO,KAAK,KAAK,CAAC,SAAS,CAAA;AAErD,MAAM,WAAW,IAAI;IACnB,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;IACpB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,cAAc,CAAA;CAC1C;AAED,MAAM,WAAW,KAAK;IACpB,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;IACb,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;CAC5B;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,OAAO,GAAG,UAAU,CAAA;IAC1B,MAAM,EAAE,KAAK,EAAE,CAAA;IACf,MAAM,CAAC,EAAE,OAAO,CAAA;CACjB;AAED,MAAM,WAAW,YAAa,SAAQ,IAAI,CAAC,QAAQ,EAAE,KAAK,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,OAAO,CAAC;CAAG;AAEpG,MAAM,WAAW,eAAe;IAC9B,sCAAsC;IACtC,KAAK,EAAE,MAAM,CAAA;IACb,mDAAmD;IACnD,OAAO,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAA;CAC7B;AAED,MAAM,WAAW,QAAQ;IACvB,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;IACpB,IAAI,EAAE,MAAM,CAAA;IACZ,SAAS,EAAE,IAAI,GAAG,MAAM,CAAA;IACxB,IAAI,EAAE,IAAI,CAAA;IACV,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,sHAAsH;IACtH,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,wFAAwF;IACxF,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,YAAY,CAAC,EAAE,YAAY,CAAA;IAC3B,YAAY,CAAC,EAAE,YAAY,CAAA;IAC3B,SAAS,CAAC,EAAE,eAAe,EAAE,CAAA;IAC7B,QAAQ,CAAC,EAAE;QACT,QAAQ,EAAE,MAAM,CAAA;QAChB,SAAS,EAAE,MAAM,CAAA;KAClB,CAAA;CACF;AAED,MAAM,MAAM,YAAY,GAAG,QAAQ,CAAA;AAEnC,MAAM,WAAW,iBAAiB,CAAC,QAAQ,SAAS,QAAQ;IAC1D,cAAc,EAAE,QAAQ,CAAA;IACxB,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAA;IAC3B,cAAc,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAA;IACrC,UAAU,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAA;IACjC,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB;AAED,MAAM,WAAW,iBAAiB,CAAC,QAAQ,SAAS,QAAQ;IAC1D,cAAc,EAAE,QAAQ,CAAA;IACxB,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAA;IAC3B,cAAc,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAA;IACrC,UAAU,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAA;IACjC,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB;AAED,MAAM,WAAW,oBAAoB,CAAC,QAAQ,SAAS,QAAQ;IAC7D,cAAc,EAAE,QAAQ,CAAA;IACxB,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAA;IAC3B,cAAc,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAA;IACrC,aAAa,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAA;IACpC,+EAA+E;IAC/E,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAA;CACtE;AAED;;;GAGG;AACH,MAAM,WAAW,mBAAmB;IAClC,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,oFAAoF;IACpF,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB;;;;OAIG;IACH,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB;;;;OAIG;IACH,kBAAkB,CAAC,EAAE,MAAM,IAAI,CAAA;IAC/B,4EAA4E;IAC5E,UAAU,CAAC,EAAE,MAAM,IAAI,CAAA;IACvB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAA;CACnC;AAED;;;GAGG;AACH,MAAM,WAAW,mBAAmB;IAClC,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,+CAA+C;IAC/C,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,gFAAgF;IAChF,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB;;;OAGG;IACH,kBAAkB,CAAC,EAAE,MAAM,IAAI,CAAA;IAC/B,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAA;CACnC"}
|
package/lib/QuickReplies.d.ts
CHANGED
|
@@ -12,5 +12,5 @@ export interface QuickRepliesProps<TMessage extends IMessage = IMessage> {
|
|
|
12
12
|
onQuickReply?(reply: Reply[]): void;
|
|
13
13
|
renderQuickReplySend?(): React.ReactNode;
|
|
14
14
|
}
|
|
15
|
-
export declare function QuickReplies({ currentMessage, nextMessage, color, quickReplyStyle, quickReplyTextStyle, quickReplyContainerStyle, onQuickReply, sendText, renderQuickReplySend, }: QuickRepliesProps<IMessage>): React.JSX.Element | null;
|
|
15
|
+
export declare function QuickReplies({ currentMessage, nextMessage, color: colorProp, quickReplyStyle, quickReplyTextStyle, quickReplyContainerStyle, onQuickReply, sendText, renderQuickReplySend, }: QuickRepliesProps<IMessage>): React.JSX.Element | null;
|
|
16
16
|
//# sourceMappingURL=QuickReplies.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"QuickReplies.d.ts","sourceRoot":"","sources":["../src/QuickReplies.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAyC,MAAM,OAAO,CAAA;AAC7D,OAAO,EAGL,SAAS,EACT,SAAS,EACT,SAAS,EACH,MAAM,cAAc,CAAA;
|
|
1
|
+
{"version":3,"file":"QuickReplies.d.ts","sourceRoot":"","sources":["../src/QuickReplies.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAyC,MAAM,OAAO,CAAA;AAC7D,OAAO,EAGL,SAAS,EACT,SAAS,EACT,SAAS,EACH,MAAM,cAAc,CAAA;AAK5B,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,UAAU,CAAA;AAgC1C,MAAM,WAAW,iBAAiB,CAAC,QAAQ,SAAS,QAAQ,GAAG,QAAQ;IACrE,WAAW,CAAC,EAAE,QAAQ,CAAA;IACtB,cAAc,EAAE,QAAQ,CAAA;IACxB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,eAAe,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAA;IACtC,mBAAmB,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAA;IAC1C,wBAAwB,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAA;IAC/C,YAAY,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,IAAI,CAAA;IACnC,oBAAoB,CAAC,IAAI,KAAK,CAAC,SAAS,CAAA;CACzC;AAQD,wBAAgB,YAAY,CAAE,EAC5B,cAAc,EACd,WAAW,EACX,KAAK,EAAE,SAAS,EAChB,eAAe,EACf,mBAAmB,EACnB,wBAAwB,EACxB,YAAY,EACZ,QAAQ,EACR,oBAAoB,GACrB,EAAE,iBAAiB,CAAC,QAAQ,CAAC,4BAmH7B"}
|
package/lib/QuickReplies.js
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import React, { useState, useMemo, useCallback } from 'react';
|
|
2
2
|
import { StyleSheet, View, Text } from 'react-native';
|
|
3
|
-
import { Color } from './Color';
|
|
4
3
|
import { TouchableOpacity } from './components/TouchableOpacity';
|
|
4
|
+
import { useLabels } from './hooks/useLabels';
|
|
5
|
+
import { useTheme, useThemedStyles } from './hooks/useTheme';
|
|
5
6
|
import { warning } from './logging';
|
|
6
7
|
import stylesCommon from './styles';
|
|
7
|
-
const
|
|
8
|
+
const createStyles = (theme) => StyleSheet.create({
|
|
8
9
|
container: {
|
|
9
10
|
flexDirection: 'row',
|
|
10
11
|
flexWrap: 'wrap',
|
|
@@ -26,14 +27,19 @@ const styles = StyleSheet.create({
|
|
|
26
27
|
borderWidth: 0,
|
|
27
28
|
},
|
|
28
29
|
sendLinkText: {
|
|
29
|
-
color:
|
|
30
|
+
color: theme.colors.accent,
|
|
30
31
|
fontWeight: '600',
|
|
31
32
|
fontSize: 17,
|
|
32
33
|
},
|
|
33
34
|
});
|
|
34
35
|
const sameReply = (currentReply) => (reply) => currentReply.value === reply.value;
|
|
35
36
|
const diffReply = (currentReply) => (reply) => currentReply.value !== reply.value;
|
|
36
|
-
export function QuickReplies({ currentMessage, nextMessage, color
|
|
37
|
+
export function QuickReplies({ currentMessage, nextMessage, color: colorProp, quickReplyStyle, quickReplyTextStyle, quickReplyContainerStyle, onQuickReply, sendText, renderQuickReplySend, }) {
|
|
38
|
+
const theme = useTheme();
|
|
39
|
+
const labels = useLabels();
|
|
40
|
+
const styles = useThemedStyles(createStyles);
|
|
41
|
+
const color = colorProp ?? theme.colors.accent;
|
|
42
|
+
const sendLabel = sendText ?? labels.send;
|
|
37
43
|
const { type } = currentMessage.quickReplies;
|
|
38
44
|
const [replies, setReplies] = useState([]);
|
|
39
45
|
const shouldComponentDisplay = useMemo(() => {
|
|
@@ -77,9 +83,9 @@ export function QuickReplies({ currentMessage, nextMessage, color = Color.peterR
|
|
|
77
83
|
if (!replies.length)
|
|
78
84
|
return null;
|
|
79
85
|
return (<TouchableOpacity style={[stylesCommon.centerItems, styles.quickReply, styles.sendLink]} onPress={handleSend(replies)}>
|
|
80
|
-
{renderQuickReplySend?.() || (<Text style={styles.sendLinkText}>{
|
|
86
|
+
{renderQuickReplySend?.() || (<Text style={styles.sendLinkText}>{sendLabel}</Text>)}
|
|
81
87
|
</TouchableOpacity>);
|
|
82
|
-
}, [replies, handleSend, renderQuickReplySend,
|
|
88
|
+
}, [replies, handleSend, renderQuickReplySend, sendLabel, styles]);
|
|
83
89
|
if (!shouldComponentDisplay)
|
|
84
90
|
return null;
|
|
85
91
|
return (<View style={[styles.container, quickReplyContainerStyle]}>
|
|
@@ -94,7 +100,7 @@ export function QuickReplies({ currentMessage, nextMessage, color = Color.peterR
|
|
|
94
100
|
]} key={`${reply.value}-${index}`}>
|
|
95
101
|
<Text numberOfLines={10} ellipsizeMode='tail' style={[
|
|
96
102
|
styles.quickReplyText,
|
|
97
|
-
{ color: selected ?
|
|
103
|
+
{ color: selected ? '#fff' : color },
|
|
98
104
|
quickReplyTextStyle,
|
|
99
105
|
]}>
|
|
100
106
|
{reply.title}
|
package/lib/QuickReplies.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"QuickReplies.js","sourceRoot":"","sources":["../src/QuickReplies.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,OAAO,CAAA;AAC7D,OAAO,EACL,UAAU,EACV,IAAI,EAIJ,IAAI,EAAE,MAAM,cAAc,CAAA;AAC5B,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"QuickReplies.js","sourceRoot":"","sources":["../src/QuickReplies.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MessageReactions.d.ts","sourceRoot":"","sources":["../../src/Reactions/MessageReactions.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAIzB,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAA;
|
|
1
|
+
{"version":3,"file":"MessageReactions.d.ts","sourceRoot":"","sources":["../../src/Reactions/MessageReactions.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAIzB,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAA;AAEpC,OAAO,EAAE,4BAA4B,EAAE,MAAM,SAAS,CAAA;AAEtD,eAAO,MAAM,gBAAgB,GAAI,QAAQ,SAAS,QAAQ,GAAG,QAAQ,EACnE,OAAO,4BAA4B,CAAC,QAAQ,CAAC,KAC5C,KAAK,CAAC,YAAY,GAAG,IA0DvB,CAAA"}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { Pressable, StyleSheet, Text, View } from 'react-native';
|
|
3
|
-
import {
|
|
3
|
+
import { useThemedStyles } from '../hooks/useTheme';
|
|
4
4
|
export const MessageReactions = (props) => {
|
|
5
5
|
const { reactions, currentUserId, position, onReactionPress, containerStyle, reactionStyle, reactionActiveStyle, reactionTextStyle, reactionCountStyle, } = props;
|
|
6
|
+
const styles = useThemedStyles(createStyles);
|
|
6
7
|
if (!reactions || reactions.length === 0)
|
|
7
8
|
return null;
|
|
8
9
|
return (<View style={[
|
|
@@ -31,7 +32,7 @@ export const MessageReactions = (props) => {
|
|
|
31
32
|
})}
|
|
32
33
|
</View>);
|
|
33
34
|
};
|
|
34
|
-
const
|
|
35
|
+
const createStyles = (theme) => StyleSheet.create({
|
|
35
36
|
container: {
|
|
36
37
|
flexDirection: 'row',
|
|
37
38
|
flexWrap: 'wrap',
|
|
@@ -49,18 +50,18 @@ const styles = StyleSheet.create({
|
|
|
49
50
|
pill: {
|
|
50
51
|
flexDirection: 'row',
|
|
51
52
|
alignItems: 'center',
|
|
52
|
-
borderRadius:
|
|
53
|
-
paddingHorizontal:
|
|
54
|
-
paddingVertical:
|
|
53
|
+
borderRadius: theme.radii.reaction,
|
|
54
|
+
paddingHorizontal: 8,
|
|
55
|
+
paddingVertical: 4,
|
|
55
56
|
borderWidth: 1,
|
|
56
57
|
},
|
|
57
58
|
pillInactive: {
|
|
58
|
-
backgroundColor:
|
|
59
|
+
backgroundColor: theme.colors.reactionBackground,
|
|
59
60
|
borderColor: 'transparent',
|
|
60
61
|
},
|
|
61
62
|
pillActive: {
|
|
62
|
-
backgroundColor:
|
|
63
|
-
borderColor:
|
|
63
|
+
backgroundColor: theme.colors.reactionActiveBackground,
|
|
64
|
+
borderColor: theme.colors.accent,
|
|
64
65
|
},
|
|
65
66
|
pillPressed: {
|
|
66
67
|
opacity: 0.7,
|
|
@@ -72,11 +73,11 @@ const styles = StyleSheet.create({
|
|
|
72
73
|
count: {
|
|
73
74
|
fontSize: 12,
|
|
74
75
|
marginLeft: 3,
|
|
75
|
-
color:
|
|
76
|
+
color: theme.colors.incomingText,
|
|
76
77
|
lineHeight: 20,
|
|
77
78
|
},
|
|
78
79
|
countActive: {
|
|
79
|
-
color:
|
|
80
|
+
color: theme.colors.accent,
|
|
80
81
|
fontWeight: '600',
|
|
81
82
|
},
|
|
82
83
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MessageReactions.js","sourceRoot":"","sources":["../../src/Reactions/MessageReactions.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,cAAc,CAAA;AAEhE,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"MessageReactions.js","sourceRoot":"","sources":["../../src/Reactions/MessageReactions.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,cAAc,CAAA;AAEhE,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AAKnD,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAC9B,KAA6C,EAClB,EAAE;IAC7B,MAAM,EACJ,SAAS,EACT,aAAa,EACb,QAAQ,EACR,eAAe,EACf,cAAc,EACd,aAAa,EACb,mBAAmB,EACnB,iBAAiB,EACjB,kBAAkB,GACnB,GAAG,KAAK,CAAA;IAET,MAAM,MAAM,GAAG,eAAe,CAAC,YAAY,CAAC,CAAA;IAE5C,IAAI,CAAC,SAAS,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC;QACtC,OAAO,IAAI,CAAA;IAEb,OAAO,CACL,CAAC,IAAI,CACH,KAAK,CAAC,CAAC;YACL,MAAM,CAAC,SAAS;YAChB,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,MAAM,CAAC,aAAa;YACnE,cAAc;SACf,CAAC,CAEF;MAAA,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE;YACxB,MAAM,QAAQ,GAAG,aAAa,IAAI,IAAI,IAAI,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAA;YAClF,MAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAA;YAErC,OAAO,CACL,CAAC,SAAS,CACR,GAAG,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CACpB,OAAO,CAAC,CAAC,GAAG,EAAE,CAAC,eAAe,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CACjD,KAAK,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;oBACtB,MAAM,CAAC,IAAI;oBACX,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY;oBAClD,QAAQ,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,aAAa;oBAC9C,OAAO,IAAI,MAAM,CAAC,WAAW;iBAC9B,CAAC,CAEF;YAAA,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,IAAI,CACtE;YAAA,CAAC,KAAK,GAAG,CAAC,IAAI,CACZ,CAAC,IAAI,CACH,KAAK,CAAC,CAAC;wBACL,MAAM,CAAC,KAAK;wBACZ,QAAQ,IAAI,MAAM,CAAC,WAAW;wBAC9B,kBAAkB;qBACnB,CAAC,CAEF;gBAAA,CAAC,KAAK,CACR;cAAA,EAAE,IAAI,CAAC,CACR,CACH;UAAA,EAAE,SAAS,CAAC,CACb,CAAA;QACH,CAAC,CAAC,CACJ;IAAA,EAAE,IAAI,CAAC,CACR,CAAA;AACH,CAAC,CAAA;AAED,MAAM,YAAY,GAAG,CAAC,KAAgB,EAAE,EAAE,CACxC,UAAU,CAAC,MAAM,CAAC;IAChB,SAAS,EAAE;QACT,aAAa,EAAE,KAAK;QACpB,QAAQ,EAAE,MAAM;QAChB,SAAS,EAAE,CAAC;QACZ,GAAG,EAAE,CAAC;KACP;IACD,aAAa,EAAE;QACb,cAAc,EAAE,YAAY;QAC5B,WAAW,EAAE,CAAC;KACf;IACD,cAAc,EAAE;QACd,cAAc,EAAE,UAAU;QAC1B,YAAY,EAAE,CAAC;KAChB;IACD,IAAI,EAAE;QACJ,aAAa,EAAE,KAAK;QACpB,UAAU,EAAE,QAAQ;QACpB,YAAY,EAAE,KAAK,CAAC,KAAK,CAAC,QAAQ;QAClC,iBAAiB,EAAE,CAAC;QACpB,eAAe,EAAE,CAAC;QAClB,WAAW,EAAE,CAAC;KACf;IACD,YAAY,EAAE;QACZ,eAAe,EAAE,KAAK,CAAC,MAAM,CAAC,kBAAkB;QAChD,WAAW,EAAE,aAAa;KAC3B;IACD,UAAU,EAAE;QACV,eAAe,EAAE,KAAK,CAAC,MAAM,CAAC,wBAAwB;QACtD,WAAW,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM;KACjC;IACD,WAAW,EAAE;QACX,OAAO,EAAE,GAAG;KACb;IACD,KAAK,EAAE;QACL,QAAQ,EAAE,EAAE;QACZ,UAAU,EAAE,EAAE;KACf;IACD,KAAK,EAAE;QACL,QAAQ,EAAE,EAAE;QACZ,UAAU,EAAE,CAAC;QACb,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,YAAY;QAChC,UAAU,EAAE,EAAE;KACf;IACD,WAAW,EAAE;QACX,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM;QAC1B,UAAU,EAAE,KAAK;KAClB;CACF,CAAC,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ReactionPicker.d.ts","sourceRoot":"","sources":["../../src/Reactions/ReactionPicker.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAsB,MAAM,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"ReactionPicker.d.ts","sourceRoot":"","sources":["../../src/Reactions/ReactionPicker.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAsB,MAAM,OAAO,CAAA;AAW1C,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAA;AAEpC,OAAO,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAA;AAO7C;;;;GAIG;AACH,eAAO,MAAM,cAAc,GAAI,QAAQ,SAAS,QAAQ,GAAG,QAAQ,EACjE,OAAO,mBAAmB,CAAC,QAAQ,CAAC,KACnC,KAAK,CAAC,YAAY,GAAG,IAiFvB,CAAA"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import React, { useCallback } from 'react';
|
|
2
2
|
import { Dimensions, Modal, Pressable, StyleSheet, Text, View, } from 'react-native';
|
|
3
|
+
import { useThemedStyles } from '../hooks/useTheme';
|
|
3
4
|
const PICKER_HEIGHT = 54;
|
|
4
5
|
const EMOJI_BUTTON_SIZE = 46;
|
|
5
6
|
const PICKER_PADDING_H = 8;
|
|
@@ -11,6 +12,7 @@ const PICKER_VERTICAL_OFFSET = 8;
|
|
|
11
12
|
*/
|
|
12
13
|
export const ReactionPicker = (props) => {
|
|
13
14
|
const { visible, emojis, onSelect, onDismiss, position, pageX = 0, pageY = 0, bubbleWidth = 0, bubbleHeight = 0, pickerContainerStyle, pickerEmojiStyle, } = props;
|
|
15
|
+
const styles = useThemedStyles(createStyles);
|
|
14
16
|
const { width: screenWidth } = Dimensions.get('window');
|
|
15
17
|
const pickerWidth = emojis.length * EMOJI_BUTTON_SIZE + PICKER_PADDING_H * 2;
|
|
16
18
|
const showAbove = pageY >= PICKER_HEIGHT + PICKER_VERTICAL_OFFSET;
|
|
@@ -50,13 +52,13 @@ export const ReactionPicker = (props) => {
|
|
|
50
52
|
</View>
|
|
51
53
|
</Modal>);
|
|
52
54
|
};
|
|
53
|
-
const
|
|
55
|
+
const createStyles = (theme) => StyleSheet.create({
|
|
54
56
|
picker: {
|
|
55
57
|
position: 'absolute',
|
|
56
58
|
height: PICKER_HEIGHT,
|
|
57
59
|
flexDirection: 'row',
|
|
58
60
|
alignItems: 'center',
|
|
59
|
-
backgroundColor:
|
|
61
|
+
backgroundColor: theme.colors.surface,
|
|
60
62
|
borderRadius: PICKER_HEIGHT / 2,
|
|
61
63
|
paddingHorizontal: PICKER_PADDING_H,
|
|
62
64
|
shadowColor: '#000',
|
|
@@ -73,7 +75,7 @@ const styles = StyleSheet.create({
|
|
|
73
75
|
borderRadius: EMOJI_BUTTON_SIZE / 2,
|
|
74
76
|
},
|
|
75
77
|
emojiButtonPressed: {
|
|
76
|
-
backgroundColor:
|
|
78
|
+
backgroundColor: theme.colors.reactionBackground,
|
|
77
79
|
transform: [{ scale: 1.2 }],
|
|
78
80
|
},
|
|
79
81
|
emoji: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ReactionPicker.js","sourceRoot":"","sources":["../../src/Reactions/ReactionPicker.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,WAAW,EAAE,MAAM,OAAO,CAAA;AAC1C,OAAO,EACL,UAAU,EACV,KAAK,EACL,SAAS,EACT,UAAU,EACV,IAAI,EACJ,IAAI,GACL,MAAM,cAAc,CAAA;
|
|
1
|
+
{"version":3,"file":"ReactionPicker.js","sourceRoot":"","sources":["../../src/Reactions/ReactionPicker.tsx"],"names":[],"mappings":"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"}
|
package/lib/Send.d.ts
CHANGED
|
@@ -8,12 +8,12 @@ export interface SendProps<TMessage extends IMessage> {
|
|
|
8
8
|
containerStyle?: StyleProp<ViewStyle>;
|
|
9
9
|
textStyle?: StyleProp<TextStyle>;
|
|
10
10
|
children?: React.ReactNode;
|
|
11
|
-
/**
|
|
11
|
+
/** Kept for API compatibility; the send button is always visible now. */
|
|
12
12
|
isSendButtonAlwaysVisible?: boolean;
|
|
13
13
|
/** Text is optional, allow sending empty messages (useful for media-only messages) */
|
|
14
14
|
isTextOptional?: boolean;
|
|
15
15
|
sendButtonProps?: Partial<TouchableOpacityProps>;
|
|
16
16
|
onSend?(messages: Partial<TMessage> | Partial<TMessage>[], shouldResetInputToolbar: boolean): void;
|
|
17
17
|
}
|
|
18
|
-
export declare const Send: <TMessage extends IMessage = IMessage>({ text, containerStyle, children,
|
|
18
|
+
export declare const Send: <TMessage extends IMessage = IMessage>({ text, containerStyle, children, isTextOptional, sendButtonProps, onSend, }: SendProps<TMessage>) => React.JSX.Element;
|
|
19
19
|
//# sourceMappingURL=Send.d.ts.map
|
package/lib/Send.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Send.d.ts","sourceRoot":"","sources":["../src/Send.tsx"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"Send.d.ts","sourceRoot":"","sources":["../src/Send.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA+B,MAAM,OAAO,CAAA;AACnD,OAAO,EAEL,SAAS,EACT,SAAS,EACT,SAAS,EACH,MAAM,cAAc,CAAA;AAI5B,OAAO,EAAoB,qBAAqB,EAAE,MAAM,+BAA+B,CAAA;AAGvF,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAA;AAGnC,MAAM,WAAW,SAAS,CAAC,QAAQ,SAAS,QAAQ;IAClD,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,cAAc,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAA;IACrC,SAAS,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAA;IAChC,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC1B,yEAAyE;IACzE,yBAAyB,CAAC,EAAE,OAAO,CAAA;IACnC,sFAAsF;IACtF,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,eAAe,CAAC,EAAE,OAAO,CAAC,qBAAqB,CAAC,CAAA;IAChD,MAAM,CAAC,CACL,QAAQ,EAAE,OAAO,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,EAAE,EACjD,uBAAuB,EAAE,OAAO,GAC/B,IAAI,CAAA;CACR;AAED,eAAO,MAAM,IAAI,GAAI,QAAQ,SAAS,QAAQ,GAAG,QAAQ,EAAE,8EAOxD,SAAS,CAAC,QAAQ,CAAC,sBA4CrB,CAAA"}
|
package/lib/Send.js
CHANGED
|
@@ -1,56 +1,56 @@
|
|
|
1
|
-
import React, { useMemo, useCallback
|
|
2
|
-
import { StyleSheet,
|
|
3
|
-
import
|
|
4
|
-
import {
|
|
1
|
+
import React, { useMemo, useCallback } from 'react';
|
|
2
|
+
import { StyleSheet, View } from 'react-native';
|
|
3
|
+
import { Icon } from './components/Icon';
|
|
4
|
+
import { SendIcon } from './components/SendIcon';
|
|
5
5
|
import { TouchableOpacity } from './components/TouchableOpacity';
|
|
6
6
|
import { TEST_ID } from './Constant';
|
|
7
|
-
import {
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
const
|
|
11
|
-
|
|
7
|
+
import { useTheme, useThemedStyles } from './hooks/useTheme';
|
|
8
|
+
export const Send = ({ text, containerStyle, children, isTextOptional = false, sendButtonProps, onSend, }) => {
|
|
9
|
+
const theme = useTheme();
|
|
10
|
+
const styles = useThemedStyles(createStyles);
|
|
11
|
+
// The button is always visible. It's "active" (accent) when there's something
|
|
12
|
+
// to send, and "inactive" (gray, non-functional) otherwise - so the right
|
|
13
|
+
// slot is never empty when no voice/video/stop control takes its place.
|
|
14
|
+
const canSend = useMemo(() => !!text?.trim().length || isTextOptional, [text, isTextOptional]);
|
|
12
15
|
const handleOnPress = useCallback(() => {
|
|
13
16
|
const trimmedText = text?.trim() ?? '';
|
|
14
17
|
const message = { text: trimmedText };
|
|
15
18
|
if (onSend && (trimmedText.length || isTextOptional))
|
|
16
19
|
onSend(message, true);
|
|
17
20
|
}, [text, onSend, isTextOptional]);
|
|
18
|
-
const
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
}, [isVisible, opacity]);
|
|
22
|
-
const animatedStyle = useAnimatedStyle(() => ({
|
|
23
|
-
opacity: opacity.value,
|
|
24
|
-
}), [opacity]);
|
|
25
|
-
return (<Animated.View style={[styles.container, containerStyle, animatedStyle]} pointerEvents={isVisible ? 'auto' : 'none'}>
|
|
26
|
-
<TouchableOpacity testID={TEST_ID.SEND_TOUCHABLE} style={styles.touchable} onPress={handleOnPress} accessible accessibilityLabel='send' accessibilityRole='button' {...sendButtonProps}>
|
|
21
|
+
const { size } = theme.sendButton;
|
|
22
|
+
return (<View style={[styles.container, containerStyle]}>
|
|
23
|
+
<TouchableOpacity testID={TEST_ID.SEND_TOUCHABLE} style={styles.touchable} onPress={handleOnPress} enabled={canSend} accessible accessibilityLabel='send' accessibilityRole='button' accessibilityState={{ disabled: !canSend }} {...sendButtonProps}>
|
|
27
24
|
{children ||
|
|
28
|
-
<
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
]}>
|
|
32
|
-
{label}
|
|
33
|
-
</Text>}
|
|
25
|
+
<View style={[styles.circle, !canSend && styles.circleInactive]}>
|
|
26
|
+
<Icon name='send' color='#fff' size={size * 0.5} fallback={<SendIcon color='#fff' size={size * 0.5}/>}/>
|
|
27
|
+
</View>}
|
|
34
28
|
</TouchableOpacity>
|
|
35
|
-
</
|
|
29
|
+
</View>);
|
|
36
30
|
};
|
|
37
|
-
const
|
|
31
|
+
const createStyles = (theme) => StyleSheet.create({
|
|
32
|
+
// Center the button against the single-line field height. The toolbar row is
|
|
33
|
+
// bottom-aligned, so giving the button the field's min-height keeps it centered
|
|
34
|
+
// when the field is one line and aligned with the last line when it grows.
|
|
38
35
|
container: {
|
|
39
|
-
|
|
36
|
+
minHeight: theme.composer.minHeight,
|
|
37
|
+
justifyContent: 'center',
|
|
38
|
+
alignItems: 'center',
|
|
40
39
|
},
|
|
41
40
|
touchable: {
|
|
42
|
-
justifyContent: '
|
|
41
|
+
justifyContent: 'center',
|
|
43
42
|
},
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
backgroundColor:
|
|
49
|
-
|
|
50
|
-
|
|
43
|
+
circle: {
|
|
44
|
+
width: theme.sendButton.size,
|
|
45
|
+
height: theme.sendButton.size,
|
|
46
|
+
borderRadius: theme.radii.sendButton,
|
|
47
|
+
backgroundColor: theme.colors.accent,
|
|
48
|
+
alignItems: 'center',
|
|
49
|
+
justifyContent: 'center',
|
|
51
50
|
},
|
|
52
|
-
|
|
53
|
-
|
|
51
|
+
// Muted, non-functional state shown when there's nothing to send.
|
|
52
|
+
circleInactive: {
|
|
53
|
+
backgroundColor: theme.colors.incomingMeta,
|
|
54
54
|
},
|
|
55
55
|
});
|
|
56
56
|
//# sourceMappingURL=Send.js.map
|
package/lib/Send.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Send.js","sourceRoot":"","sources":["../src/Send.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,OAAO,EAAE,WAAW,EAAE,
|
|
1
|
+
{"version":3,"file":"Send.js","sourceRoot":"","sources":["../src/Send.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SystemMessage.d.ts","sourceRoot":"","sources":["../src/SystemMessage.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAGL,SAAS,EACT,SAAS,EACT,SAAS,EACV,MAAM,cAAc,CAAA;
|
|
1
|
+
{"version":3,"file":"SystemMessage.d.ts","sourceRoot":"","sources":["../src/SystemMessage.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAGL,SAAS,EACT,SAAS,EACT,SAAS,EACV,MAAM,cAAc,CAAA;AAGrB,OAAO,EAAe,gBAAgB,EAAE,MAAM,eAAe,CAAA;AAC7D,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAA;AAInC,MAAM,WAAW,kBAAkB,CAAC,QAAQ,SAAS,QAAQ;IAC3D,cAAc,EAAE,QAAQ,CAAA;IACxB,cAAc,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAA;IACrC,qBAAqB,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAA;IAC5C,SAAS,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAA;IAChC,gBAAgB,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC,CAAA;IACtD,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;CAC3B;AAED,wBAAgB,aAAa,CAAC,QAAQ,SAAS,QAAQ,EAAG,EACxD,cAAc,EACd,cAAc,EACd,qBAAqB,EACrB,SAAS,EACT,gBAAgB,EAChB,QAAQ,GACT,EAAE,kBAAkB,CAAC,QAAQ,CAAC,4BAwB9B"}
|
package/lib/SystemMessage.js
CHANGED
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { StyleSheet, View, } from 'react-native';
|
|
3
3
|
import { Color } from './Color';
|
|
4
|
+
import { useThemedStyles } from './hooks/useTheme';
|
|
4
5
|
import { MessageText } from './MessageText';
|
|
5
6
|
import stylesCommon from './styles';
|
|
6
7
|
export function SystemMessage({ currentMessage, containerStyle, messageContainerStyle, textStyle, messageTextProps, children, }) {
|
|
8
|
+
const styles = useThemedStyles(createStyles);
|
|
7
9
|
if (currentMessage == null)
|
|
8
10
|
return null;
|
|
9
11
|
return (<View style={[stylesCommon.fill, styles.wrapper]}>
|
|
@@ -13,7 +15,7 @@ export function SystemMessage({ currentMessage, containerStyle, messageContainer
|
|
|
13
15
|
</View>
|
|
14
16
|
</View>);
|
|
15
17
|
}
|
|
16
|
-
const
|
|
18
|
+
const createStyles = (theme) => StyleSheet.create({
|
|
17
19
|
wrapper: {
|
|
18
20
|
alignItems: 'center',
|
|
19
21
|
marginVertical: 5,
|
|
@@ -23,10 +25,10 @@ const styles = StyleSheet.create({
|
|
|
23
25
|
maxWidth: '70%',
|
|
24
26
|
borderRadius: 20,
|
|
25
27
|
borderWidth: 1,
|
|
26
|
-
borderColor:
|
|
28
|
+
borderColor: theme.colors.separator,
|
|
27
29
|
paddingHorizontal: 10,
|
|
28
30
|
paddingVertical: 10,
|
|
29
|
-
backgroundColor:
|
|
31
|
+
backgroundColor: theme.colors.reactionBackground,
|
|
30
32
|
},
|
|
31
33
|
messageContainer: {
|
|
32
34
|
marginVertical: 0,
|
|
@@ -34,8 +36,9 @@ const styles = StyleSheet.create({
|
|
|
34
36
|
},
|
|
35
37
|
text: {
|
|
36
38
|
backgroundColor: Color.backgroundTransparent,
|
|
37
|
-
|
|
38
|
-
|
|
39
|
+
color: theme.colors.incomingMeta,
|
|
40
|
+
fontSize: theme.typography.system.fontSize,
|
|
41
|
+
fontWeight: theme.typography.system.fontWeight,
|
|
39
42
|
textAlign: 'center',
|
|
40
43
|
},
|
|
41
44
|
});
|
package/lib/SystemMessage.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SystemMessage.js","sourceRoot":"","sources":["../src/SystemMessage.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EACL,UAAU,EACV,IAAI,GAIL,MAAM,cAAc,CAAA;AACrB,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAC/B,OAAO,EAAE,WAAW,EAAoB,MAAM,eAAe,CAAA;AAE7D,OAAO,YAAY,MAAM,UAAU,CAAA;
|
|
1
|
+
{"version":3,"file":"SystemMessage.js","sourceRoot":"","sources":["../src/SystemMessage.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EACL,UAAU,EACV,IAAI,GAIL,MAAM,cAAc,CAAA;AACrB,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAC/B,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAClD,OAAO,EAAE,WAAW,EAAoB,MAAM,eAAe,CAAA;AAE7D,OAAO,YAAY,MAAM,UAAU,CAAA;AAYnC,MAAM,UAAU,aAAa,CAA6B,EACxD,cAAc,EACd,cAAc,EACd,qBAAqB,EACrB,SAAS,EACT,gBAAgB,EAChB,QAAQ,GACqB;IAC7B,MAAM,MAAM,GAAG,eAAe,CAAC,YAAY,CAAC,CAAA;IAE5C,IAAI,cAAc,IAAI,IAAI;QACxB,OAAO,IAAI,CAAA;IAEb,OAAO,CACL,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC,CAC/C;MAAA,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC,CAC9C;QAAA,CACE,CAAC,CAAC,cAAc,CAAC,IAAI,IAAI,CACvB,CAAC,WAAW,CACV,cAAc,CAAC,CAAC,cAAc,CAAC,CAC/B,eAAe,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAC1C,QAAQ,CAAC,MAAM,CACf,cAAc,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,MAAM,CAAC,gBAAgB,EAAE,qBAAqB,CAAC,EAAE,CAAC,CAC3E,IAAI,gBAAgB,CAAC,EACrB,CAEN,CACA;QAAA,CAAC,QAAQ,CACX;MAAA,EAAE,IAAI,CACR;IAAA,EAAE,IAAI,CAAC,CACR,CAAA;AACH,CAAC;AAED,MAAM,YAAY,GAAG,CAAC,KAAgB,EAAE,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC;IAC3D,OAAO,EAAE;QACP,UAAU,EAAE,QAAQ;QACpB,cAAc,EAAE,CAAC;QACjB,gBAAgB,EAAE,EAAE;KACrB;IACD,SAAS,EAAE;QACT,QAAQ,EAAE,KAAK;QACf,YAAY,EAAE,EAAE;QAChB,WAAW,EAAE,CAAC;QACd,WAAW,EAAE,KAAK,CAAC,MAAM,CAAC,SAAS;QACnC,iBAAiB,EAAE,EAAE;QACrB,eAAe,EAAE,EAAE;QACnB,eAAe,EAAE,KAAK,CAAC,MAAM,CAAC,kBAAkB;KACjD;IACD,gBAAgB,EAAE;QAChB,cAAc,EAAE,CAAC;QACjB,gBAAgB,EAAE,CAAC;KACpB;IACD,IAAI,EAAE;QACJ,eAAe,EAAE,KAAK,CAAC,qBAAqB;QAC5C,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,YAAY;QAChC,QAAQ,EAAE,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,QAAQ;QAC1C,UAAU,EAAE,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,UAAU;QAC9C,SAAS,EAAE,QAAQ;KACpB;CACF,CAAC,CAAA"}
|