stream-chat-react-native-core 5.2.0 → 5.3.0-beta.3
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/lib/commonjs/components/Attachment/Card.js +29 -18
- package/lib/commonjs/components/Attachment/Card.js.map +1 -1
- package/lib/commonjs/components/Attachment/Gallery.js +16 -20
- package/lib/commonjs/components/Attachment/Gallery.js.map +1 -1
- package/lib/commonjs/components/Attachment/GalleryImage.js +34 -6
- package/lib/commonjs/components/Attachment/GalleryImage.js.map +1 -1
- package/lib/commonjs/components/Attachment/Giphy.js +37 -29
- package/lib/commonjs/components/Attachment/Giphy.js.map +1 -1
- package/lib/commonjs/components/Avatar/Avatar.js +10 -8
- package/lib/commonjs/components/Avatar/Avatar.js.map +1 -1
- package/lib/commonjs/components/Avatar/GroupAvatar.js +3 -1
- package/lib/commonjs/components/Avatar/GroupAvatar.js.map +1 -1
- package/lib/commonjs/components/ChannelList/ChannelList.js +4 -4
- package/lib/commonjs/components/ChannelList/ChannelList.js.map +1 -1
- package/lib/commonjs/components/ChannelList/ChannelListMessenger.js +4 -4
- package/lib/commonjs/components/ChannelList/ChannelListMessenger.js.map +1 -1
- package/lib/commonjs/components/ChannelList/hooks/useCreateChannelsContext.js +1 -1
- package/lib/commonjs/components/ChannelList/hooks/useCreateChannelsContext.js.map +1 -1
- package/lib/commonjs/components/ChannelList/hooks/usePaginatedChannels.js +6 -7
- package/lib/commonjs/components/ChannelList/hooks/usePaginatedChannels.js.map +1 -1
- package/lib/commonjs/components/ChannelPreview/ChannelAvatar.js +30 -6
- package/lib/commonjs/components/ChannelPreview/ChannelAvatar.js.map +1 -1
- package/lib/commonjs/components/Chat/Chat.js +8 -5
- package/lib/commonjs/components/Chat/Chat.js.map +1 -1
- package/lib/commonjs/components/Chat/hooks/useCreateChatContext.js +2 -0
- package/lib/commonjs/components/Chat/hooks/useCreateChatContext.js.map +1 -1
- package/lib/commonjs/components/ImageBackground.js +64 -0
- package/lib/commonjs/components/ImageBackground.js.map +1 -0
- package/lib/commonjs/components/Message/Message.js +15 -16
- package/lib/commonjs/components/Message/Message.js.map +1 -1
- package/lib/commonjs/components/Message/MessageSimple/MessageAvatar.js +12 -4
- package/lib/commonjs/components/Message/MessageSimple/MessageAvatar.js.map +1 -1
- package/lib/commonjs/components/Message/MessageSimple/MessageRepliesAvatars.js +26 -5
- package/lib/commonjs/components/Message/MessageSimple/MessageRepliesAvatars.js.map +1 -1
- package/lib/commonjs/components/MessageOverlay/MessageOverlay.js +58 -47
- package/lib/commonjs/components/MessageOverlay/MessageOverlay.js.map +1 -1
- package/lib/commonjs/contexts/channelsContext/ChannelsContext.js.map +1 -1
- package/lib/commonjs/contexts/chatContext/ChatContext.js +2 -2
- package/lib/commonjs/contexts/chatContext/ChatContext.js.map +1 -1
- package/lib/commonjs/contexts/messageOverlayContext/MessageOverlayContext.js +2 -2
- package/lib/commonjs/contexts/messageOverlayContext/MessageOverlayContext.js.map +1 -1
- package/lib/commonjs/native.js.map +1 -1
- package/lib/commonjs/version.json +1 -1
- package/lib/module/components/Attachment/Card.js +29 -18
- package/lib/module/components/Attachment/Card.js.map +1 -1
- package/lib/module/components/Attachment/Gallery.js +16 -20
- package/lib/module/components/Attachment/Gallery.js.map +1 -1
- package/lib/module/components/Attachment/GalleryImage.js +34 -6
- package/lib/module/components/Attachment/GalleryImage.js.map +1 -1
- package/lib/module/components/Attachment/Giphy.js +37 -29
- package/lib/module/components/Attachment/Giphy.js.map +1 -1
- package/lib/module/components/Avatar/Avatar.js +10 -8
- package/lib/module/components/Avatar/Avatar.js.map +1 -1
- package/lib/module/components/Avatar/GroupAvatar.js +3 -1
- package/lib/module/components/Avatar/GroupAvatar.js.map +1 -1
- package/lib/module/components/ChannelList/ChannelList.js +4 -4
- package/lib/module/components/ChannelList/ChannelList.js.map +1 -1
- package/lib/module/components/ChannelList/ChannelListMessenger.js +4 -4
- package/lib/module/components/ChannelList/ChannelListMessenger.js.map +1 -1
- package/lib/module/components/ChannelList/hooks/useCreateChannelsContext.js +1 -1
- package/lib/module/components/ChannelList/hooks/useCreateChannelsContext.js.map +1 -1
- package/lib/module/components/ChannelList/hooks/usePaginatedChannels.js +6 -7
- package/lib/module/components/ChannelList/hooks/usePaginatedChannels.js.map +1 -1
- package/lib/module/components/ChannelPreview/ChannelAvatar.js +30 -6
- package/lib/module/components/ChannelPreview/ChannelAvatar.js.map +1 -1
- package/lib/module/components/Chat/Chat.js +8 -5
- package/lib/module/components/Chat/Chat.js.map +1 -1
- package/lib/module/components/Chat/hooks/useCreateChatContext.js +2 -0
- package/lib/module/components/Chat/hooks/useCreateChatContext.js.map +1 -1
- package/lib/module/components/ImageBackground.js +64 -0
- package/lib/module/components/ImageBackground.js.map +1 -0
- package/lib/module/components/Message/Message.js +15 -16
- package/lib/module/components/Message/Message.js.map +1 -1
- package/lib/module/components/Message/MessageSimple/MessageAvatar.js +12 -4
- package/lib/module/components/Message/MessageSimple/MessageAvatar.js.map +1 -1
- package/lib/module/components/Message/MessageSimple/MessageRepliesAvatars.js +26 -5
- package/lib/module/components/Message/MessageSimple/MessageRepliesAvatars.js.map +1 -1
- package/lib/module/components/MessageOverlay/MessageOverlay.js +58 -47
- package/lib/module/components/MessageOverlay/MessageOverlay.js.map +1 -1
- package/lib/module/contexts/channelsContext/ChannelsContext.js.map +1 -1
- package/lib/module/contexts/chatContext/ChatContext.js +2 -2
- package/lib/module/contexts/chatContext/ChatContext.js.map +1 -1
- package/lib/module/contexts/messageOverlayContext/MessageOverlayContext.js +2 -2
- package/lib/module/contexts/messageOverlayContext/MessageOverlayContext.js.map +1 -1
- package/lib/module/native.js.map +1 -1
- package/lib/module/version.json +1 -1
- package/lib/typescript/components/Attachment/Card.d.ts +3 -2
- package/lib/typescript/components/Attachment/GalleryImage.d.ts +8 -2
- package/lib/typescript/components/Attachment/Giphy.d.ts +2 -1
- package/lib/typescript/components/Avatar/Avatar.d.ts +2 -1
- package/lib/typescript/components/Avatar/GroupAvatar.d.ts +2 -1
- package/lib/typescript/components/ChannelList/hooks/usePaginatedChannels.d.ts +1 -1
- package/lib/typescript/components/ChannelPreview/ChannelAvatar.d.ts +2 -0
- package/lib/typescript/components/Chat/Chat.d.ts +1 -1
- package/lib/typescript/components/Chat/hooks/useCreateChatContext.d.ts +1 -1
- package/lib/typescript/components/ImageBackground.d.ts +33 -0
- package/lib/typescript/components/Message/Message.d.ts +2 -1
- package/lib/typescript/components/Message/MessageSimple/MessageAvatar.d.ts +2 -1
- package/lib/typescript/components/Message/MessageSimple/MessageRepliesAvatars.d.ts +2 -0
- package/lib/typescript/contexts/channelsContext/ChannelsContext.d.ts +1 -1
- package/lib/typescript/contexts/chatContext/ChatContext.d.ts +3 -1
- package/lib/typescript/contexts/messageOverlayContext/MessageOverlayContext.d.ts +4 -0
- package/lib/typescript/native.d.ts +2 -2
- package/package.json +1 -1
- package/src/__tests__/offline-feature.test.js +3 -1
- package/src/components/Attachment/Card.tsx +11 -2
- package/src/components/Attachment/Gallery.tsx +1 -7
- package/src/components/Attachment/GalleryImage.tsx +31 -9
- package/src/components/Attachment/Giphy.tsx +8 -2
- package/src/components/Avatar/Avatar.tsx +12 -2
- package/src/components/Avatar/GroupAvatar.tsx +4 -4
- package/src/components/ChannelList/ChannelList.tsx +3 -2
- package/src/components/ChannelList/ChannelListMessenger.tsx +3 -3
- package/src/components/ChannelList/__tests__/ChannelList.test.js +1 -1
- package/src/components/ChannelList/hooks/listeners/__tests__/useChannelUpdated.test.tsx +2 -1
- package/src/components/ChannelList/hooks/useCreateChannelsContext.ts +1 -1
- package/src/components/ChannelList/hooks/usePaginatedChannels.ts +12 -11
- package/src/components/ChannelPreview/ChannelAvatar.tsx +23 -4
- package/src/components/Chat/Chat.tsx +98 -95
- package/src/components/Chat/hooks/useCreateChatContext.ts +2 -0
- package/src/components/ImageBackground.tsx +77 -0
- package/src/components/Message/Message.tsx +8 -8
- package/src/components/Message/MessageSimple/MessageAvatar.tsx +6 -2
- package/src/components/Message/MessageSimple/MessageRepliesAvatars.tsx +15 -3
- package/src/components/MessageOverlay/MessageOverlay.tsx +210 -205
- package/src/contexts/channelsContext/ChannelsContext.tsx +1 -1
- package/src/contexts/chatContext/ChatContext.tsx +3 -1
- package/src/contexts/messageOverlayContext/MessageOverlayContext.tsx +8 -1
- package/src/native.ts +2 -2
- package/src/version.json +1 -1
|
@@ -70,6 +70,8 @@ var ChatWithContext = function ChatWithContext(props) {
|
|
|
70
70
|
_props$enableOfflineS = props.enableOfflineSupport,
|
|
71
71
|
enableOfflineSupport = _props$enableOfflineS === void 0 ? false : _props$enableOfflineS,
|
|
72
72
|
i18nInstance = props.i18nInstance,
|
|
73
|
+
_props$ImageComponent = props.ImageComponent,
|
|
74
|
+
ImageComponent = _props$ImageComponent === void 0 ? _reactNative.Image : _props$ImageComponent,
|
|
73
75
|
style = props.style;
|
|
74
76
|
|
|
75
77
|
var _useState = (0, _react.useState)(),
|
|
@@ -135,6 +137,7 @@ var ChatWithContext = function ChatWithContext(props) {
|
|
|
135
137
|
client: client,
|
|
136
138
|
connectionRecovering: connectionRecovering,
|
|
137
139
|
enableOfflineSupport: enableOfflineSupport,
|
|
140
|
+
ImageComponent: ImageComponent,
|
|
138
141
|
isOnline: isOnline,
|
|
139
142
|
mutedUsers: mutedUsers,
|
|
140
143
|
setActiveChannel: setActiveChannel,
|
|
@@ -155,7 +158,7 @@ var ChatWithContext = function ChatWithContext(props) {
|
|
|
155
158
|
__self: _this,
|
|
156
159
|
__source: {
|
|
157
160
|
fileName: _jsxFileName,
|
|
158
|
-
lineNumber:
|
|
161
|
+
lineNumber: 232,
|
|
159
162
|
columnNumber: 5
|
|
160
163
|
}
|
|
161
164
|
}, _react["default"].createElement(_TranslationContext.TranslationProvider, {
|
|
@@ -165,7 +168,7 @@ var ChatWithContext = function ChatWithContext(props) {
|
|
|
165
168
|
__self: _this,
|
|
166
169
|
__source: {
|
|
167
170
|
fileName: _jsxFileName,
|
|
168
|
-
lineNumber:
|
|
171
|
+
lineNumber: 233,
|
|
169
172
|
columnNumber: 7
|
|
170
173
|
}
|
|
171
174
|
}, _react["default"].createElement(_ThemeContext.ThemeProvider, {
|
|
@@ -173,14 +176,14 @@ var ChatWithContext = function ChatWithContext(props) {
|
|
|
173
176
|
__self: _this,
|
|
174
177
|
__source: {
|
|
175
178
|
fileName: _jsxFileName,
|
|
176
|
-
lineNumber:
|
|
179
|
+
lineNumber: 236,
|
|
177
180
|
columnNumber: 9
|
|
178
181
|
}
|
|
179
182
|
}, _react["default"].createElement(_ChannelsStateContext.ChannelsStateProvider, {
|
|
180
183
|
__self: _this,
|
|
181
184
|
__source: {
|
|
182
185
|
fileName: _jsxFileName,
|
|
183
|
-
lineNumber:
|
|
186
|
+
lineNumber: 237,
|
|
184
187
|
columnNumber: 11
|
|
185
188
|
}
|
|
186
189
|
}, children))));
|
|
@@ -196,7 +199,7 @@ var Chat = function Chat(props) {
|
|
|
196
199
|
__self: _this,
|
|
197
200
|
__source: {
|
|
198
201
|
fileName: _jsxFileName,
|
|
199
|
-
lineNumber:
|
|
202
|
+
lineNumber: 272,
|
|
200
203
|
columnNumber: 10
|
|
201
204
|
}
|
|
202
205
|
}));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["Chat.tsx"],"names":["ChatWithContext","props","children","client","closeConnectionOnBackground","enableOfflineSupport","i18nInstance","style","channel","setChannel","t","key","tDateTimeParser","input","translators","setTranslators","loadingTranslators","connectionRecovering","isOnline","mutedUsers","debugRef","isDebugModeEnabled","__DEV__","current","setUserAgent","SDK","Platform","OS","version","recoverStateOnReconnect","persistUserOnConnectionFailure","setEventType","setSendEventParams","action","data","user","setActiveChannel","newChannel","appSettings","subscribeConnectionRecoveredCallback","chatContext","QuickSqliteClient","initializeDatabase","userLanguage","language","DEFAULT_USER_LANGUAGE","Chat"],"mappings":";;;;;;;;;;;;;AAAA;;AACA;;AAEA;;AAIA;;AACA;;AACA;;AACA;;AACA;;AAEA;;AAEA;;AACA;;AACA;;AACA;;AACA;;AAEA;;AAKA;;AACA;;AAEA;;AACA;;AAGA;;;;;;;;;AAEA;;AAmGA,IAAMA,eAAe,GAAG,SAAlBA,eAAkB,CAGtBC,KAHsB,EAInB;AAAA;;AACH,MACEC,QADF,GAOID,KAPJ,CACEC,QADF;AAAA,MAEEC,MAFF,GAOIF,KAPJ,CAEEE,MAFF;AAAA,8BAOIF,KAPJ,CAGEG,2BAHF;AAAA,MAGEA,2BAHF,sCAGgC,IAHhC;AAAA,8BAOIH,KAPJ,CAIEI,oBAJF;AAAA,MAIEA,oBAJF,sCAIyB,KAJzB;AAAA,MAKEC,YALF,GAOIL,KAPJ,CAKEK,YALF;AAAA,MAMEC,KANF,GAOIN,KAPJ,CAMEM,KANF;;AASA,kBAA8B,sBAA9B;AAAA;AAAA,MAAOC,OAAP;AAAA,MAAgBC,UAAhB;;AACA,mBAAsC,qBAA8B;AAClEC,IAAAA,CAAC,EAAE,WAACC,GAAD;AAAA,aAAiBA,GAAjB;AAAA,KAD+D;AAElEC,IAAAA,eAAe,EAAE,yBAACC,KAAD;AAAA,aAAoC,uBAAMA,KAAN,CAApC;AAAA;AAFiD,GAA9B,CAAtC;AAAA;AAAA,MAAOC,WAAP;AAAA,MAAoBC,cAApB;;AAQA,MAAMC,kBAAkB,GAAG,kCAAc;AAAEV,IAAAA,YAAY,EAAZA,YAAF;AAAgBS,IAAAA,cAAc,EAAdA;AAAhB,GAAd,CAA3B;;AAKA,qBAA2C,+BACzCZ,MADyC,EAEzCC,2BAFyC,CAA3C;AAAA,MAAQa,oBAAR,gBAAQA,oBAAR;AAAA,MAA8BC,QAA9B,gBAA8BA,QAA9B;;AASA,MAAMC,UAAU,GAAG,kCAAkChB,MAAlC,CAAnB;AAEA,MAAMiB,QAAQ,GAAG,oCAAjB;AACA,MAAMC,kBAAkB,GAAGC,OAAO,IAAIF,QAAX,IAAuBA,QAAQ,CAACG,OAA3D;AAEA,wBAAU,YAAM;AACd,QAAIpB,MAAJ,EAAY;AACVA,MAAAA,MAAM,CAACqB,YAAP,CAAuBC,WAAvB,SAA8BC,sBAASC,EAAvC,SAA6CC,gBAA7C;AAEAzB,MAAAA,MAAM,CAAC0B,uBAAP,GAAiC,KAAjC;AACA1B,MAAAA,MAAM,CAAC2B,8BAAP,GAAwCzB,oBAAxC;AACD;;AAED,QAAIgB,kBAAJ,EAAwB;AACtB,UAAID,QAAQ,CAACG,OAAT,CAAiBQ,YAArB,EAAmCX,QAAQ,CAACG,OAAT,CAAiBQ,YAAjB,CAA8B,MAA9B;AACnC,UAAIX,QAAQ,CAACG,OAAT,CAAiBS,kBAArB,EACEZ,QAAQ,CAACG,OAAT,CAAiBS,kBAAjB,CAAoC;AAClCC,QAAAA,MAAM,EAAE,QAD0B;AAElCC,QAAAA,IAAI,EAAE/B,MAAM,CAACgC;AAFqB,OAApC;AAIH;AACF,GAhBD,EAgBG,CAAChC,MAAD,CAhBH;;AAkBA,MAAMiC,gBAAgB,GAAG,SAAnBA,gBAAmB,CAACC,UAAD;AAAA,WAA8C5B,UAAU,CAAC4B,UAAD,CAAxD;AAAA,GAAzB;;AAEA,MAAMC,WAAW,GAAG,oCAAenC,MAAf,EAAuBe,QAAvB,CAApB;;AACA,8BAAiD,oDAA2C;AAC1Ff,IAAAA,MAAM,EAANA,MAD0F;AAE1FE,IAAAA,oBAAoB,EAApBA;AAF0F,GAA3C,CAAjD;AAAA,MAAQkC,oCAAR,yBAAQA,oCAAR;;AAKA,MAAMC,WAAW,GAAG,gDAAqB;AACvCF,IAAAA,WAAW,EAAXA,WADuC;AAEvC9B,IAAAA,OAAO,EAAPA,OAFuC;AAGvCL,IAAAA,MAAM,EAANA,MAHuC;AAIvCc,IAAAA,oBAAoB,EAApBA,oBAJuC;AAKvCZ,IAAAA,oBAAoB,EAApBA,oBALuC;AAMvCa,IAAAA,QAAQ,EAARA,QANuC;AAOvCC,IAAAA,UAAU,EAAVA,UAPuC;AAQvCiB,IAAAA,gBAAgB,EAAhBA,gBARuC;AASvCG,IAAAA,oCAAoC,EAApCA;AATuC,GAArB,CAApB;AAYA,wBAAU,YAAM;AACd,QAAIlC,oBAAJ,EAA0B;AACxBoC,2CAAkBC,kBAAlB;AACD;AACF,GAJD,EAIG,EAJH;AAMA,wCAAgB;AACdvC,IAAAA,MAAM,EAANA,MADc;AAEdE,IAAAA,oBAAoB,EAApBA;AAFc,GAAhB;AAKA,MAAIW,kBAAJ,EAAwB,OAAO,IAAP;AAExB,SACE,gCAAC,yBAAD;AAAkC,IAAA,KAAK,EAAEwB,WAAzC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KACE,gCAAC,uCAAD;AACE,IAAA,KAAK,gCAAO1B,WAAP;AAAoB6B,MAAAA,YAAY,EAAE,iBAAAxC,MAAM,CAACgC,IAAP,kCAAaS,QAAb,KAAyBC;AAA3D,MADP;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KAGE,gCAAC,2BAAD;AAAe,IAAA,KAAK,EAAEtC,KAAtB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KACE,gCAAC,2CAAD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KAA4CL,QAA5C,CADF,CAHF,CADF,CADF;AAWD,CAxGD;;AA+HO,IAAM4C,IAAI,GAAG,SAAPA,IAAO,CAGlB7C,KAHkB,EAIf;AACH,2BAAkB,wCAAlB;AAAA,MAAQM,KAAR,sBAAQA,KAAR;;AAEA,SAAO,gCAAC,eAAD;AAAuBA,IAAAA,KAAK,EAALA;AAAvB,KAAoCN,KAApC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KAAP;AACD,CARM","sourcesContent":["import React, { PropsWithChildren, useEffect, useState } from 'react';\nimport { Platform } from 'react-native';\n\nimport Dayjs from 'dayjs';\n\nimport type { Channel } from 'stream-chat';\n\nimport { useAppSettings } from './hooks/useAppSettings';\nimport { useConnectionRecovered } from './hooks/useConnectionRecovered';\nimport { useCreateChatContext } from './hooks/useCreateChatContext';\nimport { useIsOnline } from './hooks/useIsOnline';\nimport { useMutedUsers } from './hooks/useMutedUsers';\n\nimport { useSyncDatabase } from './hooks/useSyncDatabase';\n\nimport { ChannelsStateProvider } from '../../contexts/channelsStateContext/ChannelsStateContext';\nimport { ChatContextValue, ChatProvider } from '../../contexts/chatContext/ChatContext';\nimport { useDebugContext } from '../../contexts/debugContext/DebugContext';\nimport { useOverlayContext } from '../../contexts/overlayContext/OverlayContext';\nimport { DeepPartial, ThemeProvider } from '../../contexts/themeContext/ThemeContext';\nimport type { Theme } from '../../contexts/themeContext/utils/theme';\nimport {\n DEFAULT_USER_LANGUAGE,\n TranslationProvider,\n TranslatorFunctions,\n} from '../../contexts/translationContext/TranslationContext';\nimport { useStreami18n } from '../../hooks/useStreami18n';\nimport init from '../../init';\n\nimport { SDK } from '../../native';\nimport { QuickSqliteClient } from '../../store/QuickSqliteClient';\nimport type { DefaultStreamChatGenerics } from '../../types/types';\nimport type { Streami18n } from '../../utils/Streami18n';\nimport { version } from '../../version.json';\n\ninit();\n\nexport type ChatProps<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Pick<ChatContextValue<StreamChatGenerics>, 'client'> & {\n /**\n * When false, ws connection won't be disconnection upon backgrounding the app.\n * To receive push notifications, its necessary that user doesn't have active\n * websocket connection. So by default, we disconnect websocket connection when\n * app goes to background, and reconnect when app comes to foreground.\n */\n closeConnectionOnBackground?: boolean;\n /**\n * Enables offline storage and loading for chat data.\n */\n enableOfflineSupport?: boolean;\n /**\n * Instance of Streami18n class should be provided to Chat component to enable internationalization.\n *\n * Stream provides following list of in-built translations:\n * 1. English (en)\n * 2. Dutch (nl)\n * 3. ...\n * 4. ...\n *\n * Simplest way to start using chat components in one of the in-built languages would be following:\n *\n * ```\n * const i18n = new Streami18n('nl');\n * <Chat client={chatClient} i18nInstance={i18n}>\n * ...\n * </Chat>\n * ```\n *\n * If you would like to override certain keys in in-built translation.\n * UI will be automatically updated in this case.\n *\n * ```\n * const i18n = new Streami18n('nl');\n *\n * i18n.registerTranslation('nl', {\n * 'Nothing yet...': 'Nog Niet ...',\n * '{{ firstUser }} and {{ secondUser }} are typing...': '{{ firstUser }} en {{ secondUser }} zijn aan het typen...',\n * });\n *\n * <Chat client={chatClient} i18nInstance={i18n}>\n * ...\n * </Chat>\n * ```\n *\n * You can use the same function to add whole new language.\n *\n * ```\n * const i18n = new Streami18n('it');\n *\n * i18n.registerTranslation('it', {\n * 'Nothing yet...': 'Non ancora ...',\n * '{{ firstUser }} and {{ secondUser }} are typing...': '{{ firstUser }} a {{ secondUser }} stanno scrivendo...',\n * });\n *\n * // Make sure to call setLanguage to reflect new language in UI.\n * i18n.setLanguage('it');\n * <Chat client={chatClient} i18nInstance={i18n}>\n * ...\n * </Chat>\n * ```\n */\n i18nInstance?: Streami18n;\n /**\n * You can pass the theme object to customize the styles of Chat components. You can check the default theme in [theme.ts](https://github.com/GetStream/stream-chat-react-native/blob/main/package/src/contexts/themeContext/utils/theme.ts)\n *\n * Please check section about [themes in cookbook](https://github.com/GetStream/stream-chat-react-native/wiki/Cookbook-v3.0#theme) for details.\n *\n * ```\n * import type { DeepPartial, Theme } from 'stream-chat-react-native';\n *\n * const theme: DeepPartial<Theme> = {\n * messageSimple: {\n * file: {\n * container: {\n * backgroundColor: 'red',\n * },\n * icon: {\n * height: 16,\n * width: 16,\n * },\n * },\n * },\n * };\n *\n * <Chat style={theme}>\n * </Chat>\n * ```\n *\n * @overrideType object\n */\n style?: DeepPartial<Theme>;\n};\n\nconst ChatWithContext = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: PropsWithChildren<ChatProps<StreamChatGenerics>>,\n) => {\n const {\n children,\n client,\n closeConnectionOnBackground = true,\n enableOfflineSupport = false,\n i18nInstance,\n style,\n } = props;\n\n const [channel, setChannel] = useState<Channel<StreamChatGenerics>>();\n const [translators, setTranslators] = useState<TranslatorFunctions>({\n t: (key: string) => key,\n tDateTimeParser: (input?: string | number | Date) => Dayjs(input),\n });\n\n /**\n * Setup translators\n */\n const loadingTranslators = useStreami18n({ i18nInstance, setTranslators });\n\n /**\n * Setup connection event listeners\n */\n const { connectionRecovering, isOnline } = useIsOnline<StreamChatGenerics>(\n client,\n closeConnectionOnBackground,\n );\n\n /**\n * Setup muted user listener\n * TODO: reimplement\n */\n const mutedUsers = useMutedUsers<StreamChatGenerics>(client);\n\n const debugRef = useDebugContext();\n const isDebugModeEnabled = __DEV__ && debugRef && debugRef.current;\n\n useEffect(() => {\n if (client) {\n client.setUserAgent(`${SDK}-${Platform.OS}-${version}`);\n // This is to disable recovery related logic in js client, since we handle it in this SDK\n client.recoverStateOnReconnect = false;\n client.persistUserOnConnectionFailure = enableOfflineSupport;\n }\n\n if (isDebugModeEnabled) {\n if (debugRef.current.setEventType) debugRef.current.setEventType('send');\n if (debugRef.current.setSendEventParams)\n debugRef.current.setSendEventParams({\n action: 'Client',\n data: client.user,\n });\n }\n }, [client]);\n\n const setActiveChannel = (newChannel?: Channel<StreamChatGenerics>) => setChannel(newChannel);\n\n const appSettings = useAppSettings(client, isOnline);\n const { subscribeConnectionRecoveredCallback } = useConnectionRecovered<StreamChatGenerics>({\n client,\n enableOfflineSupport,\n });\n\n const chatContext = useCreateChatContext({\n appSettings,\n channel,\n client,\n connectionRecovering,\n enableOfflineSupport,\n isOnline,\n mutedUsers,\n setActiveChannel,\n subscribeConnectionRecoveredCallback,\n });\n\n useEffect(() => {\n if (enableOfflineSupport) {\n QuickSqliteClient.initializeDatabase();\n }\n }, []);\n\n useSyncDatabase({\n client,\n enableOfflineSupport,\n });\n\n if (loadingTranslators) return null;\n\n return (\n <ChatProvider<StreamChatGenerics> value={chatContext}>\n <TranslationProvider\n value={{ ...translators, userLanguage: client.user?.language || DEFAULT_USER_LANGUAGE }}\n >\n <ThemeProvider style={style}>\n <ChannelsStateProvider<StreamChatGenerics>>{children}</ChannelsStateProvider>\n </ThemeProvider>\n </TranslationProvider>\n </ChatProvider>\n );\n};\n\n/**\n * Chat - Wrapper component for Chat. The needs to be placed around any other chat components.\n * This Chat component provides the ChatContext to all other components.\n *\n * The ChatContext provides the following props:\n *\n * - channel - currently active channel\n * - client - client connection\n * - connectionRecovering - whether or not websocket is reconnecting\n * - isOnline - whether or not set user is active\n * - setActiveChannel - function to set the currently active channel\n *\n * The Chat Component takes the following generics in order:\n * - At (AttachmentType) - custom Attachment object extension\n * - Ct (ChannelType) - custom Channel object extension\n * - Co (CommandType) - custom Command string union extension\n * - Ev (EventType) - custom Event object extension\n * - Me (MessageType) - custom Message object extension\n * - Re (ReactionType) - custom Reaction object extension\n * - Us (UserType) - custom User object extension\n */\nexport const Chat = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: PropsWithChildren<ChatProps<StreamChatGenerics>>,\n) => {\n const { style } = useOverlayContext();\n\n return <ChatWithContext {...{ style }} {...props} />;\n};\n"]}
|
|
1
|
+
{"version":3,"sources":["Chat.tsx"],"names":["ChatWithContext","props","children","client","closeConnectionOnBackground","enableOfflineSupport","i18nInstance","ImageComponent","Image","style","channel","setChannel","t","key","tDateTimeParser","input","translators","setTranslators","loadingTranslators","connectionRecovering","isOnline","mutedUsers","debugRef","isDebugModeEnabled","__DEV__","current","setUserAgent","SDK","Platform","OS","version","recoverStateOnReconnect","persistUserOnConnectionFailure","setEventType","setSendEventParams","action","data","user","setActiveChannel","newChannel","appSettings","subscribeConnectionRecoveredCallback","chatContext","QuickSqliteClient","initializeDatabase","userLanguage","language","DEFAULT_USER_LANGUAGE","Chat"],"mappings":"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","sourcesContent":["import React, { PropsWithChildren, useEffect, useState } from 'react';\nimport { Image, Platform } from 'react-native';\n\nimport Dayjs from 'dayjs';\n\nimport type { Channel } from 'stream-chat';\n\nimport { useAppSettings } from './hooks/useAppSettings';\nimport { useConnectionRecovered } from './hooks/useConnectionRecovered';\nimport { useCreateChatContext } from './hooks/useCreateChatContext';\nimport { useIsOnline } from './hooks/useIsOnline';\nimport { useMutedUsers } from './hooks/useMutedUsers';\n\nimport { useSyncDatabase } from './hooks/useSyncDatabase';\n\nimport { ChannelsStateProvider } from '../../contexts/channelsStateContext/ChannelsStateContext';\nimport { ChatContextValue, ChatProvider } from '../../contexts/chatContext/ChatContext';\nimport { useDebugContext } from '../../contexts/debugContext/DebugContext';\nimport { useOverlayContext } from '../../contexts/overlayContext/OverlayContext';\nimport { DeepPartial, ThemeProvider } from '../../contexts/themeContext/ThemeContext';\nimport type { Theme } from '../../contexts/themeContext/utils/theme';\nimport {\n DEFAULT_USER_LANGUAGE,\n TranslationProvider,\n TranslatorFunctions,\n} from '../../contexts/translationContext/TranslationContext';\nimport { useStreami18n } from '../../hooks/useStreami18n';\nimport init from '../../init';\n\nimport { SDK } from '../../native';\nimport { QuickSqliteClient } from '../../store/QuickSqliteClient';\nimport type { DefaultStreamChatGenerics } from '../../types/types';\nimport type { Streami18n } from '../../utils/Streami18n';\nimport { version } from '../../version.json';\n\ninit();\n\nexport type ChatProps<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Pick<ChatContextValue<StreamChatGenerics>, 'client'> &\n Partial<Pick<ChatContextValue<StreamChatGenerics>, 'ImageComponent'>> & {\n /**\n * When false, ws connection won't be disconnection upon backgrounding the app.\n * To receive push notifications, its necessary that user doesn't have active\n * websocket connection. So by default, we disconnect websocket connection when\n * app goes to background, and reconnect when app comes to foreground.\n */\n closeConnectionOnBackground?: boolean;\n /**\n * Enables offline storage and loading for chat data.\n */\n enableOfflineSupport?: boolean;\n /**\n * Instance of Streami18n class should be provided to Chat component to enable internationalization.\n *\n * Stream provides following list of in-built translations:\n * 1. English (en)\n * 2. Dutch (nl)\n * 3. ...\n * 4. ...\n *\n * Simplest way to start using chat components in one of the in-built languages would be following:\n *\n * ```\n * const i18n = new Streami18n('nl');\n * <Chat client={chatClient} i18nInstance={i18n}>\n * ...\n * </Chat>\n * ```\n *\n * If you would like to override certain keys in in-built translation.\n * UI will be automatically updated in this case.\n *\n * ```\n * const i18n = new Streami18n('nl');\n *\n * i18n.registerTranslation('nl', {\n * 'Nothing yet...': 'Nog Niet ...',\n * '{{ firstUser }} and {{ secondUser }} are typing...': '{{ firstUser }} en {{ secondUser }} zijn aan het typen...',\n * });\n *\n * <Chat client={chatClient} i18nInstance={i18n}>\n * ...\n * </Chat>\n * ```\n *\n * You can use the same function to add whole new language.\n *\n * ```\n * const i18n = new Streami18n('it');\n *\n * i18n.registerTranslation('it', {\n * 'Nothing yet...': 'Non ancora ...',\n * '{{ firstUser }} and {{ secondUser }} are typing...': '{{ firstUser }} a {{ secondUser }} stanno scrivendo...',\n * });\n *\n * // Make sure to call setLanguage to reflect new language in UI.\n * i18n.setLanguage('it');\n * <Chat client={chatClient} i18nInstance={i18n}>\n * ...\n * </Chat>\n * ```\n */\n i18nInstance?: Streami18n;\n /**\n * You can pass the theme object to customize the styles of Chat components. You can check the default theme in [theme.ts](https://github.com/GetStream/stream-chat-react-native/blob/main/package/src/contexts/themeContext/utils/theme.ts)\n *\n * Please check section about [themes in cookbook](https://github.com/GetStream/stream-chat-react-native/wiki/Cookbook-v3.0#theme) for details.\n *\n * ```\n * import type { DeepPartial, Theme } from 'stream-chat-react-native';\n *\n * const theme: DeepPartial<Theme> = {\n * messageSimple: {\n * file: {\n * container: {\n * backgroundColor: 'red',\n * },\n * icon: {\n * height: 16,\n * width: 16,\n * },\n * },\n * },\n * };\n *\n * <Chat style={theme}>\n * </Chat>\n * ```\n *\n * @overrideType object\n */\n style?: DeepPartial<Theme>;\n };\n\nconst ChatWithContext = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: PropsWithChildren<ChatProps<StreamChatGenerics>>,\n) => {\n const {\n children,\n client,\n closeConnectionOnBackground = true,\n enableOfflineSupport = false,\n i18nInstance,\n ImageComponent = Image,\n style,\n } = props;\n\n const [channel, setChannel] = useState<Channel<StreamChatGenerics>>();\n const [translators, setTranslators] = useState<TranslatorFunctions>({\n t: (key: string) => key,\n tDateTimeParser: (input?: string | number | Date) => Dayjs(input),\n });\n\n /**\n * Setup translators\n */\n const loadingTranslators = useStreami18n({ i18nInstance, setTranslators });\n\n /**\n * Setup connection event listeners\n */\n const { connectionRecovering, isOnline } = useIsOnline<StreamChatGenerics>(\n client,\n closeConnectionOnBackground,\n );\n\n /**\n * Setup muted user listener\n * TODO: reimplement\n */\n const mutedUsers = useMutedUsers<StreamChatGenerics>(client);\n\n const debugRef = useDebugContext();\n const isDebugModeEnabled = __DEV__ && debugRef && debugRef.current;\n\n useEffect(() => {\n if (client) {\n client.setUserAgent(`${SDK}-${Platform.OS}-${version}`);\n // This is to disable recovery related logic in js client, since we handle it in this SDK\n client.recoverStateOnReconnect = false;\n client.persistUserOnConnectionFailure = enableOfflineSupport;\n }\n\n if (isDebugModeEnabled) {\n if (debugRef.current.setEventType) debugRef.current.setEventType('send');\n if (debugRef.current.setSendEventParams)\n debugRef.current.setSendEventParams({\n action: 'Client',\n data: client.user,\n });\n }\n }, [client]);\n\n const setActiveChannel = (newChannel?: Channel<StreamChatGenerics>) => setChannel(newChannel);\n\n const appSettings = useAppSettings(client, isOnline);\n const { subscribeConnectionRecoveredCallback } = useConnectionRecovered<StreamChatGenerics>({\n client,\n enableOfflineSupport,\n });\n\n const chatContext = useCreateChatContext({\n appSettings,\n channel,\n client,\n connectionRecovering,\n enableOfflineSupport,\n ImageComponent,\n isOnline,\n mutedUsers,\n setActiveChannel,\n subscribeConnectionRecoveredCallback,\n });\n\n useEffect(() => {\n if (enableOfflineSupport) {\n QuickSqliteClient.initializeDatabase();\n }\n }, []);\n\n useSyncDatabase({\n client,\n enableOfflineSupport,\n });\n\n if (loadingTranslators) return null;\n\n return (\n <ChatProvider<StreamChatGenerics> value={chatContext}>\n <TranslationProvider\n value={{ ...translators, userLanguage: client.user?.language || DEFAULT_USER_LANGUAGE }}\n >\n <ThemeProvider style={style}>\n <ChannelsStateProvider<StreamChatGenerics>>{children}</ChannelsStateProvider>\n </ThemeProvider>\n </TranslationProvider>\n </ChatProvider>\n );\n};\n\n/**\n * Chat - Wrapper component for Chat. The needs to be placed around any other chat components.\n * This Chat component provides the ChatContext to all other components.\n *\n * The ChatContext provides the following props:\n *\n * - channel - currently active channel\n * - client - client connection\n * - connectionRecovering - whether or not websocket is reconnecting\n * - isOnline - whether or not set user is active\n * - setActiveChannel - function to set the currently active channel\n *\n * The Chat Component takes the following generics in order:\n * - At (AttachmentType) - custom Attachment object extension\n * - Ct (ChannelType) - custom Channel object extension\n * - Co (CommandType) - custom Command string union extension\n * - Ev (EventType) - custom Event object extension\n * - Me (MessageType) - custom Message object extension\n * - Re (ReactionType) - custom Reaction object extension\n * - Us (UserType) - custom User object extension\n */\nexport const Chat = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: PropsWithChildren<ChatProps<StreamChatGenerics>>,\n) => {\n const { style } = useOverlayContext();\n\n return <ChatWithContext {...{ style }} {...props} />;\n};\n"]}
|
|
@@ -11,6 +11,7 @@ var useCreateChatContext = function useCreateChatContext(_ref) {
|
|
|
11
11
|
client = _ref.client,
|
|
12
12
|
connectionRecovering = _ref.connectionRecovering,
|
|
13
13
|
enableOfflineSupport = _ref.enableOfflineSupport,
|
|
14
|
+
ImageComponent = _ref.ImageComponent,
|
|
14
15
|
isOnline = _ref.isOnline,
|
|
15
16
|
mutedUsers = _ref.mutedUsers,
|
|
16
17
|
setActiveChannel = _ref.setActiveChannel,
|
|
@@ -25,6 +26,7 @@ var useCreateChatContext = function useCreateChatContext(_ref) {
|
|
|
25
26
|
client: client,
|
|
26
27
|
connectionRecovering: connectionRecovering,
|
|
27
28
|
enableOfflineSupport: enableOfflineSupport,
|
|
29
|
+
ImageComponent: ImageComponent,
|
|
28
30
|
isOnline: isOnline,
|
|
29
31
|
mutedUsers: mutedUsers,
|
|
30
32
|
setActiveChannel: setActiveChannel,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["useCreateChatContext.ts"],"names":["useCreateChatContext","appSettings","channel","client","connectionRecovering","enableOfflineSupport","isOnline","mutedUsers","setActiveChannel","subscribeConnectionRecoveredCallback","channelId","id","clientValues","clientID","Object","keys","activeChannels","length","listeners","mutedChannels","mutedUsersLength","chatContext"],"mappings":";;;;;AAAA;;AAKO,IAAMA,oBAAoB,GAAG,SAAvBA,oBAAuB,
|
|
1
|
+
{"version":3,"sources":["useCreateChatContext.ts"],"names":["useCreateChatContext","appSettings","channel","client","connectionRecovering","enableOfflineSupport","ImageComponent","isOnline","mutedUsers","setActiveChannel","subscribeConnectionRecoveredCallback","channelId","id","clientValues","clientID","Object","keys","activeChannels","length","listeners","mutedChannels","mutedUsersLength","chatContext"],"mappings":";;;;;AAAA;;AAKO,IAAMA,oBAAoB,GAAG,SAAvBA,oBAAuB,OAaQ;AAAA,MAV1CC,WAU0C,QAV1CA,WAU0C;AAAA,MAT1CC,OAS0C,QAT1CA,OAS0C;AAAA,MAR1CC,MAQ0C,QAR1CA,MAQ0C;AAAA,MAP1CC,oBAO0C,QAP1CA,oBAO0C;AAAA,MAN1CC,oBAM0C,QAN1CA,oBAM0C;AAAA,MAL1CC,cAK0C,QAL1CA,cAK0C;AAAA,MAJ1CC,QAI0C,QAJ1CA,QAI0C;AAAA,MAH1CC,UAG0C,QAH1CA,UAG0C;AAAA,MAF1CC,gBAE0C,QAF1CA,gBAE0C;AAAA,MAD1CC,oCAC0C,QAD1CA,oCAC0C;AAC1C,MAAMC,SAAS,GAAGT,OAAH,oBAAGA,OAAO,CAAEU,EAA3B;AACA,MAAMC,YAAY,GAAGV,MAAM,QACpBA,MAAM,CAACW,QADa,GACFC,MAAM,CAACC,IAAP,CAAYb,MAAM,CAACc,cAAnB,EAAmCC,MADjC,GAErBH,MAAM,CAACC,IAAP,CAAYb,MAAM,CAACgB,SAAnB,EAA8BD,MAFT,GAGpBf,MAAM,CAACiB,aAAP,CAAqBF,MAHD,GAIvB,SAJJ;AAKA,MAAMG,gBAAgB,GAAGb,UAAU,CAACU,MAApC;AAEA,MAAMI,WAAiD,GAAG,oBACxD;AAAA,WAAO;AACLrB,MAAAA,WAAW,EAAXA,WADK;AAELC,MAAAA,OAAO,EAAPA,OAFK;AAGLC,MAAAA,MAAM,EAANA,MAHK;AAILC,MAAAA,oBAAoB,EAApBA,oBAJK;AAKLC,MAAAA,oBAAoB,EAApBA,oBALK;AAMLC,MAAAA,cAAc,EAAdA,cANK;AAOLC,MAAAA,QAAQ,EAARA,QAPK;AAQLC,MAAAA,UAAU,EAAVA,UARK;AASLC,MAAAA,gBAAgB,EAAhBA,gBATK;AAULC,MAAAA,oCAAoC,EAApCA;AAVK,KAAP;AAAA,GADwD,EAaxD,CAACC,SAAD,EAAYE,YAAZ,EAA0BT,oBAA1B,EAAgDG,QAAhD,EAA0Dc,gBAA1D,CAbwD,CAA1D;AAgBA,SAAOC,WAAP;AACD,CAvCM","sourcesContent":["import { useMemo } from 'react';\n\nimport type { ChatContextValue } from '../../../contexts/chatContext/ChatContext';\nimport type { DefaultStreamChatGenerics } from '../../../types/types';\n\nexport const useCreateChatContext = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>({\n appSettings,\n channel,\n client,\n connectionRecovering,\n enableOfflineSupport,\n ImageComponent,\n isOnline,\n mutedUsers,\n setActiveChannel,\n subscribeConnectionRecoveredCallback,\n}: ChatContextValue<StreamChatGenerics>) => {\n const channelId = channel?.id;\n const clientValues = client\n ? `${client.clientID}${Object.keys(client.activeChannels).length}${\n Object.keys(client.listeners).length\n }${client.mutedChannels.length}`\n : 'Offline';\n const mutedUsersLength = mutedUsers.length;\n\n const chatContext: ChatContextValue<StreamChatGenerics> = useMemo(\n () => ({\n appSettings,\n channel,\n client,\n connectionRecovering,\n enableOfflineSupport,\n ImageComponent,\n isOnline,\n mutedUsers,\n setActiveChannel,\n subscribeConnectionRecoveredCallback,\n }),\n [channelId, clientValues, connectionRecovering, isOnline, mutedUsersLength],\n );\n\n return chatContext;\n};\n"]}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
2
|
+
|
|
3
|
+
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.ImageBackground = void 0;
|
|
9
|
+
|
|
10
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
11
|
+
|
|
12
|
+
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
|
|
13
|
+
|
|
14
|
+
var React = _interopRequireWildcard(require("react"));
|
|
15
|
+
|
|
16
|
+
var _reactNative = require("react-native");
|
|
17
|
+
|
|
18
|
+
var _excluded = ["children", "ImageComponent", "imageStyle", "importantForAccessibility", "style"];
|
|
19
|
+
|
|
20
|
+
var _this = this,
|
|
21
|
+
_jsxFileName = "/home/runner/work/stream-chat-react-native/stream-chat-react-native/package/src/components/ImageBackground.tsx";
|
|
22
|
+
|
|
23
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
24
|
+
|
|
25
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
26
|
+
|
|
27
|
+
var ImageBackground = function ImageBackground(props) {
|
|
28
|
+
var children = props.children,
|
|
29
|
+
_props$ImageComponent = props.ImageComponent,
|
|
30
|
+
ImageComponent = _props$ImageComponent === void 0 ? _reactNative.Image : _props$ImageComponent,
|
|
31
|
+
imageStyle = props.imageStyle,
|
|
32
|
+
importantForAccessibility = props.importantForAccessibility,
|
|
33
|
+
style = props.style,
|
|
34
|
+
rest = (0, _objectWithoutProperties2["default"])(props, _excluded);
|
|
35
|
+
|
|
36
|
+
var flattenedStyle = _reactNative.StyleSheet.flatten(style);
|
|
37
|
+
|
|
38
|
+
return React.createElement(_reactNative.View, {
|
|
39
|
+
accessibilityIgnoresInvertColors: true,
|
|
40
|
+
importantForAccessibility: importantForAccessibility,
|
|
41
|
+
style: style,
|
|
42
|
+
__self: _this,
|
|
43
|
+
__source: {
|
|
44
|
+
fileName: _jsxFileName,
|
|
45
|
+
lineNumber: 50,
|
|
46
|
+
columnNumber: 5
|
|
47
|
+
}
|
|
48
|
+
}, React.createElement(ImageComponent, (0, _extends2["default"])({}, rest, {
|
|
49
|
+
importantForAccessibility: importantForAccessibility,
|
|
50
|
+
style: [_reactNative.StyleSheet.absoluteFill, {
|
|
51
|
+
height: flattenedStyle == null ? void 0 : flattenedStyle.height,
|
|
52
|
+
width: flattenedStyle == null ? void 0 : flattenedStyle.width
|
|
53
|
+
}, imageStyle],
|
|
54
|
+
__self: _this,
|
|
55
|
+
__source: {
|
|
56
|
+
fileName: _jsxFileName,
|
|
57
|
+
lineNumber: 55,
|
|
58
|
+
columnNumber: 7
|
|
59
|
+
}
|
|
60
|
+
})), children);
|
|
61
|
+
};
|
|
62
|
+
|
|
63
|
+
exports.ImageBackground = ImageBackground;
|
|
64
|
+
//# sourceMappingURL=ImageBackground.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["ImageBackground.tsx"],"names":["ImageBackground","props","children","ImageComponent","Image","imageStyle","importantForAccessibility","style","rest","flattenedStyle","StyleSheet","flatten","absoluteFill","height","width"],"mappings":";;;;;;;;;;;;;AAAA;;AAEA;;;;;;;;;;;AA+BO,IAAMA,eAIZ,GAAG,SAJSA,eAIT,CAACC,KAAD,EAAW;AACb,MACEC,QADF,GAOID,KAPJ,CACEC,QADF;AAAA,8BAOID,KAPJ,CAEEE,cAFF;AAAA,MAEEA,cAFF,sCAEmBC,kBAFnB;AAAA,MAGEC,UAHF,GAOIJ,KAPJ,CAGEI,UAHF;AAAA,MAIEC,yBAJF,GAOIL,KAPJ,CAIEK,yBAJF;AAAA,MAKEC,KALF,GAOIN,KAPJ,CAKEM,KALF;AAAA,MAMKC,IANL,6CAOIP,KAPJ;;AASA,MAAMQ,cAAc,GAAGC,wBAAWC,OAAX,CAAmBJ,KAAnB,CAAvB;;AACA,SACE,oBAAC,iBAAD;AACE,IAAA,gCAAgC,EAAE,IADpC;AAEE,IAAA,yBAAyB,EAAED,yBAF7B;AAGE,IAAA,KAAK,EAAEC,KAHT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KAKE,oBAAC,cAAD,gCACMC,IADN;AAEE,IAAA,yBAAyB,EAAEF,yBAF7B;AAGE,IAAA,KAAK,EAAE,CACLI,wBAAWE,YADN,EAEL;AAQEC,MAAAA,MAAM,EAAEJ,cAAF,oBAAEA,cAAc,CAAEI,MAR1B;AASEC,MAAAA,KAAK,EAAEL,cAAF,oBAAEA,cAAc,CAAEK;AATzB,KAFK,EAaLT,UAbK,CAHT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KALF,EAwBGH,QAxBH,CADF;AA4BD,CA3CM","sourcesContent":["import * as React from 'react';\n\nimport { Image, ImageBackgroundProps, ImageProps, StyleSheet, View } from 'react-native';\n\n/**\n * DISCLAIMER: This component has been pretty-much copied from react-native's source code\n * https://github.com/facebook/react-native/blob/main/Libraries/Image/ImageBackground.js\n * Few modifications have been done such as converting to functional component, removing ref related logic (since its not required).\n * Also support for prop `ImageComponent` has been introduced to allow rendering custom\n * component instead of `Image`.\n *\n *\n * Very simple drop-in replacement for <Image> which supports nesting views.\n *\n * ```ReactNativeWebPlayer\n * import React, { Component } from 'react';\n * import { AppRegistry, View, ImageBackground, Text } from 'react-native';\n *\n * class DisplayAnImageBackground extends Component {\n * render() {\n * return (\n * <ImageBackground\n * style={{width: 50, height: 50}}\n * source={{uri: 'https://reactnative.dev/img/opengraph.png'}}\n * >\n * <Text>React</Text>\n * </ImageBackground>\n * );\n * }\n * }\n *\n */\n\nexport const ImageBackground: React.ComponentType<\n ImageBackgroundProps & {\n ImageComponent?: React.ComponentType<ImageProps>;\n }\n> = (props) => {\n const {\n children,\n ImageComponent = Image,\n imageStyle,\n importantForAccessibility,\n style,\n ...rest\n } = props;\n\n const flattenedStyle = StyleSheet.flatten(style);\n return (\n <View\n accessibilityIgnoresInvertColors={true}\n importantForAccessibility={importantForAccessibility}\n style={style}\n >\n <ImageComponent\n {...rest}\n importantForAccessibility={importantForAccessibility}\n style={[\n StyleSheet.absoluteFill,\n {\n // Temporary Workaround:\n // Current (imperfect yet) implementation of <Image> overwrites width and height styles\n // (which is not quite correct), and these styles conflict with explicitly set styles\n // of <ImageBackground> and with our internal layout model here.\n // So, we have to proxy/reapply these styles explicitly for actual <Image> component.\n // This workaround should be removed after implementing proper support of\n // intrinsic content size of the <Image>.\n height: flattenedStyle?.height,\n width: flattenedStyle?.width,\n },\n imageStyle,\n ]}\n />\n {children}\n </View>\n );\n};\n"]}
|
|
@@ -61,7 +61,6 @@ var MessageWithContext = function MessageWithContext(props) {
|
|
|
61
61
|
|
|
62
62
|
var isMessageTypeDeleted = props.message.type === 'deleted';
|
|
63
63
|
var channel = props.channel,
|
|
64
|
-
client = props.client,
|
|
65
64
|
disabled = props.disabled,
|
|
66
65
|
dismissKeyboard = props.dismissKeyboard,
|
|
67
66
|
dismissKeyboardOnMessageTouch = props.dismissKeyboardOnMessageTouch,
|
|
@@ -84,6 +83,7 @@ var MessageWithContext = function MessageWithContext(props) {
|
|
|
84
83
|
handleReactionProp = props.handleReaction,
|
|
85
84
|
handleRetry = props.handleRetry,
|
|
86
85
|
handleThreadReply = props.handleThreadReply,
|
|
86
|
+
chatContext = props.chatContext,
|
|
87
87
|
lastReceivedId = props.lastReceivedId,
|
|
88
88
|
members = props.members,
|
|
89
89
|
message = props.message,
|
|
@@ -119,6 +119,7 @@ var MessageWithContext = function MessageWithContext(props) {
|
|
|
119
119
|
_props$threadList = props.threadList,
|
|
120
120
|
threadList = _props$threadList === void 0 ? false : _props$threadList,
|
|
121
121
|
updateMessage = props.updateMessage;
|
|
122
|
+
var client = chatContext.client;
|
|
122
123
|
|
|
123
124
|
var _useTheme = (0, _ThemeContext.useTheme)(),
|
|
124
125
|
_useTheme$theme = _useTheme.theme,
|
|
@@ -402,6 +403,7 @@ var MessageWithContext = function MessageWithContext(props) {
|
|
|
402
403
|
});
|
|
403
404
|
setData({
|
|
404
405
|
alignment: alignment,
|
|
406
|
+
chatContext: chatContext,
|
|
405
407
|
clientId: client.userID,
|
|
406
408
|
files: attachments.files,
|
|
407
409
|
groupStyles: groupStyles,
|
|
@@ -555,7 +557,7 @@ var MessageWithContext = function MessageWithContext(props) {
|
|
|
555
557
|
__self: _this,
|
|
556
558
|
__source: {
|
|
557
559
|
fileName: _jsxFileName,
|
|
558
|
-
lineNumber:
|
|
560
|
+
lineNumber: 690,
|
|
559
561
|
columnNumber: 5
|
|
560
562
|
}
|
|
561
563
|
}, _react["default"].createElement(_reactNative.View, {
|
|
@@ -565,7 +567,7 @@ var MessageWithContext = function MessageWithContext(props) {
|
|
|
565
567
|
__self: _this,
|
|
566
568
|
__source: {
|
|
567
569
|
fileName: _jsxFileName,
|
|
568
|
-
lineNumber:
|
|
570
|
+
lineNumber: 694,
|
|
569
571
|
columnNumber: 7
|
|
570
572
|
}
|
|
571
573
|
}, _react["default"].createElement(_reactNative.View, {
|
|
@@ -575,7 +577,7 @@ var MessageWithContext = function MessageWithContext(props) {
|
|
|
575
577
|
__self: _this,
|
|
576
578
|
__source: {
|
|
577
579
|
fileName: _jsxFileName,
|
|
578
|
-
lineNumber:
|
|
580
|
+
lineNumber: 702,
|
|
579
581
|
columnNumber: 9
|
|
580
582
|
}
|
|
581
583
|
}, _react["default"].createElement(_MessageContext.MessageProvider, {
|
|
@@ -583,14 +585,14 @@ var MessageWithContext = function MessageWithContext(props) {
|
|
|
583
585
|
__self: _this,
|
|
584
586
|
__source: {
|
|
585
587
|
fileName: _jsxFileName,
|
|
586
|
-
lineNumber:
|
|
588
|
+
lineNumber: 709,
|
|
587
589
|
columnNumber: 11
|
|
588
590
|
}
|
|
589
591
|
}, _react["default"].createElement(MessageSimple, {
|
|
590
592
|
__self: _this,
|
|
591
593
|
__source: {
|
|
592
594
|
fileName: _jsxFileName,
|
|
593
|
-
lineNumber:
|
|
595
|
+
lineNumber: 710,
|
|
594
596
|
columnNumber: 13
|
|
595
597
|
}
|
|
596
598
|
})))));
|
|
@@ -599,21 +601,21 @@ var MessageWithContext = function MessageWithContext(props) {
|
|
|
599
601
|
var areEqual = function areEqual(prevProps, nextProps) {
|
|
600
602
|
var _prevMessage$quoted_m, _nextMessage$quoted_m, _prevMessage$quoted_m2, _nextMessage$quoted_m2, _prevMessage$user, _nextMessage$user;
|
|
601
603
|
|
|
602
|
-
var
|
|
604
|
+
var prevMutedUsers = prevProps.chatContext.mutedUsers,
|
|
605
|
+
prevGoToMessage = prevProps.goToMessage,
|
|
603
606
|
isAttachmentEqual = prevProps.isAttachmentEqual,
|
|
604
607
|
prevIsTargetedMessage = prevProps.isTargetedMessage,
|
|
605
608
|
prevLastReceivedId = prevProps.lastReceivedId,
|
|
606
609
|
prevMembers = prevProps.members,
|
|
607
610
|
prevMessage = prevProps.message,
|
|
608
|
-
prevMutedUsers = prevProps.mutedUsers,
|
|
609
611
|
prevShowUnreadUnderlay = prevProps.showUnreadUnderlay,
|
|
610
612
|
prevT = prevProps.t;
|
|
611
|
-
var
|
|
613
|
+
var nextMutedUsers = nextProps.chatContext.mutedUsers,
|
|
614
|
+
nextGoToMessage = nextProps.goToMessage,
|
|
612
615
|
nextIsTargetedMessage = nextProps.isTargetedMessage,
|
|
613
616
|
nextLastReceivedId = nextProps.lastReceivedId,
|
|
614
617
|
nextMembers = nextProps.members,
|
|
615
618
|
nextMessage = nextProps.message,
|
|
616
|
-
nextMutedUsers = nextProps.mutedUsers,
|
|
617
619
|
nextShowUnreadUnderlay = nextProps.showUnreadUnderlay,
|
|
618
620
|
nextT = nextProps.t;
|
|
619
621
|
var membersEqual = Object.keys(prevMembers).length === Object.keys(nextMembers).length;
|
|
@@ -677,9 +679,7 @@ var Message = function Message(props) {
|
|
|
677
679
|
enforceUniqueReaction = _useChannelContext.enforceUniqueReaction,
|
|
678
680
|
members = _useChannelContext.members;
|
|
679
681
|
|
|
680
|
-
var
|
|
681
|
-
client = _useChatContext.client,
|
|
682
|
-
mutedUsers = _useChatContext.mutedUsers;
|
|
682
|
+
var chatContext = (0, _ChatContext.useChatContext)();
|
|
683
683
|
|
|
684
684
|
var _useKeyboardContext = (0, _KeyboardContext.useKeyboardContext)(),
|
|
685
685
|
dismissKeyboard = _useKeyboardContext.dismissKeyboard;
|
|
@@ -700,13 +700,12 @@ var Message = function Message(props) {
|
|
|
700
700
|
|
|
701
701
|
return _react["default"].createElement(MemoizedMessage, (0, _extends2["default"])({}, messagesContext, {
|
|
702
702
|
channel: channel,
|
|
703
|
-
|
|
703
|
+
chatContext: chatContext,
|
|
704
704
|
disabled: disabled,
|
|
705
705
|
dismissKeyboard: dismissKeyboard,
|
|
706
706
|
enforceUniqueReaction: enforceUniqueReaction,
|
|
707
707
|
members: members,
|
|
708
708
|
messagesContext: messagesContext,
|
|
709
|
-
mutedUsers: mutedUsers,
|
|
710
709
|
openThread: openThread,
|
|
711
710
|
setData: setData,
|
|
712
711
|
setOverlay: setOverlay,
|
|
@@ -715,7 +714,7 @@ var Message = function Message(props) {
|
|
|
715
714
|
__self: _this,
|
|
716
715
|
__source: {
|
|
717
716
|
fileName: _jsxFileName,
|
|
718
|
-
lineNumber:
|
|
717
|
+
lineNumber: 870,
|
|
719
718
|
columnNumber: 5
|
|
720
719
|
}
|
|
721
720
|
}));
|