Skip to content

Commit e324cb5

Browse files
feat!: add text composer and poll composer integration to the message input (#3085)
* chore: modify gh workflows * feat: removal of StreamChatGenerics (#2993) * feat: remove StreamChatGenerics and introduce interface merging * fix: some of the outstanding todos * chore: add default interfaces * chore: remove SCG from sample app * fix: remove redundant types * fix: remove type module * fix: change the way interface declaration is consumed * fix: ignore ts complaints for interface declaration * chore: migrate TypescriptMessagingApp away from SCG * chore: migrate the Expo sample app away from SCG * fix: commit missing files * fix: revert mistaken change * fix: add resolutions for symlinked libs * chore: remove support for react-native-document-picker (#3000) * BREAKING CHANGE: V7 release candidate * chore: add rc channel * fix: typo in branch name * feat: trigger breaking change for v7 (#3005) BREAKING CHANGE: Release V7 * chore: remove dryRun * chore: bump stream-chat version to latest rc * chore: bump stream-chat to latest * feat: introduce expo-video support (#3010) * feat: introduce support for expo-video * fix: remove redundant test * fix: add check for audio component * fix: lint issues * fix: different types inference with latest stream-chat changes * chore(deps): update sample apps too * fix: remove generics from new hook * fix: remove remnants from SCG and fix missing types * fix: lint issues * fix: replace TouchableOpacity with Pressable * fix: move to RN TouchableOpacity instead * chore(deps): update peer deps * chore: remove unused hooks * chore: remove deps scope * fix: all instances of FormatMessageResponse in respect to the new llc changes * chore: ref branch specifically * fix: try clearing cache * fix: remove cache clean * fix: remove console.log * fix: use latest commit * fix: use latest rc of llc * chore: use specific commit again * fix: SCG remnants from merge * fix: lint issues * fix: lint issues * fix: unify file and image types (#3050) * fix: unify file and image types * fix: refine types * fix: remove props from auto complete input * chore: update deps * fix: failing tests and AutoCompleteInput type * chore: update custom data module interfaces * fix: change RNFile to FileReference as per latest client changes (#3061) * fix: merge conflicts * fix: remove MessageType type from the SDK * fix: resolve conflicts from V7 branch * fix: broken tests * fix: useMessageActions remove reserved fields logic * revert: useMessageActions change * fix: confine readBy data to Message Status component * fix: change date separator and group styles to ref * fix: add app changes * feat: use new text composer for RN SDK * fix: bump stream-chat to latest rc * chore: bump stream-chat version to latest rc again * fix: thread messages state not updating properly * chore: change type to inferred one * fix: set correct core lib versions * chore: bump stream-chat to latest rc again * chore: update sample app yarn.locks as well * fix: refine the implementation * fix: add useCallback * fix: keyboard taking full screen issue when the prefer cross-fade transition setting is enabled (#3073) * fix: respect the hasCommand channel prop as well * fix: keybaord taking full screen issue when the prefer cross-fade transition setting is enabled (#3072) * fix: keybaord taking full screen issue when the prefer cross-fade transition setting is enabled * chore: bump stream-chat-js rc again * chore: full reinstall after merge from develop * fix: add back mistakenly removed mime dep * feat: add poll composer * feat: add emoji middleware and make text input better * fix: add channel command middleware * fix: add channel command middleware * fix: remove unused values from message input context * fix: remove unused values from message input context * fix: code clean up * fix: point out a bug with the ban user command * fix: added option reordering fix * fix: improve the emoji and command middleware and cleanup * fix: quoted message state using the message composer * fix: improve poll composer integration * fix: reduce prop surface area from auto complete input * fix: tests * fix: poll composer crash bug * fix: change emoji middleware name * chore: remove workflow changes * fix: auto complete input changes * refactor: add improvements * refactor: add poll changes * fix: add back react memo * fix: input buttons hasText optimization * fix: commands button hastext optimization * fix: create poll options useEffect --------- Co-authored-by: Ivan Sekovanikj <[email protected]> Co-authored-by: Ivan Sekovanikj <[email protected]>
1 parent 0b20050 commit e324cb5

File tree

77 files changed

+1961
-8050
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

77 files changed

+1961
-8050
lines changed

examples/ExpoMessaging/yarn.lock

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4070,6 +4070,11 @@ emoji-regex@^10.3.0:
40704070
resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-10.3.0.tgz#76998b9268409eb3dae3de989254d456e70cfe23"
40714071
integrity sha512-QpLs9D9v9kArv4lfDEgg1X/gN5XLnf/A6l9cs8SPZLRZR3ZkY9+kwIQTxm+fsSej5UMYGE8fdoaZVIBlqG0XTw==
40724072

4073+
emoji-regex@^10.4.0:
4074+
version "10.4.0"
4075+
resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-10.4.0.tgz#03553afea80b3975749cfcb36f776ca268e413d4"
4076+
integrity sha512-EC+0oUMY1Rqm4O6LLrgjtYDvcVYTy7chDnM4Q7030tP4Kwj3u/pR6gP9ygnp2CJMK5Gq+9Q2oqmrFJAz01DXjw==
4077+
40734078
emoji-regex@^8.0.0:
40744079
version "8.0.0"
40754080
resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37"
@@ -7441,6 +7446,21 @@ stream-chat@^9.0.0:
74417446
linkifyjs "^4.2.0"
74427447
ws "^8.18.1"
74437448

7449+
stream-chat@^8.57.6:
7450+
version "8.60.0"
7451+
resolved "https://registry.yarnpkg.com/stream-chat/-/stream-chat-8.60.0.tgz#b67d4fbb185da53fb8ac5fc5759986d6ad7e19a3"
7452+
integrity sha512-7FpO7Wno++r+n+x9aFuXtGYtNO06CIMd2Bxe3doYZLhMfS0nuaXloeFlGcMT0r4U/6bnguz1qQdDJUPNQAS8bQ==
7453+
dependencies:
7454+
"@babel/runtime" "^7.27.0"
7455+
"@types/jsonwebtoken" "~9.0.0"
7456+
"@types/ws" "^7.4.0"
7457+
axios "^1.6.0"
7458+
base64-js "^1.5.1"
7459+
form-data "^4.0.0"
7460+
isomorphic-ws "^4.0.1"
7461+
jsonwebtoken "~9.0.0"
7462+
ws "^7.5.10"
7463+
74447464
stream-slice@^0.1.2:
74457465
version "0.1.2"
74467466
resolved "https://registry.yarnpkg.com/stream-slice/-/stream-slice-0.1.2.tgz#2dc4f4e1b936fb13f3eb39a2def1932798d07a4b"

examples/SampleApp/package.json

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
"clean-all": "yarn clean && rm -rf node_modules && rm -rf ios/Pods && rm -rf vendor && bundle install && yarn install && cd ios && bundle exec pod install && cd -"
2424
},
2525
"dependencies": {
26+
"@emoji-mart/data": "^1.2.1",
2627
"@notifee/react-native": "^9.1.8",
2728
"@op-engineering/op-sqlite": "^11.4.7",
2829
"@react-native-async-storage/async-storage": "^2.1.1",
@@ -35,6 +36,8 @@
3536
"@react-navigation/drawer": "7.1.1",
3637
"@react-navigation/native": "^7.0.14",
3738
"@react-navigation/stack": "^7.1.1",
39+
"emoji-mart": "^5.6.0",
40+
"lodash.mergewith": "^4.6.2",
3841
"react": "19.0.0",
3942
"react-native": "^0.78.0",
4043
"react-native-audio-recorder-player": "^3.6.12",
@@ -66,6 +69,7 @@
6669
"@react-native/typescript-config": "^0.78.0",
6770
"@rnx-kit/metro-config": "^2.0.1",
6871
"@types/jest": "^29.5.13",
72+
"@types/lodash.mergewith": "^4.6.9",
6973
"@types/react": "^19.0.0",
7074
"@types/react-test-renderer": "^19.0.0",
7175
"eslint": "^9.20.1",

examples/SampleApp/src/screens/ChannelListScreen.tsx

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -59,11 +59,7 @@ const baseFilters = {
5959
type: 'messaging',
6060
};
6161

62-
const sort: ChannelSort = [
63-
{ pinned_at: -1 },
64-
{ last_message_at: -1 },
65-
{ updated_at: -1 },
66-
];
62+
const sort: ChannelSort = [{ pinned_at: -1 }, { last_message_at: -1 }, { updated_at: -1 }];
6763

6864
const options = {
6965
presence: true,

examples/SampleApp/src/screens/ChannelScreen.tsx

Lines changed: 39 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
11
import React, { useCallback, useEffect, useState } from 'react';
2-
import type { Channel as StreamChatChannel } from 'stream-chat';
2+
import type {
3+
LocalMessage,
4+
Channel as StreamChatChannel,
5+
TextComposerMiddleware,
6+
} from 'stream-chat';
37
import { RouteProp, useFocusEffect, useNavigation } from '@react-navigation/native';
48
import {
59
Channel,
@@ -13,6 +17,7 @@ import {
1317
useTheme,
1418
useTypingString,
1519
AITypingIndicatorView,
20+
createTextComposerEmojiMiddleware,
1621
} from 'stream-chat-react-native';
1722
import { Platform, StyleSheet, View } from 'react-native';
1823
import type { StackNavigationProp } from '@react-navigation/stack';
@@ -25,10 +30,10 @@ import { useChannelMembersStatus } from '../hooks/useChannelMembersStatus';
2530

2631
import type { StackNavigatorParamList } from '../types';
2732
import { NetworkDownIndicator } from '../components/NetworkDownIndicator';
33+
import { init, SearchIndex } from 'emoji-mart';
34+
import data from '@emoji-mart/data';
2835

29-
const styles = StyleSheet.create({
30-
flex: { flex: 1 },
31-
});
36+
init({ data });
3237

3338
export type ChannelScreenNavigationProp = StackNavigationProp<
3439
StackNavigatorParamList,
@@ -115,12 +120,9 @@ export const ChannelScreen: React.FC<ChannelScreenProps> = ({
115120
},
116121
} = useTheme();
117122

118-
const [channel, setChannel] = useState<StreamChatChannel | undefined>(
119-
channelFromProp,
120-
);
123+
const [channel, setChannel] = useState<StreamChatChannel | undefined>(channelFromProp);
121124

122-
const [selectedThread, setSelectedThread] =
123-
useState<ThreadContextValue['thread']>();
125+
const [selectedThread, setSelectedThread] = useState<ThreadContextValue['thread']>();
124126

125127
useEffect(() => {
126128
const initChannel = async () => {
@@ -142,13 +144,30 @@ export const ChannelScreen: React.FC<ChannelScreenProps> = ({
142144
setSelectedThread(undefined);
143145
});
144146

145-
const onThreadSelect = useCallback((thread) => {
146-
setSelectedThread(thread);
147-
navigation.navigate('ThreadScreen', {
148-
channel,
149-
thread,
147+
useEffect(() => {
148+
if (!chatClient) {
149+
return;
150+
}
151+
152+
chatClient.setMessageComposerSetupFunction(({ composer }) => {
153+
composer.textComposer.middlewareExecutor.insert({
154+
middleware: [createTextComposerEmojiMiddleware(SearchIndex) as TextComposerMiddleware],
155+
position: { after: 'stream-io/text-composer/mentions-middleware' },
156+
unique: true,
157+
});
150158
});
151-
}, [channel, navigation]);
159+
}, [chatClient]);
160+
161+
const onThreadSelect = useCallback(
162+
(thread: LocalMessage | null) => {
163+
setSelectedThread(thread);
164+
navigation.navigate('ThreadScreen', {
165+
channel,
166+
thread,
167+
});
168+
},
169+
[channel, navigation],
170+
);
152171

153172
if (!channel || !chatClient) {
154173
return null;
@@ -168,12 +187,14 @@ export const ChannelScreen: React.FC<ChannelScreenProps> = ({
168187
thread={selectedThread}
169188
>
170189
<ChannelHeader channel={channel} />
171-
<MessageList
172-
onThreadSelect={onThreadSelect}
173-
/>
190+
<MessageList onThreadSelect={onThreadSelect} />
174191
<AITypingIndicatorView channel={channel} />
175192
<MessageInput />
176193
</Channel>
177194
</View>
178195
);
179196
};
197+
198+
const styles = StyleSheet.create({
199+
flex: { flex: 1 },
200+
});

examples/SampleApp/yarn.lock

Lines changed: 43 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1051,6 +1051,11 @@
10511051
dependencies:
10521052
"@types/hammerjs" "^2.0.36"
10531053

1054+
"@emoji-mart/data@^1.2.1":
1055+
version "1.2.1"
1056+
resolved "https://registry.yarnpkg.com/@emoji-mart/data/-/data-1.2.1.tgz#0ad70c662e3bc603e23e7d98413bd1e64c4fcb6c"
1057+
integrity sha512-no2pQMWiBy6gpBEiqGeU77/bFejDqUTRY7KX+0+iur13op3bqUsXdnwoZs6Xb1zbv0gAj5VvS1PWoUUckSr5Dw==
1058+
10541059
"@eslint-community/eslint-utils@^4.2.0", "@eslint-community/eslint-utils@^4.4.0":
10551060
version "4.4.1"
10561061
resolved "https://registry.yarnpkg.com/@eslint-community/eslint-utils/-/eslint-utils-4.4.1.tgz#d1145bf2c20132d6400495d6df4bf59362fd9d56"
@@ -2566,6 +2571,18 @@
25662571
"@types/ms" "*"
25672572
"@types/node" "*"
25682573

2574+
"@types/lodash.mergewith@^4.6.9":
2575+
version "4.6.9"
2576+
resolved "https://registry.yarnpkg.com/@types/lodash.mergewith/-/lodash.mergewith-4.6.9.tgz#7093028a36de3cae4495d03b9d92c351cab1f8bf"
2577+
integrity sha512-fgkoCAOF47K7sxrQ7Mlud2TH023itugZs2bUg8h/KzT+BnZNrR2jAOmaokbLunHNnobXVWOezAeNn/lZqwxkcw==
2578+
dependencies:
2579+
"@types/lodash" "*"
2580+
2581+
"@types/lodash@*":
2582+
version "4.17.16"
2583+
resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.17.16.tgz#94ae78fab4a38d73086e962d0b65c30d816bfb0a"
2584+
integrity sha512-HX7Em5NYQAXKW+1T+FiuG27NGwzJfCX3s1GjOa7ujxZa52kjJLOr4FUxT+giF6Tgxv1e+/czV/iTtBw27WTU9g==
2585+
25692586
"@types/ms@*":
25702587
version "2.1.0"
25712588
resolved "https://registry.yarnpkg.com/@types/ms/-/ms-2.1.0.tgz#052aa67a48eccc4309d7f0191b7e41434b90bb78"
@@ -3872,7 +3889,12 @@ emittery@^0.13.1:
38723889
resolved "https://registry.yarnpkg.com/emittery/-/emittery-0.13.1.tgz#c04b8c3457490e0847ae51fced3af52d338e3dad"
38733890
integrity sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==
38743891

3875-
emoji-regex@^10.3.0:
3892+
emoji-mart@^5.6.0:
3893+
version "5.6.0"
3894+
resolved "https://registry.yarnpkg.com/emoji-mart/-/emoji-mart-5.6.0.tgz#71b3ed0091d3e8c68487b240d9d6d9a73c27f023"
3895+
integrity sha512-eJp3QRe79pjwa+duv+n7+5YsNhRcMl812EcFVwrnRvYKoNPoQb5qxU8DG6Bgwji0akHdp6D4Ln6tYLG58MFSow==
3896+
3897+
emoji-regex@^10.4.0:
38763898
version "10.4.0"
38773899
resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-10.4.0.tgz#03553afea80b3975749cfcb36f776ca268e413d4"
38783900
integrity sha512-EC+0oUMY1Rqm4O6LLrgjtYDvcVYTy7chDnM4Q7030tP4Kwj3u/pR6gP9ygnp2CJMK5Gq+9Q2oqmrFJAz01DXjw==
@@ -5931,6 +5953,11 @@ lodash.merge@^4.6.2:
59315953
resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a"
59325954
integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==
59335955

5956+
lodash.mergewith@^4.6.2:
5957+
version "4.6.2"
5958+
resolved "https://registry.yarnpkg.com/lodash.mergewith/-/lodash.mergewith-4.6.2.tgz#617121f89ac55f59047c7aec1ccd6654c6590f55"
5959+
integrity sha512-GK3g5RPZWTRSeLSpgP8Xhra+pnjBC56q9FZYe1d5RN3TJ35dbkGy3YqBSMbyCrlbi+CM9Z3Jk5yTL7RCsqboyQ==
5960+
59345961
lodash.once@^4.0.0:
59355962
version "4.1.1"
59365963
resolved "https://registry.yarnpkg.com/lodash.once/-/lodash.once-4.1.1.tgz#0dd3971213c7c56df880977d504c88fb471a97ac"
@@ -7582,6 +7609,21 @@ stream-chat@^9.0.0:
75827609
linkifyjs "^4.2.0"
75837610
ws "^8.18.1"
75847611

7612+
stream-chat@^8.57.6:
7613+
version "8.60.0"
7614+
resolved "https://registry.yarnpkg.com/stream-chat/-/stream-chat-8.60.0.tgz#b67d4fbb185da53fb8ac5fc5759986d6ad7e19a3"
7615+
integrity sha512-7FpO7Wno++r+n+x9aFuXtGYtNO06CIMd2Bxe3doYZLhMfS0nuaXloeFlGcMT0r4U/6bnguz1qQdDJUPNQAS8bQ==
7616+
dependencies:
7617+
"@babel/runtime" "^7.27.0"
7618+
"@types/jsonwebtoken" "~9.0.0"
7619+
"@types/ws" "^7.4.0"
7620+
axios "^1.6.0"
7621+
base64-js "^1.5.1"
7622+
form-data "^4.0.0"
7623+
isomorphic-ws "^4.0.1"
7624+
jsonwebtoken "~9.0.0"
7625+
ws "^7.5.10"
7626+
75857627
strict-uri-encode@^2.0.0:
75867628
version "2.0.0"
75877629
resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz#b9c7330c7042862f6b142dc274bbcc5866ce3546"

examples/TypeScriptMessaging/yarn.lock

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3361,7 +3361,7 @@ emittery@^0.13.1:
33613361
resolved "https://registry.yarnpkg.com/emittery/-/emittery-0.13.1.tgz#c04b8c3457490e0847ae51fced3af52d338e3dad"
33623362
integrity sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==
33633363

3364-
emoji-regex@^10.3.0:
3364+
emoji-regex@^10.3.0, emoji-regex@^10.4.0:
33653365
version "10.4.0"
33663366
resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-10.4.0.tgz#03553afea80b3975749cfcb36f776ca268e413d4"
33673367
integrity sha512-EC+0oUMY1Rqm4O6LLrgjtYDvcVYTy7chDnM4Q7030tP4Kwj3u/pR6gP9ygnp2CJMK5Gq+9Q2oqmrFJAz01DXjw==
@@ -6968,6 +6968,21 @@ stream-chat@^9.0.0:
69686968
linkifyjs "^4.2.0"
69696969
ws "^8.18.1"
69706970

6971+
stream-chat@^8.57.6:
6972+
version "8.60.0"
6973+
resolved "https://registry.yarnpkg.com/stream-chat/-/stream-chat-8.60.0.tgz#b67d4fbb185da53fb8ac5fc5759986d6ad7e19a3"
6974+
integrity sha512-7FpO7Wno++r+n+x9aFuXtGYtNO06CIMd2Bxe3doYZLhMfS0nuaXloeFlGcMT0r4U/6bnguz1qQdDJUPNQAS8bQ==
6975+
dependencies:
6976+
"@babel/runtime" "^7.27.0"
6977+
"@types/jsonwebtoken" "~9.0.0"
6978+
"@types/ws" "^7.4.0"
6979+
axios "^1.6.0"
6980+
base64-js "^1.5.1"
6981+
form-data "^4.0.0"
6982+
isomorphic-ws "^4.0.1"
6983+
jsonwebtoken "~9.0.0"
6984+
ws "^7.5.10"
6985+
69716986
strict-uri-encode@^2.0.0:
69726987
version "2.0.0"
69736988
resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz#b9c7330c7042862f6b142dc274bbcc5866ce3546"

package/native-package/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
"dependencies": {
2222
"es6-symbol": "^3.1.3",
2323
"mime": "^4.0.7",
24-
"stream-chat-react-native-core": "7.0.0"
24+
"stream-chat-react-native-core": "link:../"
2525
},
2626
"peerDependencies": {
2727
"@react-native-camera-roll/camera-roll": ">=7.8.0",

package/native-package/yarn.lock

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1819,10 +1819,10 @@ electron-to-chromium@^1.5.73:
18191819
resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.5.112.tgz#8d3d95d4d5653836327890282c8eda5c6f26626d"
18201820
integrity sha512-oen93kVyqSb3l+ziUgzIOlWt/oOuy4zRmpwestMn4rhFWAoFJeFuCVte9F2fASjeZZo7l/Cif9TiyrdW4CwEMA==
18211821

1822-
emoji-regex@^10.3.0:
1823-
version "10.3.0"
1824-
resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-10.3.0.tgz#76998b9268409eb3dae3de989254d456e70cfe23"
1825-
integrity sha512-QpLs9D9v9kArv4lfDEgg1X/gN5XLnf/A6l9cs8SPZLRZR3ZkY9+kwIQTxm+fsSej5UMYGE8fdoaZVIBlqG0XTw==
1822+
emoji-regex@^10.4.0:
1823+
version "10.4.0"
1824+
resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-10.4.0.tgz#03553afea80b3975749cfcb36f776ca268e413d4"
1825+
integrity sha512-EC+0oUMY1Rqm4O6LLrgjtYDvcVYTy7chDnM4Q7030tP4Kwj3u/pR6gP9ygnp2CJMK5Gq+9Q2oqmrFJAz01DXjw==
18261826

18271827
emoji-regex@^8.0.0:
18281828
version "8.0.0"

package/package.json

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@
6868
"dependencies": {
6969
"@gorhom/bottom-sheet": "^5.1.1",
7070
"dayjs": "1.10.5",
71-
"emoji-regex": "^10.3.0",
71+
"emoji-regex": "^10.4.0",
7272
"i18next": "^21.6.14",
7373
"intl-pluralrules": "^2.0.1",
7474
"linkifyjs": "^4.1.1",
@@ -81,8 +81,10 @@
8181
"use-sync-external-store": "^1.4.0"
8282
},
8383
"peerDependencies": {
84+
"@emoji-mart/data": "^1.1.0",
8485
"@op-engineering/op-sqlite": ">=9.3.0",
8586
"@react-native-community/netinfo": ">=11.3.1",
87+
"emoji-mart": "^5.4.0",
8688
"react-native": ">=0.71.0",
8789
"react-native-gesture-handler": ">=2.16.1",
8890
"react-native-reanimated": ">=3.16.0",
@@ -91,6 +93,12 @@
9193
"peerDependenciesMeta": {
9294
"@op-engineering/op-sqlite": {
9395
"optional": true
96+
},
97+
"emoji-mart": {
98+
"optional": true
99+
},
100+
"@emoji-mart/data": {
101+
"optional": true
94102
}
95103
},
96104
"devDependencies": {

package/src/components/Attachment/Gallery.tsx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ import {
3030
useOverlayContext,
3131
} from '../../contexts/overlayContext/OverlayContext';
3232
import { useTheme } from '../../contexts/themeContext/ThemeContext';
33+
3334
import { useLoadingImage } from '../../hooks/useLoadingImage';
3435
import { isVideoPlayerAvailable } from '../../native';
3536
import { FileTypes } from '../../types/types';

package/src/components/Attachment/Giphy.tsx

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -70,10 +70,10 @@ const styles = StyleSheet.create({
7070
giphyHeaderText: {
7171
fontSize: 16,
7272
fontWeight: '600',
73+
marginHorizontal: 8,
7374
},
7475
giphyHeaderTitle: {
7576
fontSize: 14,
76-
marginLeft: 8,
7777
},
7878
giphyMask: {
7979
bottom: 8,
@@ -88,9 +88,7 @@ const styles = StyleSheet.create({
8888
alignItems: 'center',
8989
display: 'flex',
9090
flexDirection: 'row',
91-
justifyContent: 'space-between',
9291
padding: 8,
93-
width: '60%',
9492
},
9593
imageErrorIndicatorStyle: {
9694
alignItems: 'center',

0 commit comments

Comments
 (0)