stream-chat-react-native-core 5.1.1-beta.1 → 5.3.0-beta.1
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/ChannelListMessenger.js +32 -15
- package/lib/commonjs/components/ChannelList/ChannelListMessenger.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 +20 -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/MessageList/MessageList.js +39 -26
- package/lib/commonjs/components/MessageList/MessageList.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/components/MessageOverlay/OverlayReactions.js +19 -19
- package/lib/commonjs/components/MessageOverlay/OverlayReactions.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/debugContext/DebugContext.js +63 -0
- package/lib/commonjs/contexts/debugContext/DebugContext.js.map +1 -0
- package/lib/commonjs/contexts/index.js +13 -0
- package/lib/commonjs/contexts/index.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/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/ChannelListMessenger.js +32 -15
- package/lib/module/components/ChannelList/ChannelListMessenger.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 +20 -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/MessageList/MessageList.js +39 -26
- package/lib/module/components/MessageList/MessageList.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/components/MessageOverlay/OverlayReactions.js +19 -19
- package/lib/module/components/MessageOverlay/OverlayReactions.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/debugContext/DebugContext.js +63 -0
- package/lib/module/contexts/debugContext/DebugContext.js.map +1 -0
- package/lib/module/contexts/index.js +13 -0
- package/lib/module/contexts/index.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/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/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/components/MessageOverlay/OverlayReactions.d.ts +1 -0
- package/lib/typescript/contexts/chatContext/ChatContext.d.ts +3 -1
- package/lib/typescript/contexts/debugContext/DebugContext.d.ts +27 -0
- package/lib/typescript/contexts/index.d.ts +1 -0
- package/lib/typescript/contexts/messageOverlayContext/MessageOverlayContext.d.ts +4 -0
- package/package.json +2 -2
- 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/ChannelListMessenger.tsx +17 -0
- package/src/components/ChannelList/hooks/listeners/__tests__/useChannelUpdated.test.tsx +2 -1
- package/src/components/ChannelPreview/ChannelAvatar.tsx +23 -4
- package/src/components/Chat/Chat.tsx +111 -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/MessageList/MessageList.tsx +15 -0
- package/src/components/MessageOverlay/MessageOverlay.tsx +210 -205
- package/src/components/MessageOverlay/OverlayReactions.tsx +1 -0
- package/src/contexts/chatContext/ChatContext.tsx +3 -1
- package/src/contexts/debugContext/DebugContext.tsx +77 -0
- package/src/contexts/index.ts +1 -0
- package/src/contexts/messageOverlayContext/MessageOverlayContext.tsx +8 -1
- package/src/version.json +1 -1
|
@@ -41,6 +41,8 @@ var getInitials = function getInitials(fullName) {
|
|
|
41
41
|
|
|
42
42
|
var GroupAvatar = function GroupAvatar(props) {
|
|
43
43
|
var containerStyle = props.containerStyle,
|
|
44
|
+
_props$ImageComponent = props.ImageComponent,
|
|
45
|
+
ImageComponent = _props$ImageComponent === void 0 ? _reactNative.Image : _props$ImageComponent,
|
|
44
46
|
images = props.images,
|
|
45
47
|
names = props.names,
|
|
46
48
|
size = props.size,
|
|
@@ -129,7 +131,7 @@ var GroupAvatar = function GroupAvatar(props) {
|
|
|
129
131
|
name = _ref.name,
|
|
130
132
|
url = _ref.url,
|
|
131
133
|
width = _ref.width;
|
|
132
|
-
return _react["default"].createElement(
|
|
134
|
+
return _react["default"].createElement(ImageComponent, {
|
|
133
135
|
accessibilityLabel: testID || 'Avatar Image',
|
|
134
136
|
key: "avatar-" + url + "-" + rowIndex,
|
|
135
137
|
onError: function onError() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["GroupAvatar.tsx"],"names":["randomImageBaseUrl","randomSvgBaseUrl","streamCDN","styles","StyleSheet","create","container","overflow","flex","getInitials","fullName","split","slice","map","name","charAt","join","GroupAvatar","props","containerStyle","images","names","size","testID","theme","groupAvatar","image","isLoadingImageError","setLoadingImageError","imagesOrNames","avatarImages","reduce","returnArray","currentImage","index","url","startsWith","length","height","width","borderRadius","backgroundColor","column","colIndex","flexDirection","rowIndex","uri","includes","displayName"],"mappings":";;;;;;;;;AAAA;;AACA;;AAEA;;AACA;;AACA;;;;;AAEA,IAAMA,kBAAkB,GAAG,kCAA3B;AACA,IAAMC,gBAAgB,GAAG,kCAAzB;AACA,IAAMC,SAAS,GAAG,mBAAlB;;AAEA,IAAMC,MAAM,GAAGC,wBAAWC,MAAX,CAAkB;AAC/BC,EAAAA,SAAS,EAAE;AACTC,IAAAA,QAAQ,EAAE;AADD,GADoB;AAI/BC,EAAAA,IAAI,EAAE;AAAEA,IAAAA,IAAI,EAAE;AAAR;AAJyB,CAAlB,CAAf;;AAOA,IAAMC,WAAW,GAAG,SAAdA,WAAc,CAACC,QAAD;AAAA,SAClBA,QAAQ,CACLC,KADH,CACS,GADT,EAEGC,KAFH,CAES,CAFT,EAEY,CAFZ,EAGGC,GAHH,CAGO,UAACC,IAAD;AAAA,WAAUA,IAAI,CAACC,MAAL,CAAY,CAAZ,CAAV;AAAA,GAHP,EAIGC,IAJH,CAIQ,GAJR,CADkB;AAAA,CAApB;;AAqBO,IAAMC,WAAuC,GAAG,SAA1CA,WAA0C,CAACC,KAAD,EAAW;AAChE,MAAQC,cAAR,GAAwDD,KAAxD,CAAQC,cAAR;AAAA,MAAwBC,MAAxB,GAAwDF,KAAxD,CAAwBE,MAAxB;AAAA,MAAgCC,KAAhC,GAAwDH,KAAxD,CAAgCG,KAAhC;AAAA,MAAuCC,IAAvC,GAAwDJ,KAAxD,CAAuCI,IAAvC;AAAA,MAA6CC,MAA7C,GAAwDL,KAAxD,CAA6CK,MAA7C;;AACA,kBAII,6BAJJ;AAAA,wCACEC,KADF,CAEIC,WAFJ;AAAA,MAEmBnB,SAFnB,yBAEmBA,SAFnB;AAAA,MAE8BoB,KAF9B,yBAE8BA,KAF9B;;AAMA,yBAAsD,wCAAtD;AAAA,MAAQC,mBAAR,oBAAQA,mBAAR;AAAA,MAA6BC,oBAA7B,oBAA6BA,oBAA7B;;AAaA,MAAMC,aAAa,GAAGT,MAAM,IAAIC,KAAV,IAAmB,EAAzC;AACA,MAAMS,YAAY,GAAGD,aAAa,CAACjB,KAAd,CAAoB,CAApB,EAAuB,CAAvB,EAA0BmB,MAA1B,CAAiC,UAACC,WAAD,EAAcC,YAAd,EAA4BC,KAA5B,EAAsC;AAC1F,QAAMC,GAAG,GAAGF,YAAY,CAACG,UAAb,CAAwB,MAAxB,IACRH,YADQ,QAELjC,kBAFK,IAGNqB,KAAK,cACQZ,WAAW,CAACY,KAAK,CAACa,KAAD,CAAN,CADnB,eAECL,aAAa,CAACQ,MAAd,IAAwB,CAAxB,GAA4Bf,IAA5B,GAAmCA,IAAI,GAAG,CAF3C,IAID,EAPE,CAAZ;;AASA,QAAIO,aAAa,CAACQ,MAAd,IAAwB,CAA5B,EAA+B;AAC7BL,MAAAA,WAAW,CAAC,CAAD,CAAX,iDACMA,WAAW,CAAC,CAAD,CAAX,IAAkB,EADxB,IAEE;AACEM,QAAAA,MAAM,EAAET,aAAa,CAACQ,MAAd,KAAyB,CAAzB,GAA6Bf,IAA7B,GAAoCA,IAAI,GAAG,CADrD;AAEER,QAAAA,IAAI,EAAEO,KAAK,GAAGA,KAAK,CAACa,KAAD,CAAR,GAAkB,EAF/B;AAGEC,QAAAA,GAAG,EAAHA,GAHF;AAIEI,QAAAA,KAAK,EAAEjB;AAJT,OAFF;AASD,KAVD,MAUO;AACL,UAAIY,KAAK,GAAG,CAAZ,EAAe;AACbF,QAAAA,WAAW,CAAC,CAAD,CAAX,iDACMA,WAAW,CAAC,CAAD,CAAX,IAAkB,EADxB,IAEE;AACEM,UAAAA,MAAM,EAAEhB,IAAI,GAAG,CADjB;AAEER,UAAAA,IAAI,EAAEO,KAAK,GAAGA,KAAK,CAACa,KAAD,CAAR,GAAkB,EAF/B;AAGEC,UAAAA,GAAG,EAAHA,GAHF;AAIEI,UAAAA,KAAK,EAAEjB,IAAI,GAAG;AAJhB,SAFF;AASD,OAVD,MAUO;AACLU,QAAAA,WAAW,CAAC,CAAD,CAAX,iDACMA,WAAW,CAAC,CAAD,CAAX,IAAkB,EADxB,IAEE;AACEM,UAAAA,MAAM,EAAEhB,IAAI,GAAG,CADjB;AAEER,UAAAA,IAAI,EAAEO,KAAK,GAAGA,KAAK,CAACa,KAAD,CAAR,GAAkB,EAF/B;AAGEC,UAAAA,GAAG,EAAHA,GAHF;AAIEI,UAAAA,KAAK,EAAEV,aAAa,CAACQ,MAAd,KAAyB,CAAzB,GAA6Bf,IAA7B,GAAoCA,IAAI,GAAG;AAJpD,SAFF;AASD;AACF;;AACD,WAAOU,WAAP;AACD,GA5CoB,EA4ClB,EA5CkB,CAArB;AA8CA,SACE,gCAAC,iBAAD;AACE,IAAA,KAAK,EAAE,CACL7B,MAAM,CAACG,SADF,EAEL;AAAEkC,MAAAA,YAAY,EAAElB,IAAI,GAAG,CAAvB;AAA0BgB,MAAAA,MAAM,EAAEhB,IAAlC;AAAwCiB,MAAAA,KAAK,EAAEjB;AAA/C,KAFK,EAGLhB,SAHK,EAILa,cAJK,CADT;AAOE,IAAA,MAAM,EAAEI,MAAM,IAAI,cAPpB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KASGI,mBAAmB,GAClB,gCAAC,iBAAD;AACE,IAAA,KAAK,EAAE;AACLc,MAAAA,eAAe,EAAE,SADZ;AAELD,MAAAA,YAAY,EAAElB,IAAI,GAAG,CAFhB;AAGLgB,MAAAA,MAAM,EAAEhB,IAHH;AAILiB,MAAAA,KAAK,EAAEjB;AAJF,KADT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IADkB,GAUlBQ,YAAY,CAACjB,GAAb,CAAiB,UAAC6B,MAAD,EAASC,QAAT;AAAA,WACf,gCAAC,iBAAD;AACE,MAAA,GAAG,qBAAmBA,QADxB;AAEE,MAAA,KAAK,EAAE,CACLxC,MAAM,CAACK,IADF,EAEL;AACEoC,QAAAA,aAAa,EAAEf,aAAa,CAACQ,MAAd,KAAyB,CAAzB,GAA6B,QAA7B,GAAwC;AADzD,OAFK,CAFT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,OASGK,MAAM,CAAC7B,GAAP,CAAW,gBAA+BgC,QAA/B;AAAA,UAAGP,MAAH,QAAGA,MAAH;AAAA,UAAWxB,IAAX,QAAWA,IAAX;AAAA,UAAiBqB,GAAjB,QAAiBA,GAAjB;AAAA,UAAsBI,KAAtB,QAAsBA,KAAtB;AAAA,aACV,gCAAC,kBAAD;AACE,QAAA,kBAAkB,EAAEhB,MAAM,IAAI,cADhC;AAEE,QAAA,GAAG,cAAYY,GAAZ,SAAmBU,QAFxB;AAGE,QAAA,OAAO,EAAE;AAAA,iBAAMjB,oBAAoB,CAAC,IAAD,CAA1B;AAAA,SAHX;AAIE,QAAA,MAAM,EAAE;AACNkB,UAAAA,GAAG,EAAEX,GAAG,CAACY,QAAJ,CAAa9C,gBAAb,IACDkC,GAAG,CAACY,QAAJ,CAAa7C,SAAb,IACEiC,GADF,QAEKnC,kBAFL,IAGIc,IAAI,cAAYL,WAAW,CAACK,IAAD,CAAvB,cAAsCwB,MAAtC,GAAiD,EAHzD,CADC,GAMD,4CAAmB;AACjBA,YAAAA,MAAM,EAANA,MADiB;AAEjBH,YAAAA,GAAG,EAAHA,GAFiB;AAGjBI,YAAAA,KAAK,EAALA;AAHiB,WAAnB;AAPE,SAJV;AAiBE,QAAA,KAAK,EAAE,CACLb,KADK,EAELJ,IAAI,GACA;AACEmB,UAAAA,eAAe,EAAE,SADnB;AAEEH,UAAAA,MAAM,EAANA,MAFF;AAGEC,UAAAA,KAAK,EAALA;AAHF,SADA,GAMA,EARC,CAjBT;AA2BE,QAAA,MAAM,0BAAwBI,QAAxB,SAAoCE,QA3B5C;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QADU;AAAA,KAAX,CATH,CADe;AAAA,GAAjB,CAnBJ,CADF;AAkED,CAtIM;;;AAwIP5B,WAAW,CAAC+B,WAAZ,GAA0B,0BAA1B","sourcesContent":["import React from 'react';\nimport { Image, StyleProp, StyleSheet, View, ViewStyle } from 'react-native';\n\nimport { useTheme } from '../../contexts/themeContext/ThemeContext';\nimport { useLoadingImage } from '../../hooks/useLoadingImage';\nimport { getResizedImageUrl } from '../../utils/getResizedImageUrl';\n\nconst randomImageBaseUrl = 'https://getstream.io/random_png/';\nconst randomSvgBaseUrl = 'https://getstream.io/random_svg/';\nconst streamCDN = 'stream-io-cdn.com';\n\nconst styles = StyleSheet.create({\n container: {\n overflow: 'hidden',\n },\n flex: { flex: 1 },\n});\n\nconst getInitials = (fullName: string) =>\n fullName\n .split(' ')\n .slice(0, 2)\n .map((name) => name.charAt(0))\n .join(' ');\n\nexport type GroupAvatarProps = {\n /** total size in pixels */\n size: number;\n containerStyle?: StyleProp<ViewStyle>;\n /** image urls */\n images?: string[];\n /** name of the users, used for fallback */\n names?: string[];\n testID?: string;\n};\n\n/**\n * GroupAvatar - A round group of avatar images with fallbacks to users' initials\n */\nexport const GroupAvatar: React.FC<GroupAvatarProps> = (props) => {\n const { containerStyle, images, names, size, testID } = props;\n const {\n theme: {\n groupAvatar: { container, image },\n },\n } = useTheme();\n\n const { isLoadingImageError, setLoadingImageError } = useLoadingImage();\n /**\n * [\n * [\n * { height: number; name: string; url: string; width: number },\n * { height: number; name: string; url: string; width: number },\n * ],\n * [\n * { height: number; name: string; url: string; width: number },\n * { height: number; name: string; url: string; width: number },\n * ],\n * ]\n */\n const imagesOrNames = images || names || [];\n const avatarImages = imagesOrNames.slice(0, 4).reduce((returnArray, currentImage, index) => {\n const url = currentImage.startsWith('http')\n ? currentImage\n : `${randomImageBaseUrl}${\n names\n ? `?name=${getInitials(names[index])}&size=${\n imagesOrNames.length <= 2 ? size : size / 2\n }`\n : ''\n }`;\n if (imagesOrNames.length <= 2) {\n returnArray[0] = [\n ...(returnArray[0] || []),\n {\n height: imagesOrNames.length === 1 ? size : size / 2,\n name: names ? names[index] : '',\n url,\n width: size,\n },\n ];\n } else {\n if (index < 2) {\n returnArray[0] = [\n ...(returnArray[0] || []),\n {\n height: size / 2,\n name: names ? names[index] : '',\n url,\n width: size / 2,\n },\n ];\n } else {\n returnArray[1] = [\n ...(returnArray[1] || []),\n {\n height: size / 2,\n name: names ? names[index] : '',\n url,\n width: imagesOrNames.length === 3 ? size : size / 2,\n },\n ];\n }\n }\n return returnArray;\n }, [] as { height: number; name: string; url: string; width: number }[][]);\n\n return (\n <View\n style={[\n styles.container,\n { borderRadius: size / 2, height: size, width: size },\n container,\n containerStyle,\n ]}\n testID={testID || 'group-avatar'}\n >\n {isLoadingImageError ? (\n <View\n style={{\n backgroundColor: '#ececec',\n borderRadius: size / 2,\n height: size,\n width: size,\n }}\n />\n ) : (\n avatarImages.map((column, colIndex) => (\n <View\n key={`avatar-column-${colIndex}`}\n style={[\n styles.flex,\n {\n flexDirection: imagesOrNames.length === 2 ? 'column' : 'row',\n },\n ]}\n >\n {column.map(({ height, name, url, width }, rowIndex) => (\n <Image\n accessibilityLabel={testID || 'Avatar Image'}\n key={`avatar-${url}-${rowIndex}`}\n onError={() => setLoadingImageError(true)}\n source={{\n uri: url.includes(randomSvgBaseUrl)\n ? url.includes(streamCDN)\n ? url\n : `${randomImageBaseUrl}${\n name ? `?name=${getInitials(name)}&size=${height}` : ''\n }`\n : getResizedImageUrl({\n height,\n url,\n width,\n }),\n }}\n style={[\n image,\n size\n ? {\n backgroundColor: '#ececec',\n height,\n width,\n }\n : {},\n ]}\n testID={`group-avatar-image-${colIndex}-${rowIndex}`}\n />\n ))}\n </View>\n ))\n )}\n </View>\n );\n};\n\nGroupAvatar.displayName = 'GroupAvatar{groupAvatar}';\n"]}
|
|
1
|
+
{"version":3,"sources":["GroupAvatar.tsx"],"names":["randomImageBaseUrl","randomSvgBaseUrl","streamCDN","styles","StyleSheet","create","container","overflow","flex","getInitials","fullName","split","slice","map","name","charAt","join","GroupAvatar","props","containerStyle","ImageComponent","Image","images","names","size","testID","theme","groupAvatar","image","isLoadingImageError","setLoadingImageError","imagesOrNames","avatarImages","reduce","returnArray","currentImage","index","url","startsWith","length","height","width","borderRadius","backgroundColor","column","colIndex","flexDirection","rowIndex","uri","includes","displayName"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { Image, ImageProps, StyleProp, StyleSheet, View, ViewStyle } from 'react-native';\n\nimport { useTheme } from '../../contexts/themeContext/ThemeContext';\nimport { useLoadingImage } from '../../hooks/useLoadingImage';\nimport { getResizedImageUrl } from '../../utils/getResizedImageUrl';\nconst randomImageBaseUrl = 'https://getstream.io/random_png/';\nconst randomSvgBaseUrl = 'https://getstream.io/random_svg/';\nconst streamCDN = 'stream-io-cdn.com';\n\nconst styles = StyleSheet.create({\n container: {\n overflow: 'hidden',\n },\n flex: { flex: 1 },\n});\n\nconst getInitials = (fullName: string) =>\n fullName\n .split(' ')\n .slice(0, 2)\n .map((name) => name.charAt(0))\n .join(' ');\n\nexport type GroupAvatarProps = {\n /** total size in pixels */\n size: number;\n containerStyle?: StyleProp<ViewStyle>;\n ImageComponent?: React.ComponentType<ImageProps>;\n /** image urls */\n images?: string[];\n /** name of the users, used for fallback */\n names?: string[];\n testID?: string;\n};\n\n/**\n * GroupAvatar - A round group of avatar images with fallbacks to users' initials\n */\nexport const GroupAvatar: React.FC<GroupAvatarProps> = (props) => {\n const { containerStyle, ImageComponent = Image, images, names, size, testID } = props;\n const {\n theme: {\n groupAvatar: { container, image },\n },\n } = useTheme();\n\n const { isLoadingImageError, setLoadingImageError } = useLoadingImage();\n /**\n * [\n * [\n * { height: number; name: string; url: string; width: number },\n * { height: number; name: string; url: string; width: number },\n * ],\n * [\n * { height: number; name: string; url: string; width: number },\n * { height: number; name: string; url: string; width: number },\n * ],\n * ]\n */\n const imagesOrNames = images || names || [];\n const avatarImages = imagesOrNames.slice(0, 4).reduce((returnArray, currentImage, index) => {\n const url = currentImage.startsWith('http')\n ? currentImage\n : `${randomImageBaseUrl}${\n names\n ? `?name=${getInitials(names[index])}&size=${\n imagesOrNames.length <= 2 ? size : size / 2\n }`\n : ''\n }`;\n if (imagesOrNames.length <= 2) {\n returnArray[0] = [\n ...(returnArray[0] || []),\n {\n height: imagesOrNames.length === 1 ? size : size / 2,\n name: names ? names[index] : '',\n url,\n width: size,\n },\n ];\n } else {\n if (index < 2) {\n returnArray[0] = [\n ...(returnArray[0] || []),\n {\n height: size / 2,\n name: names ? names[index] : '',\n url,\n width: size / 2,\n },\n ];\n } else {\n returnArray[1] = [\n ...(returnArray[1] || []),\n {\n height: size / 2,\n name: names ? names[index] : '',\n url,\n width: imagesOrNames.length === 3 ? size : size / 2,\n },\n ];\n }\n }\n return returnArray;\n }, [] as { height: number; name: string; url: string; width: number }[][]);\n\n return (\n <View\n style={[\n styles.container,\n { borderRadius: size / 2, height: size, width: size },\n container,\n containerStyle,\n ]}\n testID={testID || 'group-avatar'}\n >\n {isLoadingImageError ? (\n <View\n style={{\n backgroundColor: '#ececec',\n borderRadius: size / 2,\n height: size,\n width: size,\n }}\n />\n ) : (\n avatarImages.map((column, colIndex) => (\n <View\n key={`avatar-column-${colIndex}`}\n style={[\n styles.flex,\n {\n flexDirection: imagesOrNames.length === 2 ? 'column' : 'row',\n },\n ]}\n >\n {column.map(({ height, name, url, width }, rowIndex) => (\n <ImageComponent\n accessibilityLabel={testID || 'Avatar Image'}\n key={`avatar-${url}-${rowIndex}`}\n onError={() => setLoadingImageError(true)}\n source={{\n uri: url.includes(randomSvgBaseUrl)\n ? url.includes(streamCDN)\n ? url\n : `${randomImageBaseUrl}${\n name ? `?name=${getInitials(name)}&size=${height}` : ''\n }`\n : getResizedImageUrl({\n height,\n url,\n width,\n }),\n }}\n style={[\n image,\n size\n ? {\n backgroundColor: '#ececec',\n height,\n width,\n }\n : {},\n ]}\n testID={`group-avatar-image-${colIndex}-${rowIndex}`}\n />\n ))}\n </View>\n ))\n )}\n </View>\n );\n};\n\nGroupAvatar.displayName = 'GroupAvatar{groupAvatar}';\n"]}
|
|
@@ -19,6 +19,8 @@ var _ChannelsContext = require("../../contexts/channelsContext/ChannelsContext")
|
|
|
19
19
|
|
|
20
20
|
var _ChatContext = require("../../contexts/chatContext/ChatContext");
|
|
21
21
|
|
|
22
|
+
var _DebugContext = require("../../contexts/debugContext/DebugContext");
|
|
23
|
+
|
|
22
24
|
var _ThemeContext = require("../../contexts/themeContext/ThemeContext");
|
|
23
25
|
|
|
24
26
|
var _ChannelPreview = require("../ChannelPreview/ChannelPreview");
|
|
@@ -64,14 +66,14 @@ var StatusIndicator = function StatusIndicator() {
|
|
|
64
66
|
__self: _this,
|
|
65
67
|
__source: {
|
|
66
68
|
fileName: _jsxFileName,
|
|
67
|
-
lineNumber:
|
|
69
|
+
lineNumber: 54,
|
|
68
70
|
columnNumber: 7
|
|
69
71
|
}
|
|
70
72
|
}, _react["default"].createElement(HeaderNetworkDownIndicator, {
|
|
71
73
|
__self: _this,
|
|
72
74
|
__source: {
|
|
73
75
|
fileName: _jsxFileName,
|
|
74
|
-
lineNumber:
|
|
76
|
+
lineNumber: 55,
|
|
75
77
|
columnNumber: 9
|
|
76
78
|
}
|
|
77
79
|
}));
|
|
@@ -81,7 +83,7 @@ var StatusIndicator = function StatusIndicator() {
|
|
|
81
83
|
__self: _this,
|
|
82
84
|
__source: {
|
|
83
85
|
fileName: _jsxFileName,
|
|
84
|
-
lineNumber:
|
|
86
|
+
lineNumber: 60,
|
|
85
87
|
columnNumber: 7
|
|
86
88
|
}
|
|
87
89
|
}, _react["default"].createElement(HeaderErrorIndicator, {
|
|
@@ -89,7 +91,7 @@ var StatusIndicator = function StatusIndicator() {
|
|
|
89
91
|
__self: _this,
|
|
90
92
|
__source: {
|
|
91
93
|
fileName: _jsxFileName,
|
|
92
|
-
lineNumber:
|
|
94
|
+
lineNumber: 61,
|
|
93
95
|
columnNumber: 9
|
|
94
96
|
}
|
|
95
97
|
}));
|
|
@@ -105,7 +107,7 @@ var renderItem = function renderItem(_ref) {
|
|
|
105
107
|
__self: _this,
|
|
106
108
|
__source: {
|
|
107
109
|
fileName: _jsxFileName,
|
|
108
|
-
lineNumber:
|
|
110
|
+
lineNumber: 74,
|
|
109
111
|
columnNumber: 7
|
|
110
112
|
}
|
|
111
113
|
});
|
|
@@ -146,11 +148,26 @@ var ChannelListMessengerWithContext = function ChannelListMessengerWithContext(p
|
|
|
146
148
|
loading = _useState2[0],
|
|
147
149
|
setLoading = _useState2[1];
|
|
148
150
|
|
|
151
|
+
var debugRef = (0, _DebugContext.useDebugContext)();
|
|
149
152
|
(0, _react.useEffect)(function () {
|
|
150
153
|
if (!!loadingChannels !== loading) {
|
|
151
154
|
setLoading(!!loadingChannels);
|
|
152
155
|
}
|
|
153
156
|
}, [loading, loadingChannels]);
|
|
157
|
+
var isDebugModeEnabled = __DEV__ && debugRef && debugRef.current;
|
|
158
|
+
|
|
159
|
+
if (isDebugModeEnabled) {
|
|
160
|
+
if (debugRef.current.setEventType) debugRef.current.setEventType('send');
|
|
161
|
+
if (debugRef.current.setSendEventParams) debugRef.current.setSendEventParams({
|
|
162
|
+
action: 'Channels',
|
|
163
|
+
data: channels.map(function (channel) {
|
|
164
|
+
return {
|
|
165
|
+
data: channel.data,
|
|
166
|
+
members: channel.state.members
|
|
167
|
+
};
|
|
168
|
+
})
|
|
169
|
+
});
|
|
170
|
+
}
|
|
154
171
|
|
|
155
172
|
if (error && !refreshing && !loadingChannels && !(channels != null && channels.length)) {
|
|
156
173
|
return _react["default"].createElement(LoadingErrorIndicator, {
|
|
@@ -161,7 +178,7 @@ var ChannelListMessengerWithContext = function ChannelListMessengerWithContext(p
|
|
|
161
178
|
__self: _this,
|
|
162
179
|
__source: {
|
|
163
180
|
fileName: _jsxFileName,
|
|
164
|
-
lineNumber:
|
|
181
|
+
lineNumber: 144,
|
|
165
182
|
columnNumber: 7
|
|
166
183
|
}
|
|
167
184
|
});
|
|
@@ -178,7 +195,7 @@ var ChannelListMessengerWithContext = function ChannelListMessengerWithContext(p
|
|
|
178
195
|
__self: _this,
|
|
179
196
|
__source: {
|
|
180
197
|
fileName: _jsxFileName,
|
|
181
|
-
lineNumber:
|
|
198
|
+
lineNumber: 160,
|
|
182
199
|
columnNumber: 46
|
|
183
200
|
}
|
|
184
201
|
}) : null;
|
|
@@ -190,7 +207,7 @@ var ChannelListMessengerWithContext = function ChannelListMessengerWithContext(p
|
|
|
190
207
|
__self: _this,
|
|
191
208
|
__source: {
|
|
192
209
|
fileName: _jsxFileName,
|
|
193
|
-
lineNumber:
|
|
210
|
+
lineNumber: 163,
|
|
194
211
|
columnNumber: 12
|
|
195
212
|
}
|
|
196
213
|
});
|
|
@@ -208,7 +225,7 @@ var ChannelListMessengerWithContext = function ChannelListMessengerWithContext(p
|
|
|
208
225
|
__self: _this,
|
|
209
226
|
__source: {
|
|
210
227
|
fileName: _jsxFileName,
|
|
211
|
-
lineNumber:
|
|
228
|
+
lineNumber: 179,
|
|
212
229
|
columnNumber: 13
|
|
213
230
|
}
|
|
214
231
|
}) : _react["default"].createElement(EmptyStateIndicator, {
|
|
@@ -216,7 +233,7 @@ var ChannelListMessengerWithContext = function ChannelListMessengerWithContext(p
|
|
|
216
233
|
__self: _this,
|
|
217
234
|
__source: {
|
|
218
235
|
fileName: _jsxFileName,
|
|
219
|
-
lineNumber:
|
|
236
|
+
lineNumber: 181,
|
|
220
237
|
columnNumber: 13
|
|
221
238
|
}
|
|
222
239
|
}),
|
|
@@ -224,7 +241,7 @@ var ChannelListMessengerWithContext = function ChannelListMessengerWithContext(p
|
|
|
224
241
|
__self: _this,
|
|
225
242
|
__source: {
|
|
226
243
|
fileName: _jsxFileName,
|
|
227
|
-
lineNumber:
|
|
244
|
+
lineNumber: 184,
|
|
228
245
|
columnNumber: 48
|
|
229
246
|
}
|
|
230
247
|
}) : undefined,
|
|
@@ -238,7 +255,7 @@ var ChannelListMessengerWithContext = function ChannelListMessengerWithContext(p
|
|
|
238
255
|
__self: _this,
|
|
239
256
|
__source: {
|
|
240
257
|
fileName: _jsxFileName,
|
|
241
|
-
lineNumber:
|
|
258
|
+
lineNumber: 189,
|
|
242
259
|
columnNumber: 25
|
|
243
260
|
}
|
|
244
261
|
}),
|
|
@@ -251,14 +268,14 @@ var ChannelListMessengerWithContext = function ChannelListMessengerWithContext(p
|
|
|
251
268
|
__self: _this,
|
|
252
269
|
__source: {
|
|
253
270
|
fileName: _jsxFileName,
|
|
254
|
-
lineNumber:
|
|
271
|
+
lineNumber: 168,
|
|
255
272
|
columnNumber: 7
|
|
256
273
|
}
|
|
257
274
|
})), _react["default"].createElement(StatusIndicator, {
|
|
258
275
|
__self: _this,
|
|
259
276
|
__source: {
|
|
260
277
|
fileName: _jsxFileName,
|
|
261
|
-
lineNumber:
|
|
278
|
+
lineNumber: 195,
|
|
262
279
|
columnNumber: 7
|
|
263
280
|
}
|
|
264
281
|
}));
|
|
@@ -306,7 +323,7 @@ var ChannelListMessenger = function ChannelListMessenger(props) {
|
|
|
306
323
|
__self: _this,
|
|
307
324
|
__source: {
|
|
308
325
|
fileName: _jsxFileName,
|
|
309
|
-
lineNumber:
|
|
326
|
+
lineNumber: 236,
|
|
310
327
|
columnNumber: 5
|
|
311
328
|
}
|
|
312
329
|
}));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["ChannelListMessenger.tsx"],"names":["styles","StyleSheet","create","flatList","flex","flatListContentContainer","flexGrow","statusIndicator","left","position","right","top","StatusIndicator","isOnline","error","HeaderErrorIndicator","HeaderNetworkDownIndicator","loadingChannels","refreshList","renderItem","item","keyExtractor","cid","ChannelListMessengerWithContext","props","additionalFlatListProps","channels","EmptyStateIndicator","FooterLoadingIndicator","forceUpdate","ListHeaderComponent","LoadingErrorIndicator","LoadingIndicator","loadingNextPage","loadMoreThreshold","loadNextPage","refreshing","reloadList","setFlatListRef","theme","channelListMessenger","flatListContent","white_snow","colors","loading","setLoading","length","onEndReached","ListFooterComponent","backgroundColor","undefined","ChannelListMessenger","displayName"],"mappings":"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","sourcesContent":["import React, { useEffect, useState } from 'react';\n// RNGR's FlatList ist currently breaking the pull-to-refresh behaviour on Android\n// See https://github.com/software-mansion/react-native-gesture-handler/issues/598\nimport { FlatList, RefreshControl, StyleSheet, View } from 'react-native';\n\nimport type { Channel } from 'stream-chat';\n\nimport {\n ChannelsContextValue,\n useChannelsContext,\n} from '../../contexts/channelsContext/ChannelsContext';\nimport { useChatContext } from '../../contexts/chatContext/ChatContext';\nimport { useTheme } from '../../contexts/themeContext/ThemeContext';\n\nimport type { DefaultStreamChatGenerics } from '../../types/types';\nimport { ChannelPreview } from '../ChannelPreview/ChannelPreview';\n\nconst styles = StyleSheet.create({\n flatList: { flex: 1 },\n flatListContentContainer: { flexGrow: 1 },\n statusIndicator: { left: 0, position: 'absolute', right: 0, top: 0 },\n});\n\nexport type ChannelListMessengerPropsWithContext<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Omit<\n ChannelsContextValue<StreamChatGenerics>,\n | 'hasNextPage'\n | 'HeaderErrorIndicator'\n | 'HeaderNetworkDownIndicator'\n | 'maxUnreadCount'\n | 'numberOfSkeletons'\n | 'onSelect'\n | 'Preview'\n | 'PreviewTitle'\n | 'PreviewStatus'\n | 'PreviewAvatar'\n | 'previewMessage'\n | 'Skeleton'\n>;\n\nconst StatusIndicator = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>() => {\n const { isOnline } = useChatContext<StreamChatGenerics>();\n const { error, HeaderErrorIndicator, HeaderNetworkDownIndicator, loadingChannels, refreshList } =\n useChannelsContext<StreamChatGenerics>();\n\n if (loadingChannels) return null;\n\n if (!isOnline) {\n return (\n <View style={styles.statusIndicator}>\n <HeaderNetworkDownIndicator />\n </View>\n );\n } else if (error) {\n return (\n <View style={styles.statusIndicator}>\n <HeaderErrorIndicator onPress={refreshList} />\n </View>\n );\n }\n return null;\n};\n\nconst renderItem = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>({\n item,\n}: {\n item: Channel<StreamChatGenerics>;\n}) => <ChannelPreview<StreamChatGenerics> channel={item} />;\n\nconst keyExtractor = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n item: Channel<StreamChatGenerics>,\n) => item.cid;\n\nconst ChannelListMessengerWithContext = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: ChannelListMessengerPropsWithContext<StreamChatGenerics>,\n) => {\n const {\n additionalFlatListProps,\n channels,\n EmptyStateIndicator,\n error,\n FooterLoadingIndicator,\n forceUpdate,\n ListHeaderComponent,\n loadingChannels,\n LoadingErrorIndicator,\n LoadingIndicator,\n loadingNextPage,\n loadMoreThreshold,\n loadNextPage,\n refreshing,\n refreshList,\n reloadList,\n setFlatListRef,\n } = props;\n\n const {\n theme: {\n channelListMessenger: { flatList, flatListContent },\n colors: { white_snow },\n },\n } = useTheme();\n\n /**\n * In order to prevent the EmptyStateIndicator component from showing up briefly on mount,\n * we set the loading state one cycle behind to ensure the channels are set before the\n * change to loadingChannels is registered.\n */\n const [loading, setLoading] = useState(true);\n useEffect(() => {\n if (!!loadingChannels !== loading) {\n setLoading(!!loadingChannels);\n }\n }, [loading, loadingChannels]);\n\n if (error && !refreshing && !loadingChannels && !channels?.length) {\n return (\n <LoadingErrorIndicator\n error={error}\n listType='channel'\n loadNextPage={loadNextPage}\n retry={reloadList}\n />\n );\n }\n\n const onEndReached = () => {\n if (loadNextPage) {\n loadNextPage();\n }\n };\n\n const ListFooterComponent = () =>\n channels.length && ListHeaderComponent ? <ListHeaderComponent /> : null;\n\n if (loadingChannels) {\n return <LoadingIndicator listType='channel' />;\n }\n\n return (\n <>\n <FlatList\n contentContainerStyle={[\n styles.flatListContentContainer,\n { backgroundColor: white_snow },\n flatListContent,\n ]}\n data={channels}\n extraData={forceUpdate}\n keyExtractor={keyExtractor}\n ListEmptyComponent={\n loading ? (\n <LoadingIndicator listType='channel' />\n ) : (\n <EmptyStateIndicator listType='channel' />\n )\n }\n ListFooterComponent={loadingNextPage ? <FooterLoadingIndicator /> : undefined}\n ListHeaderComponent={ListFooterComponent}\n onEndReached={onEndReached}\n onEndReachedThreshold={loadMoreThreshold}\n ref={setFlatListRef}\n refreshControl={<RefreshControl onRefresh={refreshList} refreshing={refreshing} />}\n renderItem={renderItem}\n style={[styles.flatList, { backgroundColor: white_snow }, flatList]}\n testID='channel-list-messenger'\n {...additionalFlatListProps}\n />\n <StatusIndicator<StreamChatGenerics> />\n </>\n );\n};\n\nexport type ChannelListMessengerProps<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Partial<ChannelListMessengerPropsWithContext<StreamChatGenerics>>;\n\n/**\n * This UI component displays the preview list of channels and handles Channel navigation. It\n * receives all props from the ChannelList component.\n *\n * @example ./ChannelListMessenger.md\n */\nexport const ChannelListMessenger = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: ChannelListMessengerProps<StreamChatGenerics>,\n) => {\n const {\n additionalFlatListProps,\n channels,\n EmptyStateIndicator,\n error,\n FooterLoadingIndicator,\n forceUpdate,\n ListHeaderComponent,\n loadingChannels,\n LoadingErrorIndicator,\n LoadingIndicator,\n loadingNextPage,\n loadMoreThreshold,\n loadNextPage,\n refreshing,\n refreshList,\n reloadList,\n setFlatListRef,\n } = useChannelsContext<StreamChatGenerics>();\n\n return (\n <ChannelListMessengerWithContext\n {...{\n additionalFlatListProps,\n channels,\n EmptyStateIndicator,\n error,\n FooterLoadingIndicator,\n forceUpdate,\n ListHeaderComponent,\n loadingChannels,\n LoadingErrorIndicator,\n LoadingIndicator,\n loadingNextPage,\n loadMoreThreshold,\n loadNextPage,\n refreshing,\n refreshList,\n reloadList,\n setFlatListRef,\n }}\n {...props}\n />\n );\n};\n\nChannelListMessenger.displayName = 'ChannelListMessenger{channelListMessenger}';\n"]}
|
|
1
|
+
{"version":3,"sources":["ChannelListMessenger.tsx"],"names":["styles","StyleSheet","create","flatList","flex","flatListContentContainer","flexGrow","statusIndicator","left","position","right","top","StatusIndicator","isOnline","error","HeaderErrorIndicator","HeaderNetworkDownIndicator","loadingChannels","refreshList","renderItem","item","keyExtractor","cid","ChannelListMessengerWithContext","props","additionalFlatListProps","channels","EmptyStateIndicator","FooterLoadingIndicator","forceUpdate","ListHeaderComponent","LoadingErrorIndicator","LoadingIndicator","loadingNextPage","loadMoreThreshold","loadNextPage","refreshing","reloadList","setFlatListRef","theme","channelListMessenger","flatListContent","white_snow","colors","loading","setLoading","debugRef","isDebugModeEnabled","__DEV__","current","setEventType","setSendEventParams","action","data","map","channel","members","state","length","onEndReached","ListFooterComponent","backgroundColor","undefined","ChannelListMessenger","displayName"],"mappings":"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","sourcesContent":["import React, { useEffect, useState } from 'react';\n// RNGR's FlatList ist currently breaking the pull-to-refresh behaviour on Android\n// See https://github.com/software-mansion/react-native-gesture-handler/issues/598\nimport { FlatList, RefreshControl, StyleSheet, View } from 'react-native';\n\nimport type { Channel } from 'stream-chat';\n\nimport {\n ChannelsContextValue,\n useChannelsContext,\n} from '../../contexts/channelsContext/ChannelsContext';\nimport { useChatContext } from '../../contexts/chatContext/ChatContext';\nimport { useDebugContext } from '../../contexts/debugContext/DebugContext';\nimport { useTheme } from '../../contexts/themeContext/ThemeContext';\n\nimport type { DefaultStreamChatGenerics } from '../../types/types';\nimport { ChannelPreview } from '../ChannelPreview/ChannelPreview';\n\nconst styles = StyleSheet.create({\n flatList: { flex: 1 },\n flatListContentContainer: { flexGrow: 1 },\n statusIndicator: { left: 0, position: 'absolute', right: 0, top: 0 },\n});\n\nexport type ChannelListMessengerPropsWithContext<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Omit<\n ChannelsContextValue<StreamChatGenerics>,\n | 'hasNextPage'\n | 'HeaderErrorIndicator'\n | 'HeaderNetworkDownIndicator'\n | 'maxUnreadCount'\n | 'numberOfSkeletons'\n | 'onSelect'\n | 'Preview'\n | 'PreviewTitle'\n | 'PreviewStatus'\n | 'PreviewAvatar'\n | 'previewMessage'\n | 'Skeleton'\n>;\n\nconst StatusIndicator = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>() => {\n const { isOnline } = useChatContext<StreamChatGenerics>();\n const { error, HeaderErrorIndicator, HeaderNetworkDownIndicator, loadingChannels, refreshList } =\n useChannelsContext<StreamChatGenerics>();\n\n if (loadingChannels) return null;\n\n if (!isOnline) {\n return (\n <View style={styles.statusIndicator}>\n <HeaderNetworkDownIndicator />\n </View>\n );\n } else if (error) {\n return (\n <View style={styles.statusIndicator}>\n <HeaderErrorIndicator onPress={refreshList} />\n </View>\n );\n }\n return null;\n};\n\nconst renderItem = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>({\n item,\n}: {\n item: Channel<StreamChatGenerics>;\n}) => <ChannelPreview<StreamChatGenerics> channel={item} />;\n\nconst keyExtractor = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n item: Channel<StreamChatGenerics>,\n) => item.cid;\n\nconst ChannelListMessengerWithContext = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: ChannelListMessengerPropsWithContext<StreamChatGenerics>,\n) => {\n const {\n additionalFlatListProps,\n channels,\n EmptyStateIndicator,\n error,\n FooterLoadingIndicator,\n forceUpdate,\n ListHeaderComponent,\n loadingChannels,\n LoadingErrorIndicator,\n LoadingIndicator,\n loadingNextPage,\n loadMoreThreshold,\n loadNextPage,\n refreshing,\n refreshList,\n reloadList,\n setFlatListRef,\n } = props;\n\n const {\n theme: {\n channelListMessenger: { flatList, flatListContent },\n colors: { white_snow },\n },\n } = useTheme();\n\n /**\n * In order to prevent the EmptyStateIndicator component from showing up briefly on mount,\n * we set the loading state one cycle behind to ensure the channels are set before the\n * change to loadingChannels is registered.\n */\n const [loading, setLoading] = useState(true);\n const debugRef = useDebugContext();\n\n useEffect(() => {\n if (!!loadingChannels !== loading) {\n setLoading(!!loadingChannels);\n }\n }, [loading, loadingChannels]);\n\n const isDebugModeEnabled = __DEV__ && debugRef && debugRef.current;\n\n if (isDebugModeEnabled) {\n if (debugRef.current.setEventType) debugRef.current.setEventType('send');\n if (debugRef.current.setSendEventParams)\n debugRef.current.setSendEventParams({\n action: 'Channels',\n data: channels.map((channel) => ({\n data: channel.data,\n members: channel.state.members,\n })),\n });\n }\n\n if (error && !refreshing && !loadingChannels && !channels?.length) {\n return (\n <LoadingErrorIndicator\n error={error}\n listType='channel'\n loadNextPage={loadNextPage}\n retry={reloadList}\n />\n );\n }\n\n const onEndReached = () => {\n if (loadNextPage) {\n loadNextPage();\n }\n };\n\n const ListFooterComponent = () =>\n channels.length && ListHeaderComponent ? <ListHeaderComponent /> : null;\n\n if (loadingChannels) {\n return <LoadingIndicator listType='channel' />;\n }\n\n return (\n <>\n <FlatList\n contentContainerStyle={[\n styles.flatListContentContainer,\n { backgroundColor: white_snow },\n flatListContent,\n ]}\n data={channels}\n extraData={forceUpdate}\n keyExtractor={keyExtractor}\n ListEmptyComponent={\n loading ? (\n <LoadingIndicator listType='channel' />\n ) : (\n <EmptyStateIndicator listType='channel' />\n )\n }\n ListFooterComponent={loadingNextPage ? <FooterLoadingIndicator /> : undefined}\n ListHeaderComponent={ListFooterComponent}\n onEndReached={onEndReached}\n onEndReachedThreshold={loadMoreThreshold}\n ref={setFlatListRef}\n refreshControl={<RefreshControl onRefresh={refreshList} refreshing={refreshing} />}\n renderItem={renderItem}\n style={[styles.flatList, { backgroundColor: white_snow }, flatList]}\n testID='channel-list-messenger'\n {...additionalFlatListProps}\n />\n <StatusIndicator<StreamChatGenerics> />\n </>\n );\n};\n\nexport type ChannelListMessengerProps<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Partial<ChannelListMessengerPropsWithContext<StreamChatGenerics>>;\n\n/**\n * This UI component displays the preview list of channels and handles Channel navigation. It\n * receives all props from the ChannelList component.\n *\n * @example ./ChannelListMessenger.md\n */\nexport const ChannelListMessenger = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: ChannelListMessengerProps<StreamChatGenerics>,\n) => {\n const {\n additionalFlatListProps,\n channels,\n EmptyStateIndicator,\n error,\n FooterLoadingIndicator,\n forceUpdate,\n ListHeaderComponent,\n loadingChannels,\n LoadingErrorIndicator,\n LoadingIndicator,\n loadingNextPage,\n loadMoreThreshold,\n loadNextPage,\n refreshing,\n refreshList,\n reloadList,\n setFlatListRef,\n } = useChannelsContext<StreamChatGenerics>();\n\n return (\n <ChannelListMessengerWithContext\n {...{\n additionalFlatListProps,\n channels,\n EmptyStateIndicator,\n error,\n FooterLoadingIndicator,\n forceUpdate,\n ListHeaderComponent,\n loadingChannels,\n LoadingErrorIndicator,\n LoadingIndicator,\n loadingNextPage,\n loadMoreThreshold,\n loadNextPage,\n refreshing,\n refreshList,\n reloadList,\n setFlatListRef,\n }}\n {...props}\n />\n );\n};\n\nChannelListMessenger.displayName = 'ChannelListMessenger{channelListMessenger}';\n"]}
|
|
@@ -3,7 +3,9 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.ChannelAvatar = void 0;
|
|
6
|
+
exports.ChannelAvatarWithContext = exports.ChannelAvatar = void 0;
|
|
7
|
+
|
|
8
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
7
9
|
|
|
8
10
|
var _react = _interopRequireDefault(require("react"));
|
|
9
11
|
|
|
@@ -11,6 +13,8 @@ var _useChannelPreviewDisplayAvatar = require("./hooks/useChannelPreviewDisplayA
|
|
|
11
13
|
|
|
12
14
|
var _useChannelPreviewDisplayPresence = require("./hooks/useChannelPreviewDisplayPresence");
|
|
13
15
|
|
|
16
|
+
var _ChatContext = require("../../contexts/chatContext/ChatContext");
|
|
17
|
+
|
|
14
18
|
var _Avatar = require("../Avatar/Avatar");
|
|
15
19
|
|
|
16
20
|
var _GroupAvatar = require("../Avatar/GroupAvatar");
|
|
@@ -18,38 +22,58 @@ var _GroupAvatar = require("../Avatar/GroupAvatar");
|
|
|
18
22
|
var _this = this,
|
|
19
23
|
_jsxFileName = "/home/runner/work/stream-chat-react-native/stream-chat-react-native/package/src/components/ChannelPreview/ChannelAvatar.tsx";
|
|
20
24
|
|
|
21
|
-
var
|
|
22
|
-
var channel = props.channel
|
|
25
|
+
var ChannelAvatarWithContext = function ChannelAvatarWithContext(props) {
|
|
26
|
+
var channel = props.channel,
|
|
27
|
+
ImageComponent = props.ImageComponent;
|
|
23
28
|
var displayAvatar = (0, _useChannelPreviewDisplayAvatar.useChannelPreviewDisplayAvatar)(channel);
|
|
24
29
|
var displayPresence = (0, _useChannelPreviewDisplayPresence.useChannelPreviewDisplayPresence)(channel);
|
|
25
30
|
|
|
26
31
|
if (displayAvatar.images) {
|
|
27
32
|
return _react["default"].createElement(_GroupAvatar.GroupAvatar, {
|
|
33
|
+
ImageComponent: ImageComponent,
|
|
28
34
|
images: displayAvatar.images,
|
|
29
35
|
names: displayAvatar.names,
|
|
30
36
|
size: 40,
|
|
31
37
|
__self: _this,
|
|
32
38
|
__source: {
|
|
33
39
|
fileName: _jsxFileName,
|
|
34
|
-
lineNumber:
|
|
35
|
-
columnNumber:
|
|
40
|
+
lineNumber: 31,
|
|
41
|
+
columnNumber: 7
|
|
36
42
|
}
|
|
37
43
|
});
|
|
38
44
|
}
|
|
39
45
|
|
|
40
46
|
return _react["default"].createElement(_Avatar.Avatar, {
|
|
41
47
|
image: displayAvatar.image,
|
|
48
|
+
ImageComponent: ImageComponent,
|
|
42
49
|
name: displayAvatar.name,
|
|
43
50
|
online: displayPresence,
|
|
44
51
|
size: 40,
|
|
45
52
|
__self: _this,
|
|
46
53
|
__source: {
|
|
47
54
|
fileName: _jsxFileName,
|
|
48
|
-
lineNumber:
|
|
55
|
+
lineNumber: 41,
|
|
49
56
|
columnNumber: 5
|
|
50
57
|
}
|
|
51
58
|
});
|
|
52
59
|
};
|
|
53
60
|
|
|
61
|
+
exports.ChannelAvatarWithContext = ChannelAvatarWithContext;
|
|
62
|
+
|
|
63
|
+
var ChannelAvatar = function ChannelAvatar(props) {
|
|
64
|
+
var _useChatContext = (0, _ChatContext.useChatContext)(),
|
|
65
|
+
ImageComponent = _useChatContext.ImageComponent;
|
|
66
|
+
|
|
67
|
+
return _react["default"].createElement(ChannelAvatarWithContext, (0, _extends2["default"])({}, props, {
|
|
68
|
+
ImageComponent: ImageComponent,
|
|
69
|
+
__self: _this,
|
|
70
|
+
__source: {
|
|
71
|
+
fileName: _jsxFileName,
|
|
72
|
+
lineNumber: 58,
|
|
73
|
+
columnNumber: 10
|
|
74
|
+
}
|
|
75
|
+
}));
|
|
76
|
+
};
|
|
77
|
+
|
|
54
78
|
exports.ChannelAvatar = ChannelAvatar;
|
|
55
79
|
//# sourceMappingURL=ChannelAvatar.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["ChannelAvatar.tsx"],"names":["
|
|
1
|
+
{"version":3,"sources":["ChannelAvatar.tsx"],"names":["ChannelAvatarWithContext","props","channel","ImageComponent","displayAvatar","displayPresence","images","names","image","name","ChannelAvatar"],"mappings":";;;;;;;;;AAAA;;AAGA;;AACA;;AAEA;;AAEA;;AACA;;;;;AASO,IAAMA,wBAAwB,GAAG,SAA3BA,wBAA2B,CAGtCC,KAHsC,EAInC;AACH,MAAQC,OAAR,GAAoCD,KAApC,CAAQC,OAAR;AAAA,MAAiBC,cAAjB,GAAoCF,KAApC,CAAiBE,cAAjB;AAEA,MAAMC,aAAa,GAAG,oEAA+BF,OAA/B,CAAtB;AACA,MAAMG,eAAe,GAAG,wEAAiCH,OAAjC,CAAxB;;AAEA,MAAIE,aAAa,CAACE,MAAlB,EAA0B;AACxB,WACE,gCAAC,wBAAD;AACE,MAAA,cAAc,EAAEH,cADlB;AAEE,MAAA,MAAM,EAAEC,aAAa,CAACE,MAFxB;AAGE,MAAA,KAAK,EAAEF,aAAa,CAACG,KAHvB;AAIE,MAAA,IAAI,EAAE,EAJR;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MADF;AAQD;;AAED,SACE,gCAAC,cAAD;AACE,IAAA,KAAK,EAAEH,aAAa,CAACI,KADvB;AAEE,IAAA,cAAc,EAAEL,cAFlB;AAGE,IAAA,IAAI,EAAEC,aAAa,CAACK,IAHtB;AAIE,IAAA,MAAM,EAAEJ,eAJV;AAKE,IAAA,IAAI,EAAE,EALR;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IADF;AASD,CA9BM;;;;AAgCA,IAAMK,aAAa,GAAG,SAAhBA,aAAgB,CAG3BT,KAH2B,EAIxB;AACH,wBAA2B,kCAA3B;AAAA,MAAQE,cAAR,mBAAQA,cAAR;;AAEA,SAAO,gCAAC,wBAAD,gCAA8BF,KAA9B;AAAqC,IAAA,cAAc,EAAEE,cAArD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KAAP;AACD,CARM","sourcesContent":["import React from 'react';\n\nimport type { ChannelPreviewProps } from './ChannelPreview';\nimport { useChannelPreviewDisplayAvatar } from './hooks/useChannelPreviewDisplayAvatar';\nimport { useChannelPreviewDisplayPresence } from './hooks/useChannelPreviewDisplayPresence';\n\nimport { ChatContextValue, useChatContext } from '../../contexts/chatContext/ChatContext';\nimport type { DefaultStreamChatGenerics } from '../../types/types';\nimport { Avatar } from '../Avatar/Avatar';\nimport { GroupAvatar } from '../Avatar/GroupAvatar';\n\nexport type ChannelAvatarProps<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Pick<ChannelPreviewProps<StreamChatGenerics>, 'channel'>;\n\n/**\n * This UI component displays an avatar for a particular channel.\n */\nexport const ChannelAvatarWithContext = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: ChannelAvatarProps<StreamChatGenerics> & Pick<ChatContextValue, 'ImageComponent'>,\n) => {\n const { channel, ImageComponent } = props;\n\n const displayAvatar = useChannelPreviewDisplayAvatar(channel);\n const displayPresence = useChannelPreviewDisplayPresence(channel);\n\n if (displayAvatar.images) {\n return (\n <GroupAvatar\n ImageComponent={ImageComponent}\n images={displayAvatar.images}\n names={displayAvatar.names}\n size={40}\n />\n );\n }\n\n return (\n <Avatar\n image={displayAvatar.image}\n ImageComponent={ImageComponent}\n name={displayAvatar.name}\n online={displayPresence}\n size={40}\n />\n );\n};\n\nexport const ChannelAvatar = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: ChannelAvatarProps<StreamChatGenerics>,\n) => {\n const { ImageComponent } = useChatContext<StreamChatGenerics>();\n\n return <ChannelAvatarWithContext {...props} ImageComponent={ImageComponent} />;\n};\n"]}
|
|
@@ -33,6 +33,8 @@ var _ChannelsStateContext = require("../../contexts/channelsStateContext/Channel
|
|
|
33
33
|
|
|
34
34
|
var _ChatContext = require("../../contexts/chatContext/ChatContext");
|
|
35
35
|
|
|
36
|
+
var _DebugContext = require("../../contexts/debugContext/DebugContext");
|
|
37
|
+
|
|
36
38
|
var _OverlayContext = require("../../contexts/overlayContext/OverlayContext");
|
|
37
39
|
|
|
38
40
|
var _ThemeContext = require("../../contexts/themeContext/ThemeContext");
|
|
@@ -68,6 +70,8 @@ var ChatWithContext = function ChatWithContext(props) {
|
|
|
68
70
|
_props$enableOfflineS = props.enableOfflineSupport,
|
|
69
71
|
enableOfflineSupport = _props$enableOfflineS === void 0 ? false : _props$enableOfflineS,
|
|
70
72
|
i18nInstance = props.i18nInstance,
|
|
73
|
+
_props$ImageComponent = props.ImageComponent,
|
|
74
|
+
ImageComponent = _props$ImageComponent === void 0 ? _reactNative.Image : _props$ImageComponent,
|
|
71
75
|
style = props.style;
|
|
72
76
|
|
|
73
77
|
var _useState = (0, _react.useState)(),
|
|
@@ -97,12 +101,22 @@ var ChatWithContext = function ChatWithContext(props) {
|
|
|
97
101
|
isOnline = _useIsOnline.isOnline;
|
|
98
102
|
|
|
99
103
|
var mutedUsers = (0, _useMutedUsers.useMutedUsers)(client);
|
|
104
|
+
var debugRef = (0, _DebugContext.useDebugContext)();
|
|
105
|
+
var isDebugModeEnabled = __DEV__ && debugRef && debugRef.current;
|
|
100
106
|
(0, _react.useEffect)(function () {
|
|
101
107
|
if (client) {
|
|
102
108
|
client.setUserAgent(_native.SDK + "-" + _reactNative.Platform.OS + "-" + _version.version);
|
|
103
109
|
client.recoverStateOnReconnect = false;
|
|
104
110
|
client.persistUserOnConnectionFailure = enableOfflineSupport;
|
|
105
111
|
}
|
|
112
|
+
|
|
113
|
+
if (isDebugModeEnabled) {
|
|
114
|
+
if (debugRef.current.setEventType) debugRef.current.setEventType('send');
|
|
115
|
+
if (debugRef.current.setSendEventParams) debugRef.current.setSendEventParams({
|
|
116
|
+
action: 'Client',
|
|
117
|
+
data: client.user
|
|
118
|
+
});
|
|
119
|
+
}
|
|
106
120
|
}, [client]);
|
|
107
121
|
|
|
108
122
|
var setActiveChannel = function setActiveChannel(newChannel) {
|
|
@@ -123,6 +137,7 @@ var ChatWithContext = function ChatWithContext(props) {
|
|
|
123
137
|
client: client,
|
|
124
138
|
connectionRecovering: connectionRecovering,
|
|
125
139
|
enableOfflineSupport: enableOfflineSupport,
|
|
140
|
+
ImageComponent: ImageComponent,
|
|
126
141
|
isOnline: isOnline,
|
|
127
142
|
mutedUsers: mutedUsers,
|
|
128
143
|
setActiveChannel: setActiveChannel,
|
|
@@ -143,7 +158,7 @@ var ChatWithContext = function ChatWithContext(props) {
|
|
|
143
158
|
__self: _this,
|
|
144
159
|
__source: {
|
|
145
160
|
fileName: _jsxFileName,
|
|
146
|
-
lineNumber:
|
|
161
|
+
lineNumber: 232,
|
|
147
162
|
columnNumber: 5
|
|
148
163
|
}
|
|
149
164
|
}, _react["default"].createElement(_TranslationContext.TranslationProvider, {
|
|
@@ -153,7 +168,7 @@ var ChatWithContext = function ChatWithContext(props) {
|
|
|
153
168
|
__self: _this,
|
|
154
169
|
__source: {
|
|
155
170
|
fileName: _jsxFileName,
|
|
156
|
-
lineNumber:
|
|
171
|
+
lineNumber: 233,
|
|
157
172
|
columnNumber: 7
|
|
158
173
|
}
|
|
159
174
|
}, _react["default"].createElement(_ThemeContext.ThemeProvider, {
|
|
@@ -161,14 +176,14 @@ var ChatWithContext = function ChatWithContext(props) {
|
|
|
161
176
|
__self: _this,
|
|
162
177
|
__source: {
|
|
163
178
|
fileName: _jsxFileName,
|
|
164
|
-
lineNumber:
|
|
179
|
+
lineNumber: 236,
|
|
165
180
|
columnNumber: 9
|
|
166
181
|
}
|
|
167
182
|
}, _react["default"].createElement(_ChannelsStateContext.ChannelsStateProvider, {
|
|
168
183
|
__self: _this,
|
|
169
184
|
__source: {
|
|
170
185
|
fileName: _jsxFileName,
|
|
171
|
-
lineNumber:
|
|
186
|
+
lineNumber: 237,
|
|
172
187
|
columnNumber: 11
|
|
173
188
|
}
|
|
174
189
|
}, children))));
|
|
@@ -184,7 +199,7 @@ var Chat = function Chat(props) {
|
|
|
184
199
|
__self: _this,
|
|
185
200
|
__source: {
|
|
186
201
|
fileName: _jsxFileName,
|
|
187
|
-
lineNumber:
|
|
202
|
+
lineNumber: 272,
|
|
188
203
|
columnNumber: 10
|
|
189
204
|
}
|
|
190
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","setUserAgent","SDK","Platform","OS","version","recoverStateOnReconnect","persistUserOnConnectionFailure","setActiveChannel","newChannel","appSettings","subscribeConnectionRecoveredCallback","chatContext","QuickSqliteClient","initializeDatabase","userLanguage","user","language","DEFAULT_USER_LANGUAGE","Chat"],"mappings":"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","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 { 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 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 }, [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"]}
|