@kesha-antonov/react-native-chat 4.1.0 → 4.2.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 +85 -46
- package/lib/Bubble/index.d.ts.map +1 -1
- package/lib/Bubble/index.js +59 -19
- package/lib/Bubble/index.js.map +1 -1
- package/lib/Bubble/styles.d.ts +19 -0
- package/lib/Bubble/styles.d.ts.map +1 -1
- package/lib/Bubble/styles.js +23 -0
- package/lib/Bubble/styles.js.map +1 -1
- package/lib/Bubble/types.d.ts +10 -0
- package/lib/Bubble/types.d.ts.map +1 -1
- package/lib/Chat/ChatKeyboardAvoidingView.d.ts +16 -0
- package/lib/Chat/ChatKeyboardAvoidingView.d.ts.map +1 -0
- package/lib/Chat/ChatKeyboardAvoidingView.js +17 -0
- package/lib/Chat/ChatKeyboardAvoidingView.js.map +1 -0
- package/lib/Chat/index.d.ts.map +1 -1
- package/lib/Chat/index.js +20 -7
- package/lib/Chat/index.js.map +1 -1
- package/lib/Chat/types.d.ts +23 -3
- package/lib/Chat/types.d.ts.map +1 -1
- package/lib/Message/styles.d.ts +1 -4
- package/lib/Message/styles.d.ts.map +1 -1
- package/lib/Message/styles.js +4 -4
- package/lib/Message/styles.js.map +1 -1
- package/lib/MessagesContainer/FlashList.d.ts +9 -0
- package/lib/MessagesContainer/FlashList.d.ts.map +1 -0
- package/lib/MessagesContainer/FlashList.js +23 -0
- package/lib/MessagesContainer/FlashList.js.map +1 -0
- package/lib/MessagesContainer/index.d.ts.map +1 -1
- package/lib/MessagesContainer/index.js +113 -35
- package/lib/MessagesContainer/index.js.map +1 -1
- package/lib/MessagesContainer/styles.d.ts +0 -4
- package/lib/MessagesContainer/styles.d.ts.map +1 -1
- package/lib/MessagesContainer/styles.js +0 -4
- package/lib/MessagesContainer/styles.js.map +1 -1
- package/lib/MessagesContainer/types.d.ts +22 -2
- package/lib/MessagesContainer/types.d.ts.map +1 -1
- package/lib/hooks/useHasKeyboardProvider.d.ts +19 -0
- package/lib/hooks/useHasKeyboardProvider.d.ts.map +1 -0
- package/lib/hooks/useHasKeyboardProvider.js +31 -0
- package/lib/hooks/useHasKeyboardProvider.js.map +1 -0
- package/lib/hooks/useIsKeyboardVisible.d.ts +12 -0
- package/lib/hooks/useIsKeyboardVisible.d.ts.map +1 -0
- package/lib/hooks/useIsKeyboardVisible.js +31 -0
- package/lib/hooks/useIsKeyboardVisible.js.map +1 -0
- package/lib/hooks/useKeyboardVerticalOffset.d.ts +19 -0
- package/lib/hooks/useKeyboardVerticalOffset.d.ts.map +1 -0
- package/lib/hooks/useKeyboardVerticalOffset.js +22 -0
- package/lib/hooks/useKeyboardVerticalOffset.js.map +1 -0
- package/package.json +8 -1
package/README.md
CHANGED
|
@@ -19,6 +19,8 @@
|
|
|
19
19
|
</a>
|
|
20
20
|
</p>
|
|
21
21
|
|
|
22
|
+
> 🚧 **v4.3.0 is in active development (WIP)** on the [`4.3.0`](https://github.com/kesha-antonov/react-native-chat/tree/4.3.0) branch - a Telegram-inspired redesign with a theme system + dark mode, localization (i18n), an icon override registry, Telegram-style voice notes, round video notes, location/media messages, markdown replies, and a long-press context menu. See that branch for the latest work.
|
|
23
|
+
|
|
22
24
|
---
|
|
23
25
|
|
|
24
26
|
## ✨ Features
|
|
@@ -100,7 +102,7 @@
|
|
|
100
102
|
### Expo Projects
|
|
101
103
|
|
|
102
104
|
```bash
|
|
103
|
-
npx expo install react-native-chat react-native-reanimated react-native-gesture-handler react-native-safe-area-context react-native-keyboard-controller
|
|
105
|
+
npx expo install @kesha-antonov/react-native-chat react-native-reanimated react-native-gesture-handler react-native-safe-area-context react-native-keyboard-controller
|
|
104
106
|
```
|
|
105
107
|
|
|
106
108
|
### Bare React Native Projects
|
|
@@ -109,12 +111,12 @@ npx expo install react-native-chat react-native-reanimated react-native-gesture-
|
|
|
109
111
|
|
|
110
112
|
Using yarn:
|
|
111
113
|
```bash
|
|
112
|
-
yarn add react-native-chat react-native-reanimated react-native-gesture-handler react-native-safe-area-context react-native-keyboard-controller
|
|
114
|
+
yarn add @kesha-antonov/react-native-chat react-native-reanimated react-native-gesture-handler react-native-safe-area-context react-native-keyboard-controller
|
|
113
115
|
```
|
|
114
116
|
|
|
115
117
|
Using npm:
|
|
116
118
|
```bash
|
|
117
|
-
npm install --save react-native-chat react-native-reanimated react-native-gesture-handler react-native-safe-area-context react-native-keyboard-controller
|
|
119
|
+
npm install --save @kesha-antonov/react-native-chat react-native-reanimated react-native-gesture-handler react-native-safe-area-context react-native-keyboard-controller
|
|
118
120
|
```
|
|
119
121
|
|
|
120
122
|
**Step 2:** Install iOS pods
|
|
@@ -157,15 +159,10 @@ See the full guide (codemod included) in **[docs/MIGRATION.md](docs/MIGRATION.md
|
|
|
157
159
|
```jsx
|
|
158
160
|
import React, { useState, useCallback, useEffect } from 'react'
|
|
159
161
|
import { Chat } from '@kesha-antonov/react-native-chat'
|
|
160
|
-
import { useHeaderHeight } from '@react-navigation/elements'
|
|
161
162
|
|
|
162
163
|
export function Example() {
|
|
163
164
|
const [messages, setMessages] = useState([])
|
|
164
165
|
|
|
165
|
-
// keyboardVerticalOffset = distance from screen top to Chat container
|
|
166
|
-
// useHeaderHeight() returns status bar + navigation header height
|
|
167
|
-
const headerHeight = useHeaderHeight()
|
|
168
|
-
|
|
169
166
|
useEffect(() => {
|
|
170
167
|
setMessages([
|
|
171
168
|
{
|
|
@@ -194,7 +191,6 @@ export function Example() {
|
|
|
194
191
|
user={{
|
|
195
192
|
_id: 1,
|
|
196
193
|
}}
|
|
197
|
-
keyboardAvoidingViewProps={{ keyboardVerticalOffset: headerHeight }}
|
|
198
194
|
/>
|
|
199
195
|
)
|
|
200
196
|
}
|
|
@@ -277,44 +273,29 @@ interface User {
|
|
|
277
273
|
|
|
278
274
|
### Keyboard & Layout
|
|
279
275
|
|
|
280
|
-
- **`keyboardProviderProps`** _(Object)_ - Props to be passed to the [`KeyboardProvider`](https://kirillzyusko.github.io/react-native-keyboard-controller/docs/api/keyboard-provider) for keyboard handling.
|
|
281
|
-
|
|
282
|
-
|
|
276
|
+
- **`keyboardProviderProps`** _(Object)_ - Props to be passed to the [`KeyboardProvider`](https://kirillzyusko.github.io/react-native-keyboard-controller/docs/api/keyboard-provider) for keyboard handling. No defaults are applied - in particular Chat does **not** set `statusBarTranslucent` / `navigationBarTranslucent`, because on Android those change the *activity window* and the change outlives the chat screen ([#2755](https://github.com/FaridSafi/react-native-gifted-chat/issues/2755)). `react-native-keyboard-controller` turns them on by itself when the app is genuinely edge-to-edge, so there is nothing to set in a normal app.
|
|
277
|
+
|
|
278
|
+
Only used when Chat mounts the provider itself. If your app already mounts a `KeyboardProvider` (the setup `react-native-keyboard-controller` recommends - once, at the root), Chat detects it and reuses it instead of nesting a second one, and this prop is ignored. Configure the provider where you mount it.
|
|
279
|
+
- **`disableKeyboardProvider`** _(Bool)_ - Skip the built-in `KeyboardProvider` entirely; default is `false`. You do **not** need this just because your app mounts its own provider - that case is detected and reused. Reach for it only to opt out completely, e.g. when the provider's edge-to-edge behavior causes layout shift or a header jump on Android/Expo.
|
|
283
280
|
- **`keyboardAvoidingViewProps`** _(Object)_ - Props to be passed to the [`KeyboardAvoidingView`](https://kirillzyusko.github.io/react-native-keyboard-controller/docs/api/components/keyboard-avoiding-view). See **keyboardVerticalOffset** below for proper keyboard handling.
|
|
284
|
-
- **`isAlignedTop`** _(
|
|
281
|
+
- **`isAlignedTop`** _(`boolean | 'auto'`)_ - Where the bubbles sit **while the whole conversation fits on screen**; once it is taller than the list this has no effect. `false` (default) keeps the usual bottom-anchored chat, `true` pins the messages to the top, and `'auto'` pins them to the top while the keyboard is closed and re-anchors them to the bottom while it is open - so a short conversation starts under the header and moves above the keyboard when the composer is focused ([#2736](https://github.com/FaridSafi/react-native-gifted-chat/issues/2736)). Works with either `isInverted` setting; ignored when `isFlashListEnabled` is set, since FlashList positions its own items.
|
|
285
282
|
- **`isInverted`** _(Bool)_ - Reverses display order of `messages`; default is `true`
|
|
286
283
|
|
|
287
284
|
#### Understanding `keyboardVerticalOffset`
|
|
288
285
|
|
|
289
|
-
|
|
286
|
+
[`keyboardVerticalOffset`](https://kirillzyusko.github.io/react-native-keyboard-controller/docs/api/components/keyboard-avoiding-view#keyboardverticaloffset) tells the KeyboardAvoidingView how far down the screen its container starts. That distance depends on the navigation header and on anything else you render above the chat.
|
|
290
287
|
|
|
291
|
-
**
|
|
288
|
+
**You do not normally need to set it.** Chat measures its own position on screen and uses that, so the input toolbar sits on the keyboard whether the chat is full-screen or under a navigation header. The measurement comes from the `SafeAreaProvider` frame and updates on rotation and layout changes.
|
|
292
289
|
|
|
293
|
-
|
|
294
|
-
- Status bar height
|
|
295
|
-
- Navigation header height (on iOS, `useHeaderHeight()` already includes status bar)
|
|
296
|
-
|
|
297
|
-
**How to use:**
|
|
290
|
+
Pass your own value only to add extra space above the keyboard - it replaces the measured one:
|
|
298
291
|
|
|
299
292
|
```jsx
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
function ChatScreen() {
|
|
303
|
-
// useHeaderHeight() returns status bar + navigation header height on iOS
|
|
304
|
-
const headerHeight = useHeaderHeight()
|
|
305
|
-
|
|
306
|
-
return (
|
|
307
|
-
<Chat
|
|
308
|
-
keyboardAvoidingViewProps={{ keyboardVerticalOffset: headerHeight }}
|
|
309
|
-
// ... other props
|
|
310
|
-
/>
|
|
311
|
-
)
|
|
312
|
-
}
|
|
293
|
+
<Chat keyboardAvoidingViewProps={{ keyboardVerticalOffset: headerHeight + 16 }} />
|
|
313
294
|
```
|
|
314
295
|
|
|
315
|
-
|
|
296
|
+
If you do, sanity-check it on device: a toolbar behind the keyboard means the value is too small, a gap above the keyboard means it is too large. `useHeaderHeight()` is the usual source, but some navigator setups report a value that does not match the header you actually render.
|
|
316
297
|
|
|
317
|
-
**
|
|
298
|
+
> **Upgrading from 4.1.0 or earlier:** the default used to be `insets.top`, which could not account for a navigation header - so most apps passed `useHeaderHeight()` to compensate. That is no longer needed; drop it and let Chat measure, or the toolbar will float above the keyboard by the header height.
|
|
318
299
|
|
|
319
300
|
### Text Input & Composer
|
|
320
301
|
|
|
@@ -322,9 +303,6 @@ function ChatScreen() {
|
|
|
322
303
|
- **`initialText`** _(String)_ - Initial text to display in the input field
|
|
323
304
|
- **`isSendButtonAlwaysVisible`** _(Bool)_ - Always show send button in input text composer; default `false`, show only when text input is not empty
|
|
324
305
|
- **`isTextOptional`** _(Bool)_ - Allow sending messages without text (useful for media-only messages); default `false`. Use with `isSendButtonAlwaysVisible` for media attachments.
|
|
325
|
-
- **`minComposerHeight`** _(Object)_ - Custom min-height of the composer.
|
|
326
|
-
- **`maxComposerHeight`** _(Object)_ - Custom max height of the composer.
|
|
327
|
-
- **`minInputToolbarHeight`** _(Integer)_ - Minimum height of the input toolbar; default is `44`
|
|
328
306
|
- **`renderInputToolbar`** _(Component | Function)_ - Custom message composer container
|
|
329
307
|
- **`renderComposer`** _(Component | Function)_ - Custom text input message composer
|
|
330
308
|
- **`renderSend`** _(Component | Function)_ - Custom send button; you can pass children to the original `Send` component quite easily, for example, to use a custom icon ([example](https://github.com/kesha-antonov/react-native-chat/pull/487))
|
|
@@ -332,6 +310,8 @@ function ChatScreen() {
|
|
|
332
310
|
- **`renderAccessory`** _(Component | Function)_ - Custom second line of actions below the message composer
|
|
333
311
|
- **`textInputProps`** _(Object)_ - props to be passed to the [`<TextInput>`](https://reactnative.dev/docs/textinput).
|
|
334
312
|
|
|
313
|
+
> **Composer height** - there are no height props. The composer starts one line tall and grows with its content. Constrain it through `textInputProps.style` (e.g. `{ maxHeight: 120 }`), which is applied after the measured height and wins.
|
|
314
|
+
|
|
335
315
|
### Actions & Action Sheet
|
|
336
316
|
|
|
337
317
|
- **`onPressActionButton`** _(Function)_ - Callback when the Action button is pressed (if set, the default `actionSheet` will not be used)
|
|
@@ -347,6 +327,7 @@ function ChatScreen() {
|
|
|
347
327
|
- **`renderChatEmpty`** _(Component | Function)_ - Custom component to render in the ListView when messages are empty
|
|
348
328
|
- **`renderChatFooter`** _(Component | Function)_ - Custom component to render below the MessagesContainer (separate from the ListView)
|
|
349
329
|
- **`listProps`** _(Object)_ - Extra props to be passed to the messages [`<FlatList>`](https://reactnative.dev/docs/flatlist). Supports all FlatList props including `maintainVisibleContentPosition` for keeping scroll position when new messages arrive (useful for AI chatbots).
|
|
330
|
+
- **`isFlashListEnabled`** _(Bool)_ - Render messages with [`@shopify/flash-list`](https://shopify.github.io/flash-list/) v2 instead of `FlatList`; default is `false`. See [FlashList](#flashlist-opt-in).
|
|
350
331
|
|
|
351
332
|
### Message Bubbles & Content
|
|
352
333
|
|
|
@@ -359,6 +340,7 @@ function ChatScreen() {
|
|
|
359
340
|
- **`isCustomViewBottom`** _(Bool)_ - Determine whether renderCustomView is displayed before or after the text, image and video views; default is `false`
|
|
360
341
|
- **`onPressMessage`** _(Function(`context`, `message`))_ - Callback when a message bubble is pressed
|
|
361
342
|
- **`onLongPressMessage`** _(Function(`context`, `message`))_ - Callback when a message bubble is long-pressed; you can use this to show action sheets (e.g., copy, delete, reply)
|
|
343
|
+
- **`isMessageGestureEnabled`** _(Bool | Function(`message`))_ - Whether the bubble itself is part of the row's tap / long-press surface that `reactions` relies on; default is `true`. Pass `false`, or a predicate, for messages that render natively interactive content - the row beside the bubble stays pressable either way. See [Interactive content inside bubbles](#interactive-content-inside-bubbles-video-players-maps).
|
|
362
344
|
- **`imageProps`** _(Object)_ - Extra props to be passed to the [`<Image>`](https://reactnative.dev/docs/image) component created by the default `renderMessageImage`
|
|
363
345
|
- **`imageStyle`** _(Object)_ - Custom style for message images
|
|
364
346
|
- **`videoProps`** _(Object)_ - Extra props to be passed to the video component created by the required `renderMessageVideo`
|
|
@@ -444,11 +426,19 @@ See full example in [LinksExample](example/components/chat-examples/LinksExample
|
|
|
444
426
|
- **`timeFormat`** _(String)_ - Format to use for rendering times; default is `'LT'` (see [Day.js Format](https://day.js.org/docs/en/display/format))
|
|
445
427
|
- **`dateFormat`** _(String)_ - Format to use for rendering dates; default is `'D MMMM'` (see [Day.js Format](https://day.js.org/docs/en/display/format))
|
|
446
428
|
- **`dateFormatCalendar`** _(Object)_ - Format to use for rendering relative times; default is `{ sameDay: '[Today]' }` (see [Day.js Calendar](https://day.js.org/docs/en/plugin/calendar))
|
|
447
|
-
- **`renderDay`** _(Component | Function)_ - Custom day above a message
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
429
|
+
- **`renderDay`** _(Component | Function)_ - Custom day above a message. This is also how the day label is styled - it receives `DayProps` (`createdAt`, `dateFormat`, `dateFormatCalendar`, `containerStyle`, `wrapperStyle`, `textProps`, `isAnimated`), so render the built-in `Day` with the styles you want:
|
|
430
|
+
|
|
431
|
+
```tsx
|
|
432
|
+
import { Chat, Day, DayProps } from '@kesha-antonov/react-native-chat'
|
|
433
|
+
|
|
434
|
+
<Chat
|
|
435
|
+
renderDay={(props: DayProps) => (
|
|
436
|
+
<Day {...props} wrapperStyle={{ backgroundColor: '#eee' }} textProps={{ style: { color: '#333' } }} />
|
|
437
|
+
)}
|
|
438
|
+
/>
|
|
439
|
+
```
|
|
440
|
+
|
|
441
|
+
`isAnimated` is `true` for the floating header that sticks to the top while scrolling and `false` for the inline separators, so one function can style them differently.
|
|
452
442
|
- **`renderTime`** _(Component | Function)_ - Custom time inside a message
|
|
453
443
|
- **`timeTextStyle`** _(Object)_ - Custom text style for time inside messages (supports left/right styles)
|
|
454
444
|
- **`isDayAnimationEnabled`** _(Bool)_ - Enable animated day label that appears on scroll; default is `true`
|
|
@@ -665,8 +655,7 @@ const [isScrolledUp, setIsScrolledUp] = useState(false)
|
|
|
665
655
|
Render AI assistant replies token-by-token. The library batches incoming chunks with `requestAnimationFrame` (one render per frame, only the streaming bubble re-renders) and shows a blinking caret while a message is still streaming.
|
|
666
656
|
|
|
667
657
|
- **`IMessage.streaming`** - flag a message as streaming (shows the caret)
|
|
668
|
-
- **`
|
|
669
|
-
- **`useStreamingMessages(...)`** - owns the message list, rAF-batches `push()`, and supports stop via `AbortController`
|
|
658
|
+
- **`useStreamingMessages(...)`** - owns the message list, rAF-batches `push()`, and supports stop via `AbortController`. It returns `{ messages, setMessages, append, startStream, isStreaming, stop }`; `setMessages` is there for anything the hook does not cover, so you can patch a message with a plain `map`.
|
|
670
659
|
|
|
671
660
|
```tsx
|
|
672
661
|
import { useCallback } from 'react'
|
|
@@ -788,6 +777,56 @@ Message text is automatically scanned for URLs, emails, and phone numbers; hasht
|
|
|
788
777
|
|
|
789
778
|
For full control, pass custom `matchers` (`{ type, pattern, getLinkUrl?, getLinkText?, renderLink?, onPress? }[]`) to add or override patterns. See the Links example in the [example app](#-example-app).
|
|
790
779
|
|
|
780
|
+
### Interactive content inside bubbles (video players, maps)
|
|
781
|
+
|
|
782
|
+
When `reactions` are enabled, the long-press surface spans the **whole message row** - the bubble *and* the empty space beside it, the way Telegram behaves on Android. (A tap gesture is added on top only when `onPressMessage` is set.) Those recognizers do not cancel touches on native subviews, so a `react-native-video` / `expo-video` player rendered through `renderMessageVideo` keeps its native `controls` interactive.
|
|
783
|
+
|
|
784
|
+
If a message must own every touch that lands on it, set `isMessageGestureEnabled` to `false` for it. The gesture surface then drops *behind* the bubble: the bubble's content takes its touches, and long-pressing the row next to the bubble still opens the picker - so reactions are never lost for that message.
|
|
785
|
+
|
|
786
|
+
```tsx
|
|
787
|
+
<Chat
|
|
788
|
+
reactions={{ isEnabled: true, onReactionPress }}
|
|
789
|
+
renderMessageVideo={props => <Video source={{ uri: props.currentMessage.video }} controls style={styles.video} />}
|
|
790
|
+
// the video owns its controls; long-press beside the bubble still reacts
|
|
791
|
+
isMessageGestureEnabled={message => !message.video}
|
|
792
|
+
/>
|
|
793
|
+
```
|
|
794
|
+
|
|
795
|
+
### FlashList (opt-in)
|
|
796
|
+
|
|
797
|
+
On long histories `FlatList` can log `VirtualizedList: You have a large list that is slow to update`. [FlashList](https://shopify.github.io/flash-list/) v2 recycles rows instead of keeping them mounted, which removes that class of stall. It is supported as an **optional** dependency - install it yourself and flip one prop:
|
|
798
|
+
|
|
799
|
+
```bash
|
|
800
|
+
yarn add @shopify/flash-list
|
|
801
|
+
```
|
|
802
|
+
|
|
803
|
+
```jsx
|
|
804
|
+
<Chat messages={messages} user={user} isFlashListEnabled />
|
|
805
|
+
```
|
|
806
|
+
|
|
807
|
+
Everything else keeps working: `isInverted`, the floating day header, `loadEarlierMessagesProps` infinite scroll, the scroll-to-bottom button, and `listProps` (spread last, so it overrides the defaults below).
|
|
808
|
+
|
|
809
|
+
The chat sets FlashList's `maintainVisibleContentPosition` for you - `startRenderingFromBottom` when `isInverted={false}`, plus `autoscrollToBottomThreshold: 0.2` so new messages follow the viewport only when you are already at the bottom. Override it through `listProps` if you want different thresholds:
|
|
810
|
+
|
|
811
|
+
```jsx
|
|
812
|
+
<Chat
|
|
813
|
+
isFlashListEnabled
|
|
814
|
+
listProps={{
|
|
815
|
+
maintainVisibleContentPosition: {
|
|
816
|
+
autoscrollToBottomThreshold: 0.1,
|
|
817
|
+
animateAutoScrollToBottom: false,
|
|
818
|
+
},
|
|
819
|
+
}}
|
|
820
|
+
{...props}
|
|
821
|
+
/>
|
|
822
|
+
```
|
|
823
|
+
|
|
824
|
+
Notes:
|
|
825
|
+
|
|
826
|
+
- FlashList v2 requires the **New Architecture**. On the old architecture it falls back to a slower JS path.
|
|
827
|
+
- `FlatList`-only knobs (`windowSize`, `maxToRenderPerBatch`, `initialNumToRender`, `updateCellsBatchingPeriod`, `removeClippedSubviews`) are not forwarded to FlashList - it sizes its own render window.
|
|
828
|
+
- If `@shopify/flash-list` is not installed, the prop is ignored, a warning is logged, and `FlatList` is used.
|
|
829
|
+
|
|
791
830
|
### Copy to Clipboard
|
|
792
831
|
|
|
793
832
|
Long-press handling is exposed via `onLongPressMessage`. Chat wraps [`@expo/react-native-action-sheet`](https://github.com/expo/react-native-action-sheet), so you can show a "Copy Text" action sheet and copy with the clipboard library of your choice:
|
|
@@ -1068,7 +1107,7 @@ yarn prepublishOnly
|
|
|
1068
1107
|
|
|
1069
1108
|
## 👥 Authors
|
|
1070
1109
|
|
|
1071
|
-
Based on [FaridSafi/react-native-chat](https://github.com/FaridSafi/react-native-chat), which is no longer actively maintained.
|
|
1110
|
+
Based on [FaridSafi/react-native-gifted-chat](https://github.com/FaridSafi/react-native-gifted-chat), which is no longer actively maintained.
|
|
1072
1111
|
|
|
1073
1112
|
**Maintainer:** [Kesha Antonov](https://github.com/kesha-antonov)
|
|
1074
1113
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/Bubble/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAiD,MAAM,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/Bubble/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAiD,MAAM,OAAO,CAAA;AAsBrE,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAA;AAOpC,OAAO,EAAE,WAAW,EAA0B,MAAM,SAAS,CAAA;AAE7D,cAAc,SAAS,CAAA;AAcvB,eAAO,MAAM,MAAM,GAAI,QAAQ,SAAS,QAAQ,GAAG,QAAQ,EAAE,OAAO,WAAW,CAAC,QAAQ,CAAC,KAAG,KAAK,CAAC,YA4kBjG,CAAA"}
|
package/lib/Bubble/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React, { useCallback, useMemo, useRef, useState } from 'react';
|
|
2
|
-
import { View, Pressable, Text } from 'react-native';
|
|
2
|
+
import { View, Pressable, StyleSheet, Text } from 'react-native';
|
|
3
3
|
import { Gesture, GestureDetector } from 'react-native-gesture-handler';
|
|
4
4
|
import Animated, { Easing, ReduceMotion, runOnJS, useAnimatedStyle, useSharedValue, withTiming, } from 'react-native-reanimated';
|
|
5
5
|
import { useChatContext } from '../ChatContext';
|
|
@@ -20,8 +20,15 @@ const SCALE_DURATION_IN = 400;
|
|
|
20
20
|
const SCALE_DURATION_OUT = 200;
|
|
21
21
|
const SCALE_EASING = Easing.inOut(Easing.quad);
|
|
22
22
|
export const Bubble = (props) => {
|
|
23
|
-
const { currentMessage, nextMessage, position, containerToNextStyle, previousMessage, containerToPreviousStyle, onQuickReply, renderQuickReplySend, quickReplyStyle, quickReplyTextStyle, quickReplyContainerStyle, containerStyle, wrapperStyle, bottomContainerStyle, onPressMessage: onPressMessageProp, onLongPressMessage: onLongPressMessageProp, reactions, } = props;
|
|
23
|
+
const { currentMessage, nextMessage, position, containerToNextStyle, previousMessage, containerToPreviousStyle, onQuickReply, renderQuickReplySend, quickReplyStyle, quickReplyTextStyle, quickReplyContainerStyle, containerStyle, wrapperStyle, bottomContainerStyle, onPressMessage: onPressMessageProp, onLongPressMessage: onLongPressMessageProp, reactions, isMessageGestureEnabled = true, } = props;
|
|
24
24
|
const context = useChatContext();
|
|
25
|
+
// Consumers can hand the touches back to natively interactive content
|
|
26
|
+
// (video controls, maps, WebViews) on a per-message basis.
|
|
27
|
+
const isGestureEnabled = useMemo(() => {
|
|
28
|
+
if (typeof isMessageGestureEnabled === 'function')
|
|
29
|
+
return currentMessage ? isMessageGestureEnabled(currentMessage) : true;
|
|
30
|
+
return isMessageGestureEnabled;
|
|
31
|
+
}, [isMessageGestureEnabled, currentMessage]);
|
|
25
32
|
const bubbleContainerRef = useRef(null);
|
|
26
33
|
const [isPickerVisible, setIsPickerVisible] = useState(false);
|
|
27
34
|
const [pickerAnchor, setPickerAnchor] = useState({
|
|
@@ -52,12 +59,16 @@ export const Bubble = (props) => {
|
|
|
52
59
|
});
|
|
53
60
|
}, []);
|
|
54
61
|
const tapGesture = useMemo(() => Gesture.Tap()
|
|
62
|
+
// Keep native subviews (video controls, maps, native buttons) receiving
|
|
63
|
+
// touches. iOS cancels them by default the moment this recognizer wins.
|
|
64
|
+
.cancelsTouchesInView(false)
|
|
55
65
|
.runOnJS(true)
|
|
56
66
|
.onEnd((_e, success) => {
|
|
57
67
|
if (success)
|
|
58
68
|
onPressMessageProp?.(context, currentMessage);
|
|
59
69
|
}), [onPressMessageProp, context, currentMessage]);
|
|
60
70
|
const longPressGesture = useMemo(() => Gesture.LongPress()
|
|
71
|
+
.cancelsTouchesInView(false)
|
|
61
72
|
.onBegin(() => {
|
|
62
73
|
messageScale.value = withTiming(SCALE_PRESSED, {
|
|
63
74
|
duration: SCALE_DURATION_IN,
|
|
@@ -79,7 +90,11 @@ export const Bubble = (props) => {
|
|
|
79
90
|
// Exclusive composition: a long-press wins over the tap when held long
|
|
80
91
|
// enough; a quick lift lets the tap through. Both share the onBegin/onFinalize
|
|
81
92
|
// scale animation because onBegin always fires before either gesture wins.
|
|
82
|
-
|
|
93
|
+
// The tap is only attached when there is something to call - otherwise it
|
|
94
|
+
// would compete with interactive content inside the bubble for no reason.
|
|
95
|
+
const reactionsGesture = useMemo(() => onPressMessageProp
|
|
96
|
+
? Gesture.Exclusive(longPressGesture, tapGesture)
|
|
97
|
+
: longPressGesture, [longPressGesture, tapGesture, onPressMessageProp]);
|
|
83
98
|
const styledBubbleToNext = useMemo(() => {
|
|
84
99
|
if (currentMessage &&
|
|
85
100
|
nextMessage &&
|
|
@@ -322,6 +337,11 @@ export const Bubble = (props) => {
|
|
|
322
337
|
styledBubbleToPrevious,
|
|
323
338
|
wrapperStyle?.[position],
|
|
324
339
|
], [position, styledBubbleToNext, styledBubbleToPrevious, wrapperStyle]);
|
|
340
|
+
const containerStyleList = useMemo(() => [
|
|
341
|
+
getStyleWithPosition(styles, 'container', position),
|
|
342
|
+
containerStyle?.[position],
|
|
343
|
+
], [position, containerStyle]);
|
|
344
|
+
const rowSurfaceStyle = useMemo(() => getStyleWithPosition(styles, 'rowSurface', position), [position]);
|
|
325
345
|
const renderReactionsDisplay = useCallback(() => {
|
|
326
346
|
const currentReactions = currentMessage?.reactions;
|
|
327
347
|
if (!currentReactions || currentReactions.length === 0)
|
|
@@ -361,29 +381,49 @@ export const Bubble = (props) => {
|
|
|
361
381
|
return renderComponentOrElement(reactions.renderReactionPicker, pickerProps);
|
|
362
382
|
return <ReactionPicker {...pickerProps}/>;
|
|
363
383
|
}, [reactions, isPickerVisible, currentMessage, position, pickerAnchor]);
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
</
|
|
375
|
-
</
|
|
384
|
+
// Reactions path: the Animated.View carries only the scale transform, keeping
|
|
385
|
+
// the animation isolated from the static bubble styles on the inner View.
|
|
386
|
+
// Tap/long-press are handled by the composed gesture.
|
|
387
|
+
if (reactions?.isEnabled) {
|
|
388
|
+
// `rowSurface` spans the whole message row, so a long-press in the empty
|
|
389
|
+
// space beside the bubble opens the picker too - the way Telegram behaves.
|
|
390
|
+
const bubbleRow = (<View style={rowSurfaceStyle}>
|
|
391
|
+
<Animated.View style={bubbleScaleStyle}>
|
|
392
|
+
<View style={wrapperStyleList} ref={bubbleContainerRef}>
|
|
393
|
+
{renderBubbleBody()}
|
|
394
|
+
</View>
|
|
395
|
+
</Animated.View>
|
|
396
|
+
</View>);
|
|
397
|
+
return (<Animated.View style={containerStyleList}>
|
|
398
|
+
{isGestureEnabled
|
|
399
|
+
? (<GestureDetector gesture={reactionsGesture}>
|
|
400
|
+
{bubbleRow}
|
|
401
|
+
</GestureDetector>)
|
|
402
|
+
: (
|
|
403
|
+
// Gestures are off for this message, so the surface drops *behind*
|
|
404
|
+
// the bubble: the bubble's own content (native video controls, a
|
|
405
|
+
// map, a WebView) keeps every touch that lands on it, while the rest
|
|
406
|
+
// of the row still opens the picker.
|
|
407
|
+
<>
|
|
408
|
+
<GestureDetector gesture={reactionsGesture}>
|
|
409
|
+
<View style={StyleSheet.absoluteFill}/>
|
|
410
|
+
</GestureDetector>
|
|
411
|
+
{bubbleRow}
|
|
412
|
+
</>)}
|
|
376
413
|
{renderQuickReplies()}
|
|
377
414
|
{renderReactionsDisplay()}
|
|
378
415
|
{renderReactionPickerModal()}
|
|
379
416
|
</Animated.View>);
|
|
417
|
+
}
|
|
380
418
|
// Default path: unchanged behaviour for existing users, preserving
|
|
381
419
|
// touchableProps, native press feedback, and the onLongPressMessage callback.
|
|
382
|
-
return (<View style={
|
|
420
|
+
return (<View style={containerStyleList}>
|
|
383
421
|
<View style={wrapperStyleList}>
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
422
|
+
{isGestureEnabled
|
|
423
|
+
? (<Pressable onPress={onPress} onLongPress={onLongPress} {...props.touchableProps}>
|
|
424
|
+
{renderBubbleBody()}
|
|
425
|
+
</Pressable>)
|
|
426
|
+
: renderBubbleBody()}
|
|
387
427
|
</View>
|
|
388
428
|
{renderQuickReplies()}
|
|
389
429
|
</View>);
|
package/lib/Bubble/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/Bubble/index.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/Bubble/index.tsx"],"names":[],"mappings":"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"}
|
package/lib/Bubble/styles.d.ts
CHANGED
|
@@ -1,7 +1,26 @@
|
|
|
1
1
|
declare const styles: {
|
|
2
|
+
container: {
|
|
3
|
+
flex: number;
|
|
4
|
+
};
|
|
5
|
+
container_left: {
|
|
6
|
+
alignItems: "flex-start";
|
|
7
|
+
};
|
|
8
|
+
container_right: {
|
|
9
|
+
alignItems: "flex-end";
|
|
10
|
+
};
|
|
11
|
+
rowSurface: {
|
|
12
|
+
alignSelf: "stretch";
|
|
13
|
+
};
|
|
14
|
+
rowSurface_left: {
|
|
15
|
+
alignItems: "flex-start";
|
|
16
|
+
};
|
|
17
|
+
rowSurface_right: {
|
|
18
|
+
alignItems: "flex-end";
|
|
19
|
+
};
|
|
2
20
|
wrapper: {
|
|
3
21
|
borderRadius: number;
|
|
4
22
|
minHeight: number;
|
|
23
|
+
maxWidth: "70%";
|
|
5
24
|
};
|
|
6
25
|
wrapper_left: {
|
|
7
26
|
backgroundColor: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../../src/Bubble/styles.ts"],"names":[],"mappings":"AAGA,QAAA,MAAM,MAAM
|
|
1
|
+
{"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../../src/Bubble/styles.ts"],"names":[],"mappings":"AAGA,QAAA,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqFV,CAAA;AAEF,eAAe,MAAM,CAAA"}
|
package/lib/Bubble/styles.js
CHANGED
|
@@ -1,9 +1,32 @@
|
|
|
1
1
|
import { StyleSheet } from 'react-native';
|
|
2
2
|
import { Color } from '../Color';
|
|
3
3
|
const styles = StyleSheet.create({
|
|
4
|
+
// Fills the message row so the pressable surface reaches the far edge, with
|
|
5
|
+
// the bubble itself pinned to the sender's side.
|
|
6
|
+
container: {
|
|
7
|
+
flex: 1,
|
|
8
|
+
},
|
|
9
|
+
container_left: {
|
|
10
|
+
alignItems: 'flex-start',
|
|
11
|
+
},
|
|
12
|
+
container_right: {
|
|
13
|
+
alignItems: 'flex-end',
|
|
14
|
+
},
|
|
15
|
+
// Full-width band holding the bubble - this is what the reactions gesture is
|
|
16
|
+
// attached to, so the whole row responds and not just the bubble.
|
|
17
|
+
rowSurface: {
|
|
18
|
+
alignSelf: 'stretch',
|
|
19
|
+
},
|
|
20
|
+
rowSurface_left: {
|
|
21
|
+
alignItems: 'flex-start',
|
|
22
|
+
},
|
|
23
|
+
rowSurface_right: {
|
|
24
|
+
alignItems: 'flex-end',
|
|
25
|
+
},
|
|
4
26
|
wrapper: {
|
|
5
27
|
borderRadius: 15,
|
|
6
28
|
minHeight: 20,
|
|
29
|
+
maxWidth: '70%',
|
|
7
30
|
},
|
|
8
31
|
wrapper_left: {
|
|
9
32
|
backgroundColor: Color.leftBubbleBackground,
|
package/lib/Bubble/styles.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"styles.js","sourceRoot":"","sources":["../../src/Bubble/styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AACzC,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAA;AAEhC,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC;IAC/B,OAAO,EAAE;QACP,YAAY,EAAE,EAAE;QAChB,SAAS,EAAE,EAAE;
|
|
1
|
+
{"version":3,"file":"styles.js","sourceRoot":"","sources":["../../src/Bubble/styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AACzC,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAA;AAEhC,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC;IAC/B,4EAA4E;IAC5E,iDAAiD;IACjD,SAAS,EAAE;QACT,IAAI,EAAE,CAAC;KACR;IACD,cAAc,EAAE;QACd,UAAU,EAAE,YAAY;KACzB;IACD,eAAe,EAAE;QACf,UAAU,EAAE,UAAU;KACvB;IAED,6EAA6E;IAC7E,kEAAkE;IAClE,UAAU,EAAE;QACV,SAAS,EAAE,SAAS;KACrB;IACD,eAAe,EAAE;QACf,UAAU,EAAE,YAAY;KACzB;IACD,gBAAgB,EAAE;QAChB,UAAU,EAAE,UAAU;KACvB;IAED,OAAO,EAAE;QACP,YAAY,EAAE,EAAE;QAChB,SAAS,EAAE,EAAE;QACb,QAAQ,EAAE,KAAK;KAChB;IACD,YAAY,EAAE;QACZ,eAAe,EAAE,KAAK,CAAC,oBAAoB;QAC3C,cAAc,EAAE,UAAU;KAC3B;IACD,aAAa,EAAE;QACb,eAAe,EAAE,KAAK,CAAC,WAAW;QAClC,cAAc,EAAE,UAAU;KAC3B;IAED,MAAM,EAAE;QACN,aAAa,EAAE,KAAK;QACpB,cAAc,EAAE,eAAe;QAC/B,UAAU,EAAE,UAAU;QACtB,iBAAiB,EAAE,EAAE;QACrB,aAAa,EAAE,CAAC;KACjB;IAED,oBAAoB,EAAE;QACpB,sBAAsB,EAAE,CAAC;KAC1B;IACD,qBAAqB,EAAE;QACrB,uBAAuB,EAAE,CAAC;KAC3B;IAED,wBAAwB,EAAE;QACxB,mBAAmB,EAAE,CAAC;KACvB;IACD,yBAAyB,EAAE;QACzB,oBAAoB,EAAE,CAAC;KACxB;IAED,6BAA6B,EAAE;QAC7B,QAAQ,EAAE,CAAC;QACX,aAAa,EAAE,KAAK;QACpB,UAAU,EAAE,QAAQ;QACpB,cAAc,EAAE,UAAU;KAC3B;IAED,sBAAsB,EAAE;QACtB,aAAa,EAAE,KAAK;QACpB,UAAU,EAAE,CAAC;KACd;IACD,aAAa,EAAE;QACb,QAAQ,EAAE,EAAE;QACZ,KAAK,EAAE,KAAK,CAAC,KAAK;KACnB;IAED,iBAAiB,EAAE;QACjB,aAAa,EAAE,KAAK;QACpB,WAAW,EAAE,CAAC;KACf;IACD,QAAQ,EAAE;QACR,QAAQ,EAAE,EAAE;QACZ,KAAK,EAAE,MAAM;KACd;CACF,CAAC,CAAA;AAEF,eAAe,MAAM,CAAA"}
|
package/lib/Bubble/types.d.ts
CHANGED
|
@@ -58,5 +58,15 @@ export interface BubbleProps<TMessage extends IMessage> {
|
|
|
58
58
|
messageReply?: BubbleReplyProps<TMessage>;
|
|
59
59
|
/** Emoji reactions configuration */
|
|
60
60
|
reactions?: ReactionsProps<TMessage>;
|
|
61
|
+
/**
|
|
62
|
+
* Controls whether the bubble itself is part of the row's tap / long-press
|
|
63
|
+
* surface that `reactions` relies on. Pass `false` (or a predicate returning
|
|
64
|
+
* `false`) for messages that render natively interactive content - a video
|
|
65
|
+
* player with its own controls, a map, a WebView - whose touches must not
|
|
66
|
+
* compete with the bubble. The surface beside the bubble stays pressable
|
|
67
|
+
* either way, so reactions are never lost for that message.
|
|
68
|
+
* @default true
|
|
69
|
+
*/
|
|
70
|
+
isMessageGestureEnabled?: boolean | ((message: TMessage) => boolean);
|
|
61
71
|
}
|
|
62
72
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/Bubble/types.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/Bubble/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { KeyboardAvoidingViewProps } from 'react-native-keyboard-controller';
|
|
3
|
+
interface ChatKeyboardAvoidingViewProps {
|
|
4
|
+
children: React.ReactNode;
|
|
5
|
+
/** Consumer overrides, applied last so `keyboardVerticalOffset` can be replaced. */
|
|
6
|
+
keyboardAvoidingViewProps?: KeyboardAvoidingViewProps;
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* Keeps the input toolbar above the keyboard.
|
|
10
|
+
*
|
|
11
|
+
* Split out of `Chat` so the frame subscription behind `keyboardVerticalOffset` lives
|
|
12
|
+
* in a leaf: only this wrapper re-renders when the chat is re-measured.
|
|
13
|
+
*/
|
|
14
|
+
export declare function ChatKeyboardAvoidingView({ children, keyboardAvoidingViewProps, }: ChatKeyboardAvoidingViewProps): React.JSX.Element;
|
|
15
|
+
export {};
|
|
16
|
+
//# sourceMappingURL=ChatKeyboardAvoidingView.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ChatKeyboardAvoidingView.d.ts","sourceRoot":"","sources":["../../src/Chat/ChatKeyboardAvoidingView.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAwB,yBAAyB,EAAE,MAAM,kCAAkC,CAAA;AAIlG,UAAU,6BAA6B;IACrC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;IACzB,oFAAoF;IACpF,yBAAyB,CAAC,EAAE,yBAAyB,CAAA;CACtD;AAED;;;;;GAKG;AACH,wBAAgB,wBAAwB,CAAE,EACxC,QAAQ,EACR,yBAAyB,GAC1B,EAAE,6BAA6B,qBAa/B"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { KeyboardAvoidingView } from 'react-native-keyboard-controller';
|
|
3
|
+
import { useKeyboardVerticalOffset } from '../hooks/useKeyboardVerticalOffset';
|
|
4
|
+
import stylesCommon from '../styles';
|
|
5
|
+
/**
|
|
6
|
+
* Keeps the input toolbar above the keyboard.
|
|
7
|
+
*
|
|
8
|
+
* Split out of `Chat` so the frame subscription behind `keyboardVerticalOffset` lives
|
|
9
|
+
* in a leaf: only this wrapper re-renders when the chat is re-measured.
|
|
10
|
+
*/
|
|
11
|
+
export function ChatKeyboardAvoidingView({ children, keyboardAvoidingViewProps, }) {
|
|
12
|
+
const keyboardVerticalOffset = useKeyboardVerticalOffset();
|
|
13
|
+
return (<KeyboardAvoidingView behavior='translate-with-padding' keyboardVerticalOffset={keyboardVerticalOffset} style={stylesCommon.fill} {...keyboardAvoidingViewProps}>
|
|
14
|
+
{children}
|
|
15
|
+
</KeyboardAvoidingView>);
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=ChatKeyboardAvoidingView.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ChatKeyboardAvoidingView.js","sourceRoot":"","sources":["../../src/Chat/ChatKeyboardAvoidingView.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAE,oBAAoB,EAA6B,MAAM,kCAAkC,CAAA;AAClG,OAAO,EAAE,yBAAyB,EAAE,MAAM,oCAAoC,CAAA;AAC9E,OAAO,YAAY,MAAM,WAAW,CAAA;AAQpC;;;;;GAKG;AACH,MAAM,UAAU,wBAAwB,CAAE,EACxC,QAAQ,EACR,yBAAyB,GACK;IAC9B,MAAM,sBAAsB,GAAG,yBAAyB,EAAE,CAAA;IAE1D,OAAO,CACL,CAAC,oBAAoB,CACnB,QAAQ,CAAC,wBAAwB,CACjC,sBAAsB,CAAC,CAAC,sBAAsB,CAAC,CAC/C,KAAK,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,CACzB,IAAI,yBAAyB,CAAC,CAE9B;MAAA,CAAC,QAAQ,CACX;IAAA,EAAE,oBAAoB,CAAC,CACxB,CAAA;AACH,CAAC"}
|
package/lib/Chat/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/Chat/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAQN,MAAM,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/Chat/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAQN,MAAM,OAAO,CAAA;AAoBd,OAAO,EAAE,QAAQ,EAAgB,MAAM,WAAW,CAAA;AAKlD,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AAsTnC,iBAAS,WAAW,CAAC,QAAQ,SAAS,QAAQ,GAAG,QAAQ,EAAG,KAAK,EAAE,SAAS,CAAC,QAAQ,CAAC,qBAkCrF;kBAlCQ,WAAW;iBAoCE,QAAQ,SAAS,QAAQ,mBAC5B,QAAQ,EAAE,wBACjB,QAAQ,EAAE;kBAWC,QAAQ,SAAS,QAAQ,mBAC7B,QAAQ,EAAE,wBACjB,QAAQ,EAAE;;AAWtB,OAAO,EACL,WAAW,IAAI,IAAI,EACpB,CAAA"}
|