stream-chat-react-native-core 4.10.1-beta.1 → 4.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (62) hide show
  1. package/lib/commonjs/components/ImageGallery/components/ImageGalleryFooter.js +7 -3
  2. package/lib/commonjs/components/ImageGallery/components/ImageGalleryFooter.js.map +1 -1
  3. package/lib/commonjs/components/ImageGallery/components/ImageGridHandle.js +1 -1
  4. package/lib/commonjs/components/ImageGallery/components/ImageGridHandle.js.map +1 -1
  5. package/lib/commonjs/components/Reply/Reply.js +1 -1
  6. package/lib/commonjs/components/Reply/Reply.js.map +1 -1
  7. package/lib/commonjs/i18n/en.json +2 -1
  8. package/lib/commonjs/i18n/fr.json +2 -1
  9. package/lib/commonjs/i18n/he.json +2 -0
  10. package/lib/commonjs/i18n/hi.json +2 -1
  11. package/lib/commonjs/i18n/it.json +2 -1
  12. package/lib/commonjs/i18n/ja.json +2 -0
  13. package/lib/commonjs/i18n/ko.json +2 -0
  14. package/lib/commonjs/i18n/nl.json +2 -1
  15. package/lib/commonjs/i18n/ru.json +2 -1
  16. package/lib/commonjs/i18n/tr.json +2 -1
  17. package/lib/commonjs/version.json +1 -1
  18. package/lib/module/components/ImageGallery/components/ImageGalleryFooter.js +7 -3
  19. package/lib/module/components/ImageGallery/components/ImageGalleryFooter.js.map +1 -1
  20. package/lib/module/components/ImageGallery/components/ImageGridHandle.js +1 -1
  21. package/lib/module/components/ImageGallery/components/ImageGridHandle.js.map +1 -1
  22. package/lib/module/components/Reply/Reply.js +1 -1
  23. package/lib/module/components/Reply/Reply.js.map +1 -1
  24. package/lib/module/i18n/en.json +2 -1
  25. package/lib/module/i18n/fr.json +2 -1
  26. package/lib/module/i18n/he.json +2 -0
  27. package/lib/module/i18n/hi.json +2 -1
  28. package/lib/module/i18n/it.json +2 -1
  29. package/lib/module/i18n/ja.json +2 -0
  30. package/lib/module/i18n/ko.json +2 -0
  31. package/lib/module/i18n/nl.json +2 -1
  32. package/lib/module/i18n/ru.json +2 -1
  33. package/lib/module/i18n/tr.json +2 -1
  34. package/lib/module/version.json +1 -1
  35. package/lib/typescript/i18n/en.json +2 -1
  36. package/lib/typescript/i18n/fr.json +2 -1
  37. package/lib/typescript/i18n/he.json +2 -0
  38. package/lib/typescript/i18n/hi.json +2 -1
  39. package/lib/typescript/i18n/it.json +2 -1
  40. package/lib/typescript/i18n/ja.json +2 -0
  41. package/lib/typescript/i18n/ko.json +2 -0
  42. package/lib/typescript/i18n/nl.json +2 -1
  43. package/lib/typescript/i18n/ru.json +2 -1
  44. package/lib/typescript/i18n/tr.json +2 -1
  45. package/lib/typescript/utils/Streami18n.d.ts +2 -1
  46. package/package.json +2 -2
  47. package/src/components/ImageGallery/components/ImageGalleryFooter.tsx +3 -3
  48. package/src/components/ImageGallery/components/ImageGridHandle.tsx +1 -1
  49. package/src/components/MessageInput/__tests__/__snapshots__/MessageInput.test.js.snap +12 -16
  50. package/src/components/MessageList/__tests__/__snapshots__/TypingIndicator.test.js.snap +42 -45
  51. package/src/components/Reply/Reply.tsx +1 -1
  52. package/src/i18n/en.json +2 -1
  53. package/src/i18n/fr.json +2 -1
  54. package/src/i18n/he.json +2 -0
  55. package/src/i18n/hi.json +2 -1
  56. package/src/i18n/it.json +2 -1
  57. package/src/i18n/ja.json +2 -0
  58. package/src/i18n/ko.json +2 -0
  59. package/src/i18n/nl.json +2 -1
  60. package/src/i18n/ru.json +2 -1
  61. package/src/i18n/tr.json +2 -1
  62. package/src/version.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["ImageGridHandle.tsx"],"names":["styles","StyleSheet","create","closeButton","marginRight","handle","alignItems","borderTopLeftRadius","borderTopRightRadius","flexDirection","height","justifyContent","leftContainer","marginLeft","width","text","flex","fontSize","fontWeight","textAlign","ImageGridHandle","props","centerComponent","closeGridView","leftComponent","rightComponent","theme","colors","black","white","imageGallery","grid","handleText","t","backgroundColor","color","displayName"],"mappings":";;;;;;;AAAA;;AACA;;AAEA;;AAEA;;AACA;;AACA;;;;;AAEA,IAAMA,MAAM,GAAGC,wBAAWC,MAAX,CAAkB;AAC/BC,EAAAA,WAAW,EAAE;AACXC,IAAAA,WAAW,EAAE;AADF,GADkB;AAI/BC,EAAAA,MAAM,EAAE;AACNC,IAAAA,UAAU,EAAE,QADN;AAENC,IAAAA,mBAAmB,EAAE,EAFf;AAGNC,IAAAA,oBAAoB,EAAE,EAHhB;AAINC,IAAAA,aAAa,EAAE,KAJT;AAKNC,IAAAA,MAAM,EAAE,EALF;AAMNC,IAAAA,cAAc,EAAE;AANV,GAJuB;AAY/BC,EAAAA,aAAa,EAAE;AACbC,IAAAA,UAAU,EAAE,EADC;AAEbC,IAAAA,KAAK,EAAE;AAFM,GAZgB;AAgB/BC,EAAAA,IAAI,EAAE;AACJC,IAAAA,IAAI,EAAE,CADF;AAEJC,IAAAA,QAAQ,EAAE,EAFN;AAGJC,IAAAA,UAAU,EAAE,KAHR;AAIJC,IAAAA,SAAS,EAAE;AAJP;AAhByB,CAAlB,CAAf;;AAwCO,IAAMC,eAAgC,GAAG,SAAnCA,eAAmC,CAACC,KAAD,EAAW;AACzD,MAAQC,eAAR,GAA0ED,KAA1E,CAAQC,eAAR;AAAA,MAAyBC,aAAzB,GAA0EF,KAA1E,CAAyBE,aAAzB;AAAA,MAAwCC,aAAxC,GAA0EH,KAA1E,CAAwCG,aAAxC;AAAA,MAAuDC,cAAvD,GAA0EJ,KAA1E,CAAuDI,cAAvD;;AACA,kBAOI,6BAPJ;AAAA,kCACEC,KADF;AAAA,8CAEIC,MAFJ;AAAA,MAEcC,KAFd,yBAEcA,KAFd;AAAA,MAEqBC,KAFrB,yBAEqBA,KAFrB;AAAA,8CAGIC,YAHJ,CAIMC,IAJN;AAAA,MAIc1B,MAJd,yBAIcA,MAJd;AAAA,MAIsB2B,UAJtB,yBAIsBA,UAJtB;;AAQA,8BAAc,gDAAd;AAAA,MAAQC,CAAR,yBAAQA,CAAR;;AAEA,SACE,gCAAC,iBAAD;AAAM,IAAA,KAAK,EAAE,CAACjC,MAAM,CAACK,MAAR,EAAgB;AAAE6B,MAAAA,eAAe,EAAEL;AAAnB,KAAhB,EAA4CxB,MAA5C,CAAb;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KACGmB,aAAa,GAAGA,aAAa,CAAC;AAAED,IAAAA,aAAa,EAAbA;AAAF,GAAD,CAAhB,GAAsC,gCAAC,iBAAD;AAAM,IAAA,KAAK,EAAEvB,MAAM,CAACY,aAApB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IADtD,EAEGU,eAAe,GACdA,eAAe,CAAC;AAAEC,IAAAA,aAAa,EAAbA;AAAF,GAAD,CADD,GAGd,gCAAC,iBAAD;AAAM,IAAA,KAAK,EAAE,CAACvB,MAAM,CAACe,IAAR,EAAc;AAAEoB,MAAAA,KAAK,EAAEP;AAAT,KAAd,EAAgCI,UAAhC,CAAb;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KAA2DC,CAAC,CAAC,QAAD,CAA5D,CALJ,EAOGR,cAAc,GACbA,cAAc,CAAC;AAAEF,IAAAA,aAAa,EAAbA;AAAF,GAAD,CADD,GAGb,gCAAC,6BAAD;AAAkB,IAAA,OAAO,EAAEA,aAA3B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KACE,gCAAC,YAAD;AAAO,IAAA,KAAK,EAAEvB,MAAM,CAACG,WAArB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IADF,CAVJ,CADF;AAiBD,CA7BM;;;AA+BPiB,eAAe,CAACgB,WAAhB,GAA8B,6CAA9B","sourcesContent":["import React from 'react';\nimport { StyleSheet, Text, View } from 'react-native';\n\nimport { TouchableOpacity } from '@gorhom/bottom-sheet';\n\nimport { useTheme } from '../../../contexts/themeContext/ThemeContext';\nimport { useTranslationContext } from '../../../contexts/translationContext/TranslationContext';\nimport { Close } from '../../../icons';\n\nconst styles = StyleSheet.create({\n closeButton: {\n marginRight: 16,\n },\n handle: {\n alignItems: 'center',\n borderTopLeftRadius: 16,\n borderTopRightRadius: 16,\n flexDirection: 'row',\n height: 40,\n justifyContent: 'center',\n },\n leftContainer: {\n marginLeft: 16,\n width: 24, // Close icon width on right\n },\n text: {\n flex: 1,\n fontSize: 16,\n fontWeight: '600',\n textAlign: 'center',\n },\n});\n\nexport type ImageGalleryGridHandleCustomComponent = ({\n closeGridView,\n}: {\n closeGridView: () => void;\n}) => React.ReactElement | null;\n\nexport type ImageGalleryGridHandleCustomComponentProps = {\n centerComponent?: ImageGalleryGridHandleCustomComponent;\n leftComponent?: ImageGalleryGridHandleCustomComponent;\n rightComponent?: ImageGalleryGridHandleCustomComponent;\n};\n\ntype Props = ImageGalleryGridHandleCustomComponentProps & {\n closeGridView: () => void;\n};\n\nexport const ImageGridHandle: React.FC<Props> = (props) => {\n const { centerComponent, closeGridView, leftComponent, rightComponent } = props;\n const {\n theme: {\n colors: { black, white },\n imageGallery: {\n grid: { handle, handleText },\n },\n },\n } = useTheme();\n const { t } = useTranslationContext();\n\n return (\n <View style={[styles.handle, { backgroundColor: white }, handle]}>\n {leftComponent ? leftComponent({ closeGridView }) : <View style={styles.leftContainer} />}\n {centerComponent ? (\n centerComponent({ closeGridView })\n ) : (\n <Text style={[styles.text, { color: black }, handleText]}>{t('Photos')}</Text>\n )}\n {rightComponent ? (\n rightComponent({ closeGridView })\n ) : (\n <TouchableOpacity onPress={closeGridView}>\n <Close style={styles.closeButton} />\n </TouchableOpacity>\n )}\n </View>\n );\n};\n\nImageGridHandle.displayName = 'ImageGridHandle{imageGallery{grid{handle}}}';\n"]}
1
+ {"version":3,"sources":["ImageGridHandle.tsx"],"names":["styles","StyleSheet","create","closeButton","marginRight","handle","alignItems","borderTopLeftRadius","borderTopRightRadius","flexDirection","height","justifyContent","leftContainer","marginLeft","width","text","flex","fontSize","fontWeight","textAlign","ImageGridHandle","props","centerComponent","closeGridView","leftComponent","rightComponent","theme","colors","black","white","imageGallery","grid","handleText","t","backgroundColor","color","displayName"],"mappings":";;;;;;;AAAA;;AACA;;AAEA;;AAEA;;AACA;;AACA;;;;;AAEA,IAAMA,MAAM,GAAGC,wBAAWC,MAAX,CAAkB;AAC/BC,EAAAA,WAAW,EAAE;AACXC,IAAAA,WAAW,EAAE;AADF,GADkB;AAI/BC,EAAAA,MAAM,EAAE;AACNC,IAAAA,UAAU,EAAE,QADN;AAENC,IAAAA,mBAAmB,EAAE,EAFf;AAGNC,IAAAA,oBAAoB,EAAE,EAHhB;AAINC,IAAAA,aAAa,EAAE,KAJT;AAKNC,IAAAA,MAAM,EAAE,EALF;AAMNC,IAAAA,cAAc,EAAE;AANV,GAJuB;AAY/BC,EAAAA,aAAa,EAAE;AACbC,IAAAA,UAAU,EAAE,EADC;AAEbC,IAAAA,KAAK,EAAE;AAFM,GAZgB;AAgB/BC,EAAAA,IAAI,EAAE;AACJC,IAAAA,IAAI,EAAE,CADF;AAEJC,IAAAA,QAAQ,EAAE,EAFN;AAGJC,IAAAA,UAAU,EAAE,KAHR;AAIJC,IAAAA,SAAS,EAAE;AAJP;AAhByB,CAAlB,CAAf;;AAwCO,IAAMC,eAAgC,GAAG,SAAnCA,eAAmC,CAACC,KAAD,EAAW;AACzD,MAAQC,eAAR,GAA0ED,KAA1E,CAAQC,eAAR;AAAA,MAAyBC,aAAzB,GAA0EF,KAA1E,CAAyBE,aAAzB;AAAA,MAAwCC,aAAxC,GAA0EH,KAA1E,CAAwCG,aAAxC;AAAA,MAAuDC,cAAvD,GAA0EJ,KAA1E,CAAuDI,cAAvD;;AACA,kBAOI,6BAPJ;AAAA,kCACEC,KADF;AAAA,8CAEIC,MAFJ;AAAA,MAEcC,KAFd,yBAEcA,KAFd;AAAA,MAEqBC,KAFrB,yBAEqBA,KAFrB;AAAA,8CAGIC,YAHJ,CAIMC,IAJN;AAAA,MAIc1B,MAJd,yBAIcA,MAJd;AAAA,MAIsB2B,UAJtB,yBAIsBA,UAJtB;;AAQA,8BAAc,gDAAd;AAAA,MAAQC,CAAR,yBAAQA,CAAR;;AAEA,SACE,gCAAC,iBAAD;AAAM,IAAA,KAAK,EAAE,CAACjC,MAAM,CAACK,MAAR,EAAgB;AAAE6B,MAAAA,eAAe,EAAEL;AAAnB,KAAhB,EAA4CxB,MAA5C,CAAb;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KACGmB,aAAa,GAAGA,aAAa,CAAC;AAAED,IAAAA,aAAa,EAAbA;AAAF,GAAD,CAAhB,GAAsC,gCAAC,iBAAD;AAAM,IAAA,KAAK,EAAEvB,MAAM,CAACY,aAApB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IADtD,EAEGU,eAAe,GACdA,eAAe,CAAC;AAAEC,IAAAA,aAAa,EAAbA;AAAF,GAAD,CADD,GAGd,gCAAC,iBAAD;AAAM,IAAA,KAAK,EAAE,CAACvB,MAAM,CAACe,IAAR,EAAc;AAAEoB,MAAAA,KAAK,EAAEP;AAAT,KAAd,EAAgCI,UAAhC,CAAb;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KAA2DC,CAAC,CAAC,mBAAD,CAA5D,CALJ,EAOGR,cAAc,GACbA,cAAc,CAAC;AAAEF,IAAAA,aAAa,EAAbA;AAAF,GAAD,CADD,GAGb,gCAAC,6BAAD;AAAkB,IAAA,OAAO,EAAEA,aAA3B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KACE,gCAAC,YAAD;AAAO,IAAA,KAAK,EAAEvB,MAAM,CAACG,WAArB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IADF,CAVJ,CADF;AAiBD,CA7BM;;;AA+BPiB,eAAe,CAACgB,WAAhB,GAA8B,6CAA9B","sourcesContent":["import React from 'react';\nimport { StyleSheet, Text, View } from 'react-native';\n\nimport { TouchableOpacity } from '@gorhom/bottom-sheet';\n\nimport { useTheme } from '../../../contexts/themeContext/ThemeContext';\nimport { useTranslationContext } from '../../../contexts/translationContext/TranslationContext';\nimport { Close } from '../../../icons';\n\nconst styles = StyleSheet.create({\n closeButton: {\n marginRight: 16,\n },\n handle: {\n alignItems: 'center',\n borderTopLeftRadius: 16,\n borderTopRightRadius: 16,\n flexDirection: 'row',\n height: 40,\n justifyContent: 'center',\n },\n leftContainer: {\n marginLeft: 16,\n width: 24, // Close icon width on right\n },\n text: {\n flex: 1,\n fontSize: 16,\n fontWeight: '600',\n textAlign: 'center',\n },\n});\n\nexport type ImageGalleryGridHandleCustomComponent = ({\n closeGridView,\n}: {\n closeGridView: () => void;\n}) => React.ReactElement | null;\n\nexport type ImageGalleryGridHandleCustomComponentProps = {\n centerComponent?: ImageGalleryGridHandleCustomComponent;\n leftComponent?: ImageGalleryGridHandleCustomComponent;\n rightComponent?: ImageGalleryGridHandleCustomComponent;\n};\n\ntype Props = ImageGalleryGridHandleCustomComponentProps & {\n closeGridView: () => void;\n};\n\nexport const ImageGridHandle: React.FC<Props> = (props) => {\n const { centerComponent, closeGridView, leftComponent, rightComponent } = props;\n const {\n theme: {\n colors: { black, white },\n imageGallery: {\n grid: { handle, handleText },\n },\n },\n } = useTheme();\n const { t } = useTranslationContext();\n\n return (\n <View style={[styles.handle, { backgroundColor: white }, handle]}>\n {leftComponent ? leftComponent({ closeGridView }) : <View style={styles.leftContainer} />}\n {centerComponent ? (\n centerComponent({ closeGridView })\n ) : (\n <Text style={[styles.text, { color: black }, handleText]}>{t('Photos and Videos')}</Text>\n )}\n {rightComponent ? (\n rightComponent({ closeGridView })\n ) : (\n <TouchableOpacity onPress={closeGridView}>\n <Close style={styles.closeButton} />\n </TouchableOpacity>\n )}\n </View>\n );\n};\n\nImageGridHandle.displayName = 'ImageGridHandle{imageGallery{grid{handle}}}';\n"]}
@@ -231,7 +231,7 @@ var ReplyWithContext = function ReplyWithContext(props) {
231
231
  text: styles.text
232
232
  }, markdownStyles),
233
233
  message: (0, _extends2["default"])({}, quotedMessage, {
234
- text: quotedMessage.deleted_at ? "_" + t('Message deleted') + "_" : quotedMessage.text ? quotedMessage.text.length > 170 ? quotedMessage.text.slice(0, 170) + "..." : quotedMessage.text : messageType === 'image' ? t('Photo') : messageType === 'video' ? 'Video' : messageType === 'file' ? (lastAttachment == null ? void 0 : lastAttachment.title) || '' : ''
234
+ text: quotedMessage.deleted_at ? "_" + t('Message deleted') + "_" : quotedMessage.text ? quotedMessage.text.length > 170 ? quotedMessage.text.slice(0, 170) + "..." : quotedMessage.text : messageType === 'image' ? t('Photo') : messageType === 'video' ? t('Video') : messageType === 'file' ? (lastAttachment == null ? void 0 : lastAttachment.title) || '' : ''
235
235
  }),
236
236
  onlyEmojis: onlyEmojis,
237
237
  styles: {
@@ -1 +1 @@
1
- {"version":3,"sources":["Reply.tsx"],"names":["styles","StyleSheet","create","container","alignItems","flexDirection","fileAttachmentContainer","paddingLeft","paddingVertical","imageAttachment","borderRadius","height","marginLeft","marginVertical","width","messageContainer","borderBottomLeftRadius","borderBottomRightRadius","borderTopLeftRadius","borderTopRightRadius","flexGrow","flexShrink","text","fontSize","textContainer","maxWidth","undefined","paddingHorizontal","videoAttachment","getMessageType","lastAttachment","messageType","isLastAttachmentFile","type","isLastAttachmentVideo","isLastAttachmentGiphy","isLastAttachmentImageOrGiphy","title_link","og_scrape_url","isLastAttachmentImage","image_url","thumb_url","ReplyWithContext","props","FileAttachmentIcon","attachmentSize","MessageAvatar","quotedMessage","stylesProp","t","error","setError","theme","colors","blue_alice","border","grey","transparent","white","deletedText","messageSimple","content","reply","markdownStyles","attachments","slice","hasImage","onlyEmojis","emojiRegex","test","backgroundColor","borderColor","borderWidth","mime_type","uri","url","deleted_at","em","color","length","title","marginRight","Number","useMessageInputContextIfAvailable","contextValue","MessageInputContext","areEqual","prevProps","nextProps","prevQuotedMessage","nextQuotedMessage","quotedMessageEqual","id","MemoizedReply","React","memo","Reply","message","FileIconDefault","MessageAvatarDefault","editing","quotedEditingMessage","quoted_message","displayName"],"mappings":"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","sourcesContent":["import React, { useContext, useState } from 'react';\nimport { Image, ImageStyle, StyleSheet, View, ViewStyle } from 'react-native';\n\nimport merge from 'lodash/merge';\n\nimport type { Attachment } from 'stream-chat';\n\nimport { useMessageContext } from '../../contexts/messageContext/MessageContext';\nimport {\n MessageInputContext,\n MessageInputContextValue,\n} from '../../contexts/messageInputContext/MessageInputContext';\nimport {\n MessagesContextValue,\n useMessagesContext,\n} from '../../contexts/messagesContext/MessagesContext';\nimport { useTheme } from '../../contexts/themeContext/ThemeContext';\nimport {\n TranslationContextValue,\n useTranslationContext,\n} from '../../contexts/translationContext/TranslationContext';\nimport type { DefaultStreamChatGenerics } from '../../types/types';\nimport { getResizedImageUrl } from '../../utils/getResizedImageUrl';\nimport { emojiRegex } from '../../utils/utils';\n\nimport { FileIcon as FileIconDefault } from '../Attachment/FileIcon';\nimport { VideoThumbnail } from '../Attachment/VideoThumbnail';\nimport { MessageAvatar as MessageAvatarDefault } from '../Message/MessageSimple/MessageAvatar';\nimport { MessageTextContainer } from '../Message/MessageSimple/MessageTextContainer';\n\nconst styles = StyleSheet.create({\n container: {\n alignItems: 'flex-end',\n flexDirection: 'row',\n },\n fileAttachmentContainer: { paddingLeft: 8, paddingVertical: 8 },\n imageAttachment: {\n borderRadius: 8,\n height: 32,\n marginLeft: 8,\n marginVertical: 8,\n width: 32,\n },\n messageContainer: {\n alignItems: 'flex-start',\n borderBottomLeftRadius: 0,\n borderBottomRightRadius: 12,\n borderTopLeftRadius: 12,\n borderTopRightRadius: 12,\n flexDirection: 'row',\n flexGrow: 1,\n flexShrink: 1,\n },\n text: { fontSize: 12 },\n textContainer: { maxWidth: undefined, paddingHorizontal: 8 },\n videoAttachment: {\n borderRadius: 8,\n height: 50,\n marginLeft: 8,\n marginVertical: 8,\n width: 50,\n },\n});\n\ntype ReplyPropsWithContext<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Pick<MessageInputContextValue<StreamChatGenerics>, 'quotedMessage'> &\n Pick<MessagesContextValue<StreamChatGenerics>, 'FileAttachmentIcon' | 'MessageAvatar'> &\n Pick<TranslationContextValue, 't'> & {\n attachmentSize?: number;\n styles?: Partial<{\n container: ViewStyle;\n fileAttachmentContainer: ViewStyle;\n imageAttachment: ImageStyle;\n messageContainer: ViewStyle;\n textContainer: ViewStyle;\n }>;\n };\n\nconst getMessageType = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n lastAttachment: Attachment<StreamChatGenerics>,\n) => {\n let messageType;\n\n const isLastAttachmentFile = lastAttachment.type === 'file' || lastAttachment.type === 'audio';\n\n const isLastAttachmentVideo = lastAttachment.type === 'video';\n\n const isLastAttachmentGiphy =\n lastAttachment?.type === 'giphy' || lastAttachment?.type === 'imgur';\n\n const isLastAttachmentImageOrGiphy =\n lastAttachment?.type === 'image' &&\n !lastAttachment?.title_link &&\n !lastAttachment?.og_scrape_url;\n\n const isLastAttachmentImage = lastAttachment?.image_url || lastAttachment?.thumb_url;\n\n if (isLastAttachmentFile) {\n messageType = 'file';\n } else if (isLastAttachmentVideo) {\n messageType = 'video';\n } else if (isLastAttachmentImageOrGiphy) {\n if (isLastAttachmentImage) messageType = 'image';\n else messageType = undefined;\n } else if (isLastAttachmentGiphy) messageType = 'giphy';\n else messageType = 'other';\n\n return messageType;\n};\n\nconst ReplyWithContext = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: ReplyPropsWithContext<StreamChatGenerics>,\n) => {\n const {\n FileAttachmentIcon,\n attachmentSize = 40,\n MessageAvatar,\n quotedMessage,\n styles: stylesProp = {},\n t,\n } = props;\n\n const [error, setError] = useState(false);\n\n const {\n theme: {\n colors: { blue_alice, border, grey, transparent, white },\n messageSimple: {\n content: { deletedText },\n },\n reply: {\n container,\n fileAttachmentContainer,\n imageAttachment,\n markdownStyles,\n messageContainer,\n textContainer,\n },\n },\n } = useTheme();\n\n if (typeof quotedMessage === 'boolean') return null;\n\n const lastAttachment = quotedMessage.attachments?.slice(-1)[0] as Attachment<StreamChatGenerics>;\n const messageType = lastAttachment && getMessageType(lastAttachment);\n\n const hasImage =\n !error &&\n lastAttachment &&\n messageType !== 'file' &&\n (lastAttachment.image_url || lastAttachment.thumb_url || lastAttachment.og_scrape_url);\n\n const onlyEmojis = !lastAttachment && !!quotedMessage.text && emojiRegex.test(quotedMessage.text);\n\n return (\n <View style={[styles.container, container, stylesProp.container]}>\n <MessageAvatar alignment={'left'} lastGroupMessage message={quotedMessage} size={24} />\n <View\n style={[\n styles.messageContainer,\n {\n backgroundColor:\n messageType === 'other' ? blue_alice : messageType === 'giphy' ? transparent : white,\n borderColor: border,\n borderWidth: messageType === 'other' ? 0 : 1,\n },\n messageContainer,\n stylesProp.messageContainer,\n ]}\n >\n {!error && lastAttachment ? (\n messageType === 'file' ? (\n <View\n style={[\n styles.fileAttachmentContainer,\n fileAttachmentContainer,\n stylesProp.fileAttachmentContainer,\n ]}\n >\n <FileAttachmentIcon mimeType={lastAttachment.mime_type} size={attachmentSize} />\n </View>\n ) : hasImage ? (\n <Image\n onError={() => setError(true)}\n source={{\n uri: getResizedImageUrl({\n height:\n stylesProp.imageAttachment?.height ||\n imageAttachment?.height ||\n styles.imageAttachment.height,\n url: (lastAttachment.image_url ||\n lastAttachment.thumb_url ||\n lastAttachment.og_scrape_url) as string,\n width:\n stylesProp.imageAttachment?.width ||\n imageAttachment?.width ||\n styles.imageAttachment.width,\n }),\n }}\n style={[styles.imageAttachment, imageAttachment, stylesProp.imageAttachment]}\n />\n ) : null\n ) : null}\n {messageType === 'video' && !lastAttachment.og_scrape_url ? (\n <VideoThumbnail style={[styles.videoAttachment]} />\n ) : null}\n <MessageTextContainer<StreamChatGenerics>\n markdownStyles={\n quotedMessage.deleted_at\n ? merge({ em: { color: grey } }, deletedText)\n : { text: styles.text, ...markdownStyles }\n }\n message={{\n ...quotedMessage,\n text: quotedMessage.deleted_at\n ? `_${t('Message deleted')}_`\n : quotedMessage.text\n ? quotedMessage.text.length > 170\n ? `${quotedMessage.text.slice(0, 170)}...`\n : quotedMessage.text\n : messageType === 'image'\n ? t('Photo')\n : messageType === 'video'\n ? 'Video'\n : messageType === 'file'\n ? lastAttachment?.title || ''\n : '',\n }}\n onlyEmojis={onlyEmojis}\n styles={{\n textContainer: [\n {\n marginRight:\n hasImage || messageType === 'video'\n ? Number(\n stylesProp.imageAttachment?.height ||\n imageAttachment.height ||\n styles.imageAttachment.height,\n ) +\n Number(\n stylesProp.imageAttachment?.marginLeft ||\n imageAttachment.marginLeft ||\n styles.imageAttachment.marginLeft,\n )\n : messageType === 'file'\n ? attachmentSize +\n Number(\n stylesProp.fileAttachmentContainer?.paddingLeft ||\n fileAttachmentContainer.paddingLeft ||\n styles.fileAttachmentContainer.paddingLeft,\n )\n : undefined,\n },\n styles.textContainer,\n textContainer,\n stylesProp.textContainer,\n ],\n }}\n />\n </View>\n </View>\n );\n};\n\n/**\n * When a reply is rendered in a MessageSimple, it does\n * not have a MessageInputContext. As this is deliberate,\n * this function exists to avoid the error thrown when\n * using a context outside of its provider.\n * */\nconst useMessageInputContextIfAvailable = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>() => {\n const contextValue = useContext(\n MessageInputContext,\n ) as unknown as MessageInputContextValue<StreamChatGenerics>;\n\n return contextValue;\n};\n\nconst areEqual = <StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>(\n prevProps: ReplyPropsWithContext<StreamChatGenerics>,\n nextProps: ReplyPropsWithContext<StreamChatGenerics>,\n) => {\n const { quotedMessage: prevQuotedMessage } = prevProps;\n const { quotedMessage: nextQuotedMessage } = nextProps;\n\n const quotedMessageEqual =\n !!prevQuotedMessage &&\n !!nextQuotedMessage &&\n typeof prevQuotedMessage !== 'boolean' &&\n typeof nextQuotedMessage !== 'boolean'\n ? prevQuotedMessage.id === nextQuotedMessage.id &&\n prevQuotedMessage.deleted_at === nextQuotedMessage.deleted_at\n : !!prevQuotedMessage === !!nextQuotedMessage;\n\n if (!quotedMessageEqual) return false;\n\n return true;\n};\n\nconst MemoizedReply = React.memo(ReplyWithContext, areEqual) as typeof ReplyWithContext;\n\nexport type ReplyProps<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Partial<ReplyPropsWithContext<StreamChatGenerics>>;\n\n/**\n * UI Component for reply\n */\nexport const Reply = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: ReplyProps<StreamChatGenerics>,\n) => {\n const { message } = useMessageContext<StreamChatGenerics>();\n\n const { FileAttachmentIcon = FileIconDefault, MessageAvatar = MessageAvatarDefault } =\n useMessagesContext<StreamChatGenerics>();\n\n const { editing, quotedMessage } = useMessageInputContextIfAvailable<StreamChatGenerics>();\n\n const quotedEditingMessage = (\n typeof editing !== 'boolean' ? editing?.quoted_message || false : false\n ) as MessageInputContextValue<StreamChatGenerics>['quotedMessage'];\n\n const { t } = useTranslationContext();\n\n return (\n <MemoizedReply\n {...{\n FileAttachmentIcon,\n MessageAvatar,\n quotedMessage: message\n ? (message.quoted_message as MessageInputContextValue<StreamChatGenerics>['quotedMessage'])\n : quotedMessage || quotedEditingMessage,\n t,\n }}\n {...props}\n />\n );\n};\n\nReply.displayName = 'Reply{reply}';\n"]}
1
+ {"version":3,"sources":["Reply.tsx"],"names":["styles","StyleSheet","create","container","alignItems","flexDirection","fileAttachmentContainer","paddingLeft","paddingVertical","imageAttachment","borderRadius","height","marginLeft","marginVertical","width","messageContainer","borderBottomLeftRadius","borderBottomRightRadius","borderTopLeftRadius","borderTopRightRadius","flexGrow","flexShrink","text","fontSize","textContainer","maxWidth","undefined","paddingHorizontal","videoAttachment","getMessageType","lastAttachment","messageType","isLastAttachmentFile","type","isLastAttachmentVideo","isLastAttachmentGiphy","isLastAttachmentImageOrGiphy","title_link","og_scrape_url","isLastAttachmentImage","image_url","thumb_url","ReplyWithContext","props","FileAttachmentIcon","attachmentSize","MessageAvatar","quotedMessage","stylesProp","t","error","setError","theme","colors","blue_alice","border","grey","transparent","white","deletedText","messageSimple","content","reply","markdownStyles","attachments","slice","hasImage","onlyEmojis","emojiRegex","test","backgroundColor","borderColor","borderWidth","mime_type","uri","url","deleted_at","em","color","length","title","marginRight","Number","useMessageInputContextIfAvailable","contextValue","MessageInputContext","areEqual","prevProps","nextProps","prevQuotedMessage","nextQuotedMessage","quotedMessageEqual","id","MemoizedReply","React","memo","Reply","message","FileIconDefault","MessageAvatarDefault","editing","quotedEditingMessage","quoted_message","displayName"],"mappings":"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","sourcesContent":["import React, { useContext, useState } from 'react';\nimport { Image, ImageStyle, StyleSheet, View, ViewStyle } from 'react-native';\n\nimport merge from 'lodash/merge';\n\nimport type { Attachment } from 'stream-chat';\n\nimport { useMessageContext } from '../../contexts/messageContext/MessageContext';\nimport {\n MessageInputContext,\n MessageInputContextValue,\n} from '../../contexts/messageInputContext/MessageInputContext';\nimport {\n MessagesContextValue,\n useMessagesContext,\n} from '../../contexts/messagesContext/MessagesContext';\nimport { useTheme } from '../../contexts/themeContext/ThemeContext';\nimport {\n TranslationContextValue,\n useTranslationContext,\n} from '../../contexts/translationContext/TranslationContext';\nimport type { DefaultStreamChatGenerics } from '../../types/types';\nimport { getResizedImageUrl } from '../../utils/getResizedImageUrl';\nimport { emojiRegex } from '../../utils/utils';\n\nimport { FileIcon as FileIconDefault } from '../Attachment/FileIcon';\nimport { VideoThumbnail } from '../Attachment/VideoThumbnail';\nimport { MessageAvatar as MessageAvatarDefault } from '../Message/MessageSimple/MessageAvatar';\nimport { MessageTextContainer } from '../Message/MessageSimple/MessageTextContainer';\n\nconst styles = StyleSheet.create({\n container: {\n alignItems: 'flex-end',\n flexDirection: 'row',\n },\n fileAttachmentContainer: { paddingLeft: 8, paddingVertical: 8 },\n imageAttachment: {\n borderRadius: 8,\n height: 32,\n marginLeft: 8,\n marginVertical: 8,\n width: 32,\n },\n messageContainer: {\n alignItems: 'flex-start',\n borderBottomLeftRadius: 0,\n borderBottomRightRadius: 12,\n borderTopLeftRadius: 12,\n borderTopRightRadius: 12,\n flexDirection: 'row',\n flexGrow: 1,\n flexShrink: 1,\n },\n text: { fontSize: 12 },\n textContainer: { maxWidth: undefined, paddingHorizontal: 8 },\n videoAttachment: {\n borderRadius: 8,\n height: 50,\n marginLeft: 8,\n marginVertical: 8,\n width: 50,\n },\n});\n\ntype ReplyPropsWithContext<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Pick<MessageInputContextValue<StreamChatGenerics>, 'quotedMessage'> &\n Pick<MessagesContextValue<StreamChatGenerics>, 'FileAttachmentIcon' | 'MessageAvatar'> &\n Pick<TranslationContextValue, 't'> & {\n attachmentSize?: number;\n styles?: Partial<{\n container: ViewStyle;\n fileAttachmentContainer: ViewStyle;\n imageAttachment: ImageStyle;\n messageContainer: ViewStyle;\n textContainer: ViewStyle;\n }>;\n };\n\nconst getMessageType = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n lastAttachment: Attachment<StreamChatGenerics>,\n) => {\n let messageType;\n\n const isLastAttachmentFile = lastAttachment.type === 'file' || lastAttachment.type === 'audio';\n\n const isLastAttachmentVideo = lastAttachment.type === 'video';\n\n const isLastAttachmentGiphy =\n lastAttachment?.type === 'giphy' || lastAttachment?.type === 'imgur';\n\n const isLastAttachmentImageOrGiphy =\n lastAttachment?.type === 'image' &&\n !lastAttachment?.title_link &&\n !lastAttachment?.og_scrape_url;\n\n const isLastAttachmentImage = lastAttachment?.image_url || lastAttachment?.thumb_url;\n\n if (isLastAttachmentFile) {\n messageType = 'file';\n } else if (isLastAttachmentVideo) {\n messageType = 'video';\n } else if (isLastAttachmentImageOrGiphy) {\n if (isLastAttachmentImage) messageType = 'image';\n else messageType = undefined;\n } else if (isLastAttachmentGiphy) messageType = 'giphy';\n else messageType = 'other';\n\n return messageType;\n};\n\nconst ReplyWithContext = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: ReplyPropsWithContext<StreamChatGenerics>,\n) => {\n const {\n FileAttachmentIcon,\n attachmentSize = 40,\n MessageAvatar,\n quotedMessage,\n styles: stylesProp = {},\n t,\n } = props;\n\n const [error, setError] = useState(false);\n\n const {\n theme: {\n colors: { blue_alice, border, grey, transparent, white },\n messageSimple: {\n content: { deletedText },\n },\n reply: {\n container,\n fileAttachmentContainer,\n imageAttachment,\n markdownStyles,\n messageContainer,\n textContainer,\n },\n },\n } = useTheme();\n\n if (typeof quotedMessage === 'boolean') return null;\n\n const lastAttachment = quotedMessage.attachments?.slice(-1)[0] as Attachment<StreamChatGenerics>;\n const messageType = lastAttachment && getMessageType(lastAttachment);\n\n const hasImage =\n !error &&\n lastAttachment &&\n messageType !== 'file' &&\n (lastAttachment.image_url || lastAttachment.thumb_url || lastAttachment.og_scrape_url);\n\n const onlyEmojis = !lastAttachment && !!quotedMessage.text && emojiRegex.test(quotedMessage.text);\n\n return (\n <View style={[styles.container, container, stylesProp.container]}>\n <MessageAvatar alignment={'left'} lastGroupMessage message={quotedMessage} size={24} />\n <View\n style={[\n styles.messageContainer,\n {\n backgroundColor:\n messageType === 'other' ? blue_alice : messageType === 'giphy' ? transparent : white,\n borderColor: border,\n borderWidth: messageType === 'other' ? 0 : 1,\n },\n messageContainer,\n stylesProp.messageContainer,\n ]}\n >\n {!error && lastAttachment ? (\n messageType === 'file' ? (\n <View\n style={[\n styles.fileAttachmentContainer,\n fileAttachmentContainer,\n stylesProp.fileAttachmentContainer,\n ]}\n >\n <FileAttachmentIcon mimeType={lastAttachment.mime_type} size={attachmentSize} />\n </View>\n ) : hasImage ? (\n <Image\n onError={() => setError(true)}\n source={{\n uri: getResizedImageUrl({\n height:\n stylesProp.imageAttachment?.height ||\n imageAttachment?.height ||\n styles.imageAttachment.height,\n url: (lastAttachment.image_url ||\n lastAttachment.thumb_url ||\n lastAttachment.og_scrape_url) as string,\n width:\n stylesProp.imageAttachment?.width ||\n imageAttachment?.width ||\n styles.imageAttachment.width,\n }),\n }}\n style={[styles.imageAttachment, imageAttachment, stylesProp.imageAttachment]}\n />\n ) : null\n ) : null}\n {messageType === 'video' && !lastAttachment.og_scrape_url ? (\n <VideoThumbnail style={[styles.videoAttachment]} />\n ) : null}\n <MessageTextContainer<StreamChatGenerics>\n markdownStyles={\n quotedMessage.deleted_at\n ? merge({ em: { color: grey } }, deletedText)\n : { text: styles.text, ...markdownStyles }\n }\n message={{\n ...quotedMessage,\n text: quotedMessage.deleted_at\n ? `_${t('Message deleted')}_`\n : quotedMessage.text\n ? quotedMessage.text.length > 170\n ? `${quotedMessage.text.slice(0, 170)}...`\n : quotedMessage.text\n : messageType === 'image'\n ? t('Photo')\n : messageType === 'video'\n ? t('Video')\n : messageType === 'file'\n ? lastAttachment?.title || ''\n : '',\n }}\n onlyEmojis={onlyEmojis}\n styles={{\n textContainer: [\n {\n marginRight:\n hasImage || messageType === 'video'\n ? Number(\n stylesProp.imageAttachment?.height ||\n imageAttachment.height ||\n styles.imageAttachment.height,\n ) +\n Number(\n stylesProp.imageAttachment?.marginLeft ||\n imageAttachment.marginLeft ||\n styles.imageAttachment.marginLeft,\n )\n : messageType === 'file'\n ? attachmentSize +\n Number(\n stylesProp.fileAttachmentContainer?.paddingLeft ||\n fileAttachmentContainer.paddingLeft ||\n styles.fileAttachmentContainer.paddingLeft,\n )\n : undefined,\n },\n styles.textContainer,\n textContainer,\n stylesProp.textContainer,\n ],\n }}\n />\n </View>\n </View>\n );\n};\n\n/**\n * When a reply is rendered in a MessageSimple, it does\n * not have a MessageInputContext. As this is deliberate,\n * this function exists to avoid the error thrown when\n * using a context outside of its provider.\n * */\nconst useMessageInputContextIfAvailable = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>() => {\n const contextValue = useContext(\n MessageInputContext,\n ) as unknown as MessageInputContextValue<StreamChatGenerics>;\n\n return contextValue;\n};\n\nconst areEqual = <StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>(\n prevProps: ReplyPropsWithContext<StreamChatGenerics>,\n nextProps: ReplyPropsWithContext<StreamChatGenerics>,\n) => {\n const { quotedMessage: prevQuotedMessage } = prevProps;\n const { quotedMessage: nextQuotedMessage } = nextProps;\n\n const quotedMessageEqual =\n !!prevQuotedMessage &&\n !!nextQuotedMessage &&\n typeof prevQuotedMessage !== 'boolean' &&\n typeof nextQuotedMessage !== 'boolean'\n ? prevQuotedMessage.id === nextQuotedMessage.id &&\n prevQuotedMessage.deleted_at === nextQuotedMessage.deleted_at\n : !!prevQuotedMessage === !!nextQuotedMessage;\n\n if (!quotedMessageEqual) return false;\n\n return true;\n};\n\nconst MemoizedReply = React.memo(ReplyWithContext, areEqual) as typeof ReplyWithContext;\n\nexport type ReplyProps<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Partial<ReplyPropsWithContext<StreamChatGenerics>>;\n\n/**\n * UI Component for reply\n */\nexport const Reply = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: ReplyProps<StreamChatGenerics>,\n) => {\n const { message } = useMessageContext<StreamChatGenerics>();\n\n const { FileAttachmentIcon = FileIconDefault, MessageAvatar = MessageAvatarDefault } =\n useMessagesContext<StreamChatGenerics>();\n\n const { editing, quotedMessage } = useMessageInputContextIfAvailable<StreamChatGenerics>();\n\n const quotedEditingMessage = (\n typeof editing !== 'boolean' ? editing?.quoted_message || false : false\n ) as MessageInputContextValue<StreamChatGenerics>['quotedMessage'];\n\n const { t } = useTranslationContext();\n\n return (\n <MemoizedReply\n {...{\n FileAttachmentIcon,\n MessageAvatar,\n quotedMessage: message\n ? (message.quoted_message as MessageInputContextValue<StreamChatGenerics>['quotedMessage'])\n : quotedMessage || quotedEditingMessage,\n t,\n }}\n {...props}\n />\n );\n};\n\nReply.displayName = 'Reply{reply}';\n"]}
@@ -37,7 +37,7 @@
37
37
  "Ok": "Ok",
38
38
  "Only visible to you": "Only visible to you",
39
39
  "Photo": "Photo",
40
- "Photos": "Photos",
40
+ "Photos and Videos": "Photos and Videos",
41
41
  "Pin to Conversation": "Pin to Conversation",
42
42
  "Please enable access to your photos and videos so you can share them.": "Please enable access to your photos and videos so you can share them.",
43
43
  "Please select a channel first": "Please select a channel first",
@@ -56,6 +56,7 @@
56
56
  "Unmute User": "Unmute User",
57
57
  "Unpin from Conversation": "Unpin from Conversation",
58
58
  "Unread Messages": "Unread Messages",
59
+ "Video": "Video",
59
60
  "You": "You",
60
61
  "You can't send messages in this channel": "You can't send messages in this channel",
61
62
  "{{ firstUser }} and {{ nonSelfUserLength }} more are typing": "{{ firstUser }} and {{ nonSelfUserLength }} more are typing",
@@ -37,7 +37,7 @@
37
37
  "Ok": "Ok",
38
38
  "Only visible to you": "Seulement visible par vous",
39
39
  "Photo": "Photo",
40
- "Photos": "Photos",
40
+ "Photos and Videos": "Photos et vidéos",
41
41
  "Pin to Conversation": "Épingler à la conversation",
42
42
  "Please enable access to your photos and videos so you can share them.": "Veuillez autoriser l'accès à vos photos et vidéos afin de pouvoir les partager.",
43
43
  "Please select a channel first": "Veuillez d'abord selectionnez un canal",
@@ -56,6 +56,7 @@
56
56
  "Unmute User": "Activer le son de Utilisateur",
57
57
  "Unpin from Conversation": "Décrocher de la conversation",
58
58
  "Unread Messages": "Messages non lus",
59
+ "Video": "Vidéo",
59
60
  "You": "Toi",
60
61
  "You can't send messages in this channel": "You can't send messages in this channel",
61
62
  "{{ firstUser }} and {{ nonSelfUserLength }} more are typing": "{{ firstUser }} et {{ nonSelfUserLength }} autres sont en train d'écrire",
@@ -38,6 +38,7 @@
38
38
  "Only visible to you": "גלוי רק לך",
39
39
  "Photo": "תמונה",
40
40
  "Photos": "תמונות",
41
+ "Photos and Videos": "תמונות ווידאו",
41
42
  "Pin to Conversation": "הצמד/י לשיחה",
42
43
  "Please enable access to your photos and videos so you can share them.": "אפשר/י גישה לתמונות ולסרטונים שלך כדי שתוכל/י לשתף אותם.",
43
44
  "Please select a channel first": "אנא בחר/י שיחה תחילה",
@@ -56,6 +57,7 @@
56
57
  "Unmute User": "בטל/י השתקת משתמש",
57
58
  "Unpin from Conversation": "בטל/י הצמדה לשיחה",
58
59
  "Unread Messages": "הודעות שטרם נקרו",
60
+ "Video": "וִידֵאוֹ",
59
61
  "You": "את/ה",
60
62
  "You can't send messages in this channel": "את/ב לא יכול/ה לשלוח הודעות בשיחה זו",
61
63
  "{{ firstUser }} and {{ nonSelfUserLength }} more are typing": "{{ firstUser }} ו-{{ nonSelfUserLength }} משתמש/ים אחר/ים מקלידים",
@@ -37,7 +37,7 @@
37
37
  "Ok": "ठीक",
38
38
  "Only visible to you": "केवल आपको दिखाई दे रहा है",
39
39
  "Photo": "तस्वीर",
40
- "Photos": "तस्वीरें",
40
+ "Photos and Videos": "तस्वीरें और वीडियों",
41
41
  "Pin to Conversation": "बातचीत में पिन करें",
42
42
  "Please enable access to your photos and videos so you can share them.": "कृपया अपनी फ़ोटो और वीडियो तक पहुंच सक्षम करें ताकि आप उन्हें साझा कर सकें।",
43
43
  "Please select a channel first": "कृपया पहले एक चैनल चुनें",
@@ -56,6 +56,7 @@
56
56
  "Unmute User": "उपयोगकर्ता को अनम्यूट करें",
57
57
  "Unpin from Conversation": "बातचीत से अनपिन करें",
58
58
  "Unread Messages": "अपठित संदेश",
59
+ "Video": "वीडियो",
59
60
  "You": "आप",
60
61
  "You can't send messages in this channel": "आप इस चैनल में संदेश नहीं भेज सकते",
61
62
  "{{ firstUser }} and {{ nonSelfUserLength }} more are typing": "{{ firstUser }} और {{ nonSelfUserLength }} अधिक टाइप कर रहे हैं",
@@ -37,7 +37,7 @@
37
37
  "Ok": "Ok",
38
38
  "Only visible to you": "Visibile solo a te",
39
39
  "Photo": "Foto",
40
- "Photos": "Fotografie",
40
+ "Photos and Videos": "Foto e Video",
41
41
  "Pin to Conversation": "Metti in evidenza",
42
42
  "Please enable access to your photos and videos so you can share them.": "Abilita l'accesso alle tue foto e ai tuoi video in modo da poterli condividere.",
43
43
  "Please select a channel first": "Seleziona un canale",
@@ -56,6 +56,7 @@
56
56
  "Unmute User": "Riattiva utente",
57
57
  "Unpin from Conversation": "Rimuovi dagli elementi in evidenza",
58
58
  "Unread Messages": "Messaggi non letti",
59
+ "Video": "Video",
59
60
  "You": "Tu",
60
61
  "You can't send messages in this channel": "Non puoi inviare messaggi in questo canale",
61
62
  "{{ firstUser }} and {{ nonSelfUserLength }} more are typing": "{{ firstUser }} e altri {{ nonSelfUserLength }} stanno scrivendo",
@@ -29,6 +29,7 @@
29
29
  "Ok": "確認",
30
30
  "Photo": "写真",
31
31
  "Photos": "写真",
32
+ "Photos and Videos": "写真と動画",
32
33
  "Pin to Conversation": "会話にピンする",
33
34
  "Please enable access to your photos and videos so you can share them.": "写真やビデオへのアクセスを有効にして、共有できるようにしてください。",
34
35
  "Please select a channel first": "最初にチャンネルを選択してください",
@@ -46,6 +47,7 @@
46
47
  "Unmute User": "ユーザーのミュートを解除する",
47
48
  "Unpin from Conversation": "会話のピンを外す",
48
49
  "Unread Messages": "未読メッセージ",
50
+ "Video": "ビデオ",
49
51
  "You": "あなた",
50
52
  "{{ firstUser }} and {{ nonSelfUserLength }} more are typing": "{{ firstUser }}と{{ nonSelfUserLength }}人がタイピングしています",
51
53
  "{{ index }} of {{ photoLength }}": "{{ index }} / {{ photoLength }}",
@@ -29,6 +29,7 @@
29
29
  "Ok": "확인",
30
30
  "Photo": "사진",
31
31
  "Photos": "사진",
32
+ "Photos and Videos": "사진과 동영상",
32
33
  "Pin to Conversation": "대화에 고정합니다",
33
34
  "Please enable access to your photos and videos so you can share them.": "사진 및 비디오에 대한 액세스를 사용하여 공유 할 수 있도록합니다.",
34
35
  "Please select a channel first": "먼저 채널을 선택하십시오",
@@ -46,6 +47,7 @@
46
47
  "Unmute User": "사용자 음소거 해제",
47
48
  "Unpin from Conversation": "대화의 핀을 분리합니다",
48
49
  "Unread Messages": "읽지 않은 메시지",
50
+ "Video": "동영상",
49
51
  "You": "당신",
50
52
  "{{ firstUser }} and {{ nonSelfUserLength }} more are typing": "{{ firstUser }} 외 {{ nonSelfUserLength }}명이 입력 중입니다",
51
53
  "{{ index }} of {{ photoLength }}": "{{ index }} / {{ photoLength }}",
@@ -37,7 +37,7 @@
37
37
  "Ok": "Oké",
38
38
  "Only visible to you": "Alleen zichtbaar voor jou",
39
39
  "Photo": "Foto",
40
- "Photos": "Foto's",
40
+ "Photos and Videos": "Foto's en video's",
41
41
  "Pin to Conversation": "Vastmaken aan gesprek",
42
42
  "Please enable access to your photos and videos so you can share them.": "Schakel toegang tot uw foto's en video's in zodat u ze kunt delen.",
43
43
  "Please select a channel first": "Selecteer eerst een kanaal",
@@ -56,6 +56,7 @@
56
56
  "Unmute User": "Dempen van gebruiker opheffen",
57
57
  "Unpin from Conversation": "Losmaken van gesprek",
58
58
  "Unread Messages": "Ongelezen Berichten",
59
+ "Video": "Video",
59
60
  "You": "U",
60
61
  "You can't send messages in this channel": "Je kan geen berichten sturen in dit kanaal",
61
62
  "{{ firstUser }} and {{ nonSelfUserLength }} more are typing": "{{ firstUser }} en {{ nonSelfUserLength }} anderen zijn aan het typen",
@@ -37,7 +37,7 @@
37
37
  "Ok": "Oк",
38
38
  "Only visible to you": "Видно только вам",
39
39
  "Photo": "Фото",
40
- "Photos": "Фото",
40
+ "Photos and Videos": "Фото и видео",
41
41
  "Pin to Conversation": "Закрепить к беседе",
42
42
  "Please enable access to your photos and videos so you can share them.": "Разрешите доступ к своим фотографиям и видео, чтобы вы могли ими поделиться.",
43
43
  "Please select a channel first": "Пожалуйста, сначала выберите канал",
@@ -56,6 +56,7 @@
56
56
  "Unmute User": "Включить микрофон",
57
57
  "Unpin from Conversation": "Открепить от беседы",
58
58
  "Unread Messages": "Непрочитанные Сообщения",
59
+ "Video": "видео",
59
60
  "You": "Вы",
60
61
  "You can't send messages in this channel": "Вы не можете отправлять сообщения в этот канал",
61
62
  "{{ firstUser }} and {{ nonSelfUserLength }} more are typing": "{{ firstUser }} и еще {{ nonSelfUserLength }} пишут",
@@ -37,7 +37,7 @@
37
37
  "Ok": "Tamam",
38
38
  "Only visible to you": "Sadece siz görebilirsiniz",
39
39
  "Photo": "Fotoğraf",
40
- "Photos": "Fotoğraflar",
40
+ "Photos and Videos": "Fotoğraflar ve Videolar",
41
41
  "Pin to Conversation": "Konuşmaya sabitle",
42
42
  "Please enable access to your photos and videos so you can share them.": "Lütfen paylaşabilmek için fotoğraflarınıza ve videolarınıza erişimi etkinleştirin.",
43
43
  "Please select a channel first": "Lütfen önce bir kanal seçin",
@@ -56,6 +56,7 @@
56
56
  "Unmute User": "Kullanıcının sesini aç",
57
57
  "Unpin from Conversation": "Sabitlenmeyi kaldır",
58
58
  "Unread Messages": "Okunmamış Mesajlar",
59
+ "Video": "Video",
59
60
  "You": "Sen",
60
61
  "You can't send messages in this channel": "Bu konuşmaya mesaj gönderemezsiniz",
61
62
  "{{ firstUser }} and {{ nonSelfUserLength }} more are typing": "{{ firstUser }} ve {{ nonSelfUserLength }} kişi daha yazıyor",
@@ -1,3 +1,3 @@
1
1
  {
2
- "version": "4.10.1-beta.1"
2
+ "version": "4.11.0"
3
3
  }
@@ -37,7 +37,7 @@
37
37
  "Ok": "Ok",
38
38
  "Only visible to you": "Only visible to you",
39
39
  "Photo": "Photo",
40
- "Photos": "Photos",
40
+ "Photos and Videos": "Photos and Videos",
41
41
  "Pin to Conversation": "Pin to Conversation",
42
42
  "Please enable access to your photos and videos so you can share them.": "Please enable access to your photos and videos so you can share them.",
43
43
  "Please select a channel first": "Please select a channel first",
@@ -56,6 +56,7 @@
56
56
  "Unmute User": "Unmute User",
57
57
  "Unpin from Conversation": "Unpin from Conversation",
58
58
  "Unread Messages": "Unread Messages",
59
+ "Video": "Video",
59
60
  "You": "You",
60
61
  "You can't send messages in this channel": "You can't send messages in this channel",
61
62
  "{{ firstUser }} and {{ nonSelfUserLength }} more are typing": "{{ firstUser }} and {{ nonSelfUserLength }} more are typing",
@@ -37,7 +37,7 @@
37
37
  "Ok": "Ok",
38
38
  "Only visible to you": "Seulement visible par vous",
39
39
  "Photo": "Photo",
40
- "Photos": "Photos",
40
+ "Photos and Videos": "Photos et vidéos",
41
41
  "Pin to Conversation": "Épingler à la conversation",
42
42
  "Please enable access to your photos and videos so you can share them.": "Veuillez autoriser l'accès à vos photos et vidéos afin de pouvoir les partager.",
43
43
  "Please select a channel first": "Veuillez d'abord selectionnez un canal",
@@ -56,6 +56,7 @@
56
56
  "Unmute User": "Activer le son de Utilisateur",
57
57
  "Unpin from Conversation": "Décrocher de la conversation",
58
58
  "Unread Messages": "Messages non lus",
59
+ "Video": "Vidéo",
59
60
  "You": "Toi",
60
61
  "You can't send messages in this channel": "You can't send messages in this channel",
61
62
  "{{ firstUser }} and {{ nonSelfUserLength }} more are typing": "{{ firstUser }} et {{ nonSelfUserLength }} autres sont en train d'écrire",
@@ -38,6 +38,7 @@
38
38
  "Only visible to you": "גלוי רק לך",
39
39
  "Photo": "תמונה",
40
40
  "Photos": "תמונות",
41
+ "Photos and Videos": "תמונות ווידאו",
41
42
  "Pin to Conversation": "הצמד/י לשיחה",
42
43
  "Please enable access to your photos and videos so you can share them.": "אפשר/י גישה לתמונות ולסרטונים שלך כדי שתוכל/י לשתף אותם.",
43
44
  "Please select a channel first": "אנא בחר/י שיחה תחילה",
@@ -56,6 +57,7 @@
56
57
  "Unmute User": "בטל/י השתקת משתמש",
57
58
  "Unpin from Conversation": "בטל/י הצמדה לשיחה",
58
59
  "Unread Messages": "הודעות שטרם נקרו",
60
+ "Video": "וִידֵאוֹ",
59
61
  "You": "את/ה",
60
62
  "You can't send messages in this channel": "את/ב לא יכול/ה לשלוח הודעות בשיחה זו",
61
63
  "{{ firstUser }} and {{ nonSelfUserLength }} more are typing": "{{ firstUser }} ו-{{ nonSelfUserLength }} משתמש/ים אחר/ים מקלידים",
@@ -37,7 +37,7 @@
37
37
  "Ok": "ठीक",
38
38
  "Only visible to you": "केवल आपको दिखाई दे रहा है",
39
39
  "Photo": "तस्वीर",
40
- "Photos": "तस्वीरें",
40
+ "Photos and Videos": "तस्वीरें और वीडियों",
41
41
  "Pin to Conversation": "बातचीत में पिन करें",
42
42
  "Please enable access to your photos and videos so you can share them.": "कृपया अपनी फ़ोटो और वीडियो तक पहुंच सक्षम करें ताकि आप उन्हें साझा कर सकें।",
43
43
  "Please select a channel first": "कृपया पहले एक चैनल चुनें",
@@ -56,6 +56,7 @@
56
56
  "Unmute User": "उपयोगकर्ता को अनम्यूट करें",
57
57
  "Unpin from Conversation": "बातचीत से अनपिन करें",
58
58
  "Unread Messages": "अपठित संदेश",
59
+ "Video": "वीडियो",
59
60
  "You": "आप",
60
61
  "You can't send messages in this channel": "आप इस चैनल में संदेश नहीं भेज सकते",
61
62
  "{{ firstUser }} and {{ nonSelfUserLength }} more are typing": "{{ firstUser }} और {{ nonSelfUserLength }} अधिक टाइप कर रहे हैं",
@@ -37,7 +37,7 @@
37
37
  "Ok": "Ok",
38
38
  "Only visible to you": "Visibile solo a te",
39
39
  "Photo": "Foto",
40
- "Photos": "Fotografie",
40
+ "Photos and Videos": "Foto e Video",
41
41
  "Pin to Conversation": "Metti in evidenza",
42
42
  "Please enable access to your photos and videos so you can share them.": "Abilita l'accesso alle tue foto e ai tuoi video in modo da poterli condividere.",
43
43
  "Please select a channel first": "Seleziona un canale",
@@ -56,6 +56,7 @@
56
56
  "Unmute User": "Riattiva utente",
57
57
  "Unpin from Conversation": "Rimuovi dagli elementi in evidenza",
58
58
  "Unread Messages": "Messaggi non letti",
59
+ "Video": "Video",
59
60
  "You": "Tu",
60
61
  "You can't send messages in this channel": "Non puoi inviare messaggi in questo canale",
61
62
  "{{ firstUser }} and {{ nonSelfUserLength }} more are typing": "{{ firstUser }} e altri {{ nonSelfUserLength }} stanno scrivendo",
@@ -29,6 +29,7 @@
29
29
  "Ok": "確認",
30
30
  "Photo": "写真",
31
31
  "Photos": "写真",
32
+ "Photos and Videos": "写真と動画",
32
33
  "Pin to Conversation": "会話にピンする",
33
34
  "Please enable access to your photos and videos so you can share them.": "写真やビデオへのアクセスを有効にして、共有できるようにしてください。",
34
35
  "Please select a channel first": "最初にチャンネルを選択してください",
@@ -46,6 +47,7 @@
46
47
  "Unmute User": "ユーザーのミュートを解除する",
47
48
  "Unpin from Conversation": "会話のピンを外す",
48
49
  "Unread Messages": "未読メッセージ",
50
+ "Video": "ビデオ",
49
51
  "You": "あなた",
50
52
  "{{ firstUser }} and {{ nonSelfUserLength }} more are typing": "{{ firstUser }}と{{ nonSelfUserLength }}人がタイピングしています",
51
53
  "{{ index }} of {{ photoLength }}": "{{ index }} / {{ photoLength }}",
@@ -29,6 +29,7 @@
29
29
  "Ok": "확인",
30
30
  "Photo": "사진",
31
31
  "Photos": "사진",
32
+ "Photos and Videos": "사진과 동영상",
32
33
  "Pin to Conversation": "대화에 고정합니다",
33
34
  "Please enable access to your photos and videos so you can share them.": "사진 및 비디오에 대한 액세스를 사용하여 공유 할 수 있도록합니다.",
34
35
  "Please select a channel first": "먼저 채널을 선택하십시오",
@@ -46,6 +47,7 @@
46
47
  "Unmute User": "사용자 음소거 해제",
47
48
  "Unpin from Conversation": "대화의 핀을 분리합니다",
48
49
  "Unread Messages": "읽지 않은 메시지",
50
+ "Video": "동영상",
49
51
  "You": "당신",
50
52
  "{{ firstUser }} and {{ nonSelfUserLength }} more are typing": "{{ firstUser }} 외 {{ nonSelfUserLength }}명이 입력 중입니다",
51
53
  "{{ index }} of {{ photoLength }}": "{{ index }} / {{ photoLength }}",
@@ -37,7 +37,7 @@
37
37
  "Ok": "Oké",
38
38
  "Only visible to you": "Alleen zichtbaar voor jou",
39
39
  "Photo": "Foto",
40
- "Photos": "Foto's",
40
+ "Photos and Videos": "Foto's en video's",
41
41
  "Pin to Conversation": "Vastmaken aan gesprek",
42
42
  "Please enable access to your photos and videos so you can share them.": "Schakel toegang tot uw foto's en video's in zodat u ze kunt delen.",
43
43
  "Please select a channel first": "Selecteer eerst een kanaal",
@@ -56,6 +56,7 @@
56
56
  "Unmute User": "Dempen van gebruiker opheffen",
57
57
  "Unpin from Conversation": "Losmaken van gesprek",
58
58
  "Unread Messages": "Ongelezen Berichten",
59
+ "Video": "Video",
59
60
  "You": "U",
60
61
  "You can't send messages in this channel": "Je kan geen berichten sturen in dit kanaal",
61
62
  "{{ firstUser }} and {{ nonSelfUserLength }} more are typing": "{{ firstUser }} en {{ nonSelfUserLength }} anderen zijn aan het typen",
@@ -37,7 +37,7 @@
37
37
  "Ok": "Oк",
38
38
  "Only visible to you": "Видно только вам",
39
39
  "Photo": "Фото",
40
- "Photos": "Фото",
40
+ "Photos and Videos": "Фото и видео",
41
41
  "Pin to Conversation": "Закрепить к беседе",
42
42
  "Please enable access to your photos and videos so you can share them.": "Разрешите доступ к своим фотографиям и видео, чтобы вы могли ими поделиться.",
43
43
  "Please select a channel first": "Пожалуйста, сначала выберите канал",
@@ -56,6 +56,7 @@
56
56
  "Unmute User": "Включить микрофон",
57
57
  "Unpin from Conversation": "Открепить от беседы",
58
58
  "Unread Messages": "Непрочитанные Сообщения",
59
+ "Video": "видео",
59
60
  "You": "Вы",
60
61
  "You can't send messages in this channel": "Вы не можете отправлять сообщения в этот канал",
61
62
  "{{ firstUser }} and {{ nonSelfUserLength }} more are typing": "{{ firstUser }} и еще {{ nonSelfUserLength }} пишут",
@@ -37,7 +37,7 @@
37
37
  "Ok": "Tamam",
38
38
  "Only visible to you": "Sadece siz görebilirsiniz",
39
39
  "Photo": "Fotoğraf",
40
- "Photos": "Fotoğraflar",
40
+ "Photos and Videos": "Fotoğraflar ve Videolar",
41
41
  "Pin to Conversation": "Konuşmaya sabitle",
42
42
  "Please enable access to your photos and videos so you can share them.": "Lütfen paylaşabilmek için fotoğraflarınıza ve videolarınıza erişimi etkinleştirin.",
43
43
  "Please select a channel first": "Lütfen önce bir kanal seçin",
@@ -56,6 +56,7 @@
56
56
  "Unmute User": "Kullanıcının sesini aç",
57
57
  "Unpin from Conversation": "Sabitlenmeyi kaldır",
58
58
  "Unread Messages": "Okunmamış Mesajlar",
59
+ "Video": "Video",
59
60
  "You": "Sen",
60
61
  "You can't send messages in this channel": "Bu konuşmaya mesaj gönderemezsiniz",
61
62
  "{{ firstUser }} and {{ nonSelfUserLength }} more are typing": "{{ firstUser }} ve {{ nonSelfUserLength }} kişi daha yazıyor",
@@ -150,7 +150,7 @@ export declare class Streami18n {
150
150
  Ok: string;
151
151
  "Only visible to you": string;
152
152
  Photo: string;
153
- Photos: string;
153
+ "Photos and Videos": string;
154
154
  "Pin to Conversation": string;
155
155
  "Please enable access to your photos and videos so you can share them.": string;
156
156
  "Please select a channel first": string;
@@ -169,6 +169,7 @@ export declare class Streami18n {
169
169
  "Unmute User": string;
170
170
  "Unpin from Conversation": string;
171
171
  "Unread Messages": string;
172
+ Video: string;
172
173
  You: string;
173
174
  "You can't send messages in this channel": string;
174
175
  "{{ firstUser }} and {{ nonSelfUserLength }} more are typing": string;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "stream-chat-react-native-core",
3
3
  "description": "The official React Native and Expo components for Stream Chat, a service for building chat applications",
4
- "version": "4.10.1-beta.1",
4
+ "version": "4.11.0",
5
5
  "author": {
6
6
  "company": "Stream.io Inc",
7
7
  "name": "Stream.io Inc"
@@ -137,7 +137,7 @@
137
137
  "react-native-builder-bob": "0.18.1",
138
138
  "react-native-fs": "2.18.0",
139
139
  "react-native-gesture-handler": "2.3.1",
140
- "react-native-reanimated": "2.3.3",
140
+ "react-native-reanimated": "2.7.0",
141
141
  "react-native-svg": "12.1.1",
142
142
  "react-native-typescript-transformer": "1.2.13",
143
143
  "react-native-web": "0.15.0",
@@ -134,7 +134,7 @@ export const ImageGalleryFooterWithContext = <
134
134
  const [shareMenuOpen, setShareMenuOpen] = useState(false);
135
135
  const {
136
136
  theme: {
137
- colors: { black },
137
+ colors: { black, white },
138
138
  imageGallery: {
139
139
  footer: {
140
140
  centerContainer,
@@ -186,7 +186,7 @@ export const ImageGalleryFooterWithContext = <
186
186
  pointerEvents={'box-none'}
187
187
  style={styles.wrapper}
188
188
  >
189
- <ReanimatedSafeAreaView style={[container, footerStyle]}>
189
+ <ReanimatedSafeAreaView style={[container, footerStyle, { backgroundColor: white }]}>
190
190
  {photo.type === 'video' ? (
191
191
  videoControlElement ? (
192
192
  videoControlElement({ duration, onPlayPause, onProgressDrag, paused, progress })
@@ -200,7 +200,7 @@ export const ImageGalleryFooterWithContext = <
200
200
  />
201
201
  )
202
202
  ) : null}
203
- <View style={[styles.innerContainer, innerContainer, { backgroundColor: 'white' }]}>
203
+ <View style={[styles.innerContainer, innerContainer, { backgroundColor: white }]}>
204
204
  {leftElement ? (
205
205
  leftElement({ openGridView, photo, share, shareMenuOpen })
206
206
  ) : (
@@ -65,7 +65,7 @@ export const ImageGridHandle: React.FC<Props> = (props) => {
65
65
  {centerComponent ? (
66
66
  centerComponent({ closeGridView })
67
67
  ) : (
68
- <Text style={[styles.text, { color: black }, handleText]}>{t('Photos')}</Text>
68
+ <Text style={[styles.text, { color: black }, handleText]}>{t('Photos and Videos')}</Text>
69
69
  )}
70
70
  {rightComponent ? (
71
71
  rightComponent({ closeGridView })