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
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["Giphy.tsx"],"names":["styles","StyleSheet","create","actionsRow","flexDirection","buttonContainer","alignItems","borderTopWidth","flex","justifyContent","cancel","fontSize","fontWeight","paddingVertical","centerChild","display","container","overflow","width","giphy","alignSelf","borderRadius","height","maxWidth","giphyContainer","giphyHeaderText","giphyHeaderTitle","marginLeft","giphyMask","bottom","left","position","giphyMaskText","header","padding","imageErrorIndicatorStyle","imageLoadingIndicatorStyle","selectionContainer","borderBottomRightRadius","borderWidth","selectionImageContainer","margin","send","shuffle","shuffleButton","GiphyWithContext","props","additionalTouchableProps","attachment","giphyVersion","handleAction","ImageLoadingFailedIndicator","ImageLoadingIndicator","isMyMessage","message","onLongPress","onPress","onPressIn","preventPress","setMessages","setOverlay","setSelectedMessage","actions","giphyData","image_url","thumb_url","title","type","isLoadingImage","isLoadingImageError","setLoadingImage","setLoadingImageError","theme","colors","accent_blue","black","grey","grey_dark","grey_gainsboro","label_bg_transparent","white","messageSimple","uri","giphyDimensions","defaultOnPress","messageId","id","url","giphyVersionInfo","parseFloat","backgroundColor","borderColor","color","error","console","warn","name","value","borderRightWidth","text","event","emitter","defaultHandler","toUpperCase","areEqual","prevProps","nextProps","prevActions","prevImageUrl","prevThumbUrl","prevGiphyVersion","prevIsMyMessage","prevMessage","nextActions","nextImageUrl","nextThumbUrl","nextGiphyVersion","nextIsMyMessage","nextMessage","imageUrlEqual","thumbUrlEqual","actionsEqual","Array","isArray","length","giphyVersionEqual","isMyMessageEqual","messageEqual","updated_at","MemoizedGiphy","React","memo","Giphy","ContextImageLoadingFailedIndicator","ContextImageLoadingIndicator","displayName"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { Image, StyleSheet, Text, TouchableOpacity, View } from 'react-native';\n\nimport type { Attachment } from 'stream-chat';\n\nimport {\n ImageGalleryContextValue,\n useImageGalleryContext,\n} from '../../contexts/imageGalleryContext/ImageGalleryContext';\nimport {\n MessageContextValue,\n useMessageContext,\n} from '../../contexts/messageContext/MessageContext';\nimport {\n MessagesContextValue,\n useMessagesContext,\n} from '../../contexts/messagesContext/MessagesContext';\nimport {\n OverlayContextValue,\n useOverlayContext,\n} from '../../contexts/overlayContext/OverlayContext';\nimport { useTheme } from '../../contexts/themeContext/ThemeContext';\nimport { useLoadingImage } from '../../hooks/useLoadingImage';\nimport { GiphyIcon } from '../../icons';\nimport { Lightning } from '../../icons/Lightning';\nimport type { DefaultStreamChatGenerics } from '../../types/types';\nimport { makeImageCompatibleUrl } from '../../utils/utils';\n\nconst styles = StyleSheet.create({\n actionsRow: {\n flexDirection: 'row',\n },\n buttonContainer: {\n alignItems: 'center',\n borderTopWidth: 1,\n flex: 1,\n justifyContent: 'center',\n },\n cancel: {\n fontSize: 14,\n fontWeight: '600',\n paddingVertical: 16,\n },\n centerChild: {\n alignItems: 'center',\n display: 'flex',\n justifyContent: 'center',\n },\n container: {\n overflow: 'hidden',\n width: 270,\n },\n giphy: {\n alignSelf: 'center',\n borderRadius: 2,\n height: 170,\n maxWidth: 270,\n width: 270,\n },\n giphyContainer: {\n alignItems: 'center',\n borderRadius: 12,\n flexDirection: 'row',\n height: 24,\n justifyContent: 'center',\n width: 68,\n },\n giphyHeaderText: {\n fontSize: 16,\n fontWeight: '600',\n },\n giphyHeaderTitle: {\n fontSize: 14,\n marginLeft: 8,\n },\n giphyMask: {\n bottom: 8,\n left: 8,\n position: 'absolute',\n },\n giphyMaskText: {\n fontSize: 13,\n fontWeight: '600',\n },\n header: {\n alignItems: 'center',\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'space-between',\n padding: 8,\n width: '60%',\n },\n imageErrorIndicatorStyle: {\n alignItems: 'center',\n flex: 1,\n justifyContent: 'center',\n },\n imageLoadingIndicatorStyle: {\n alignItems: 'center',\n flex: 1,\n justifyContent: 'center',\n position: 'absolute',\n },\n selectionContainer: {\n borderBottomRightRadius: 0,\n borderRadius: 16,\n borderWidth: 1,\n overflow: 'hidden',\n width: 272,\n },\n selectionImageContainer: {\n alignSelf: 'center',\n margin: 1,\n },\n send: {\n fontSize: 14,\n fontWeight: '600',\n paddingVertical: 16,\n },\n shuffle: {\n fontSize: 14,\n fontWeight: '600',\n paddingVertical: 16,\n },\n shuffleButton: {\n alignItems: 'center',\n borderRadius: 16,\n borderWidth: 1,\n height: 32,\n justifyContent: 'center',\n width: 32,\n },\n});\n\nexport type GiphyPropsWithContext<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Pick<ImageGalleryContextValue<StreamChatGenerics>, 'setSelectedMessage' | 'setMessages'> &\n Pick<\n MessageContextValue<StreamChatGenerics>,\n | 'handleAction'\n | 'isMyMessage'\n | 'message'\n | 'onLongPress'\n | 'onPress'\n | 'onPressIn'\n | 'preventPress'\n > &\n Pick<\n MessagesContextValue<StreamChatGenerics>,\n | 'giphyVersion'\n | 'additionalTouchableProps'\n | 'ImageLoadingIndicator'\n | 'ImageLoadingFailedIndicator'\n > & {\n attachment: Attachment<StreamChatGenerics>;\n } & Pick<OverlayContextValue, 'setOverlay'>;\n\nconst GiphyWithContext = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: GiphyPropsWithContext<StreamChatGenerics>,\n) => {\n const {\n additionalTouchableProps,\n attachment,\n giphyVersion,\n handleAction,\n ImageLoadingFailedIndicator,\n ImageLoadingIndicator,\n isMyMessage,\n message,\n onLongPress,\n onPress,\n onPressIn,\n preventPress,\n setMessages,\n setOverlay,\n setSelectedMessage,\n } = props;\n\n const { actions, giphy: giphyData, image_url, thumb_url, title, type } = attachment;\n\n const { isLoadingImage, isLoadingImageError, setLoadingImage, setLoadingImageError } =\n useLoadingImage();\n\n const {\n theme: {\n colors: { accent_blue, black, grey, grey_dark, grey_gainsboro, label_bg_transparent, white },\n messageSimple: {\n giphy: {\n buttonContainer,\n cancel,\n container,\n giphy,\n giphyContainer,\n giphyHeaderText,\n giphyHeaderTitle,\n giphyMask,\n giphyMaskText,\n header,\n selectionContainer,\n send,\n shuffle,\n },\n },\n },\n } = useTheme();\n\n let uri = image_url || thumb_url;\n const giphyDimensions: { height?: number; width?: number } = {};\n\n const defaultOnPress = () => {\n setMessages([message]);\n setSelectedMessage({ messageId: message.id, url: uri });\n setOverlay('gallery');\n };\n\n if (type === 'giphy' && giphyData) {\n const giphyVersionInfo = giphyData[giphyVersion];\n uri = giphyVersionInfo.url;\n giphyDimensions.height = parseFloat(giphyVersionInfo.height);\n giphyDimensions.width = parseFloat(giphyVersionInfo.width);\n }\n\n if (!uri) return null;\n\n return actions ? (\n <View\n style={[\n styles.selectionContainer,\n { backgroundColor: white, borderColor: `${black}0D` },\n selectionContainer,\n ]}\n testID='giphy-action-attachment'\n >\n <View style={[styles.header, header]}>\n <GiphyIcon />\n <Text style={[styles.giphyHeaderText, giphyHeaderText]}>Giphy</Text>\n <Text\n style={[styles.giphyHeaderTitle, giphyHeaderTitle, { color: grey_dark }]}\n >{`/giphy ${title}`}</Text>\n </View>\n <View style={styles.selectionImageContainer}>\n <Image\n onError={(error) => {\n console.warn(error);\n setLoadingImage(false);\n setLoadingImageError(true);\n }}\n onLoadEnd={() => setLoadingImage(false)}\n onLoadStart={() => setLoadingImage(true)}\n resizeMode='contain'\n source={{ uri: makeImageCompatibleUrl(uri) }}\n style={[styles.giphy, giphyDimensions, giphy]}\n />\n </View>\n <View>\n <View style={styles.actionsRow}>\n <TouchableOpacity\n onPress={() => {\n if (actions?.[2].name && actions?.[2].value && handleAction) {\n handleAction(actions[2].name, actions[2].value);\n }\n }}\n style={[\n styles.buttonContainer,\n { borderColor: grey_gainsboro, borderRightWidth: 1 },\n buttonContainer,\n ]}\n testID={`${actions?.[2].value}-action-button`}\n >\n <Text style={[styles.cancel, { color: grey }, cancel]}>{actions?.[2].text}</Text>\n </TouchableOpacity>\n <TouchableOpacity\n onPress={() => {\n if (actions?.[1].name && actions?.[1].value && handleAction) {\n handleAction(actions[1].name, actions[1].value);\n }\n }}\n style={[\n styles.buttonContainer,\n { borderColor: grey_gainsboro, borderRightWidth: 1 },\n buttonContainer,\n ]}\n testID={`${actions?.[1].value}-action-button`}\n >\n <Text style={[styles.shuffle, { color: grey }, shuffle]}>{actions?.[1].text}</Text>\n </TouchableOpacity>\n <TouchableOpacity\n onPress={() => {\n if (actions?.[0].name && actions?.[0].value && handleAction) {\n handleAction(actions[0].name, actions[0].value);\n }\n }}\n style={[styles.buttonContainer, { borderColor: grey_gainsboro }, buttonContainer]}\n testID={`${actions?.[0].value}-action-button`}\n >\n <Text style={[styles.send, { color: accent_blue }, send]}>{actions?.[0].text}</Text>\n </TouchableOpacity>\n </View>\n </View>\n </View>\n ) : (\n <TouchableOpacity\n disabled={preventPress}\n onLongPress={(event) => {\n if (onLongPress) {\n onLongPress({\n emitter: 'giphy',\n event,\n });\n }\n }}\n onPress={(event) => {\n if (onPress) {\n onPress({\n defaultHandler: defaultOnPress,\n emitter: 'giphy',\n event,\n });\n }\n }}\n onPressIn={(event) => {\n if (onPressIn) {\n onPressIn({\n emitter: 'giphy',\n event,\n });\n }\n }}\n testID='giphy-attachment'\n {...additionalTouchableProps}\n >\n <View\n style={[\n styles.container,\n styles.centerChild,\n { backgroundColor: isMyMessage ? grey_gainsboro : white },\n container,\n ]}\n >\n <Image\n accessibilityLabel='Giphy Attachment Image'\n onError={(error) => {\n console.warn(error);\n setLoadingImage(false);\n setLoadingImageError(true);\n }}\n onLoadEnd={() => setLoadingImage(false)}\n onLoadStart={() => setLoadingImage(true)}\n resizeMode='contain'\n source={{ uri: makeImageCompatibleUrl(uri) }}\n style={[styles.giphy, giphyDimensions, giphy]}\n testID='giphy-attachment-image'\n />\n\n {isLoadingImageError && (\n <View style={{ position: 'absolute' }}>\n <ImageLoadingFailedIndicator style={styles.imageErrorIndicatorStyle} />\n </View>\n )}\n {isLoadingImage && (\n <View style={{ position: 'absolute' }}>\n <ImageLoadingIndicator style={styles.imageLoadingIndicatorStyle} />\n </View>\n )}\n <View style={[styles.giphyMask, giphyMask]}>\n <View\n style={[\n styles.giphyContainer,\n { backgroundColor: label_bg_transparent },\n giphyContainer,\n ]}\n >\n <Lightning height={16} pathFill={white} width={16} />\n <Text style={[styles.giphyMaskText, { color: white }, giphyMaskText]}>\n {type?.toUpperCase()}\n </Text>\n </View>\n </View>\n </View>\n </TouchableOpacity>\n );\n};\n\nconst areEqual = <StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>(\n prevProps: GiphyPropsWithContext<StreamChatGenerics>,\n nextProps: GiphyPropsWithContext<StreamChatGenerics>,\n) => {\n const {\n attachment: { actions: prevActions, image_url: prevImageUrl, thumb_url: prevThumbUrl },\n giphyVersion: prevGiphyVersion,\n isMyMessage: prevIsMyMessage,\n message: prevMessage,\n } = prevProps;\n const {\n attachment: { actions: nextActions, image_url: nextImageUrl, thumb_url: nextThumbUrl },\n giphyVersion: nextGiphyVersion,\n isMyMessage: nextIsMyMessage,\n message: nextMessage,\n } = nextProps;\n\n const imageUrlEqual = prevImageUrl === nextImageUrl;\n if (!imageUrlEqual) return false;\n\n const thumbUrlEqual = prevThumbUrl === nextThumbUrl;\n if (!thumbUrlEqual) return false;\n\n const actionsEqual =\n Array.isArray(prevActions) === Array.isArray(nextActions) &&\n ((Array.isArray(prevActions) &&\n Array.isArray(nextActions) &&\n prevActions.length === nextActions.length) ||\n prevActions === nextActions);\n if (!actionsEqual) return false;\n\n const giphyVersionEqual = prevGiphyVersion === nextGiphyVersion;\n if (!giphyVersionEqual) return false;\n\n const isMyMessageEqual = prevIsMyMessage === nextIsMyMessage;\n if (!isMyMessageEqual) return false;\n\n const messageEqual =\n prevMessage?.id === nextMessage?.id &&\n `${prevMessage?.updated_at}` === `${nextMessage?.updated_at}`;\n\n if (!messageEqual) return false;\n return true;\n};\n\nconst MemoizedGiphy = React.memo(GiphyWithContext, areEqual) as typeof GiphyWithContext;\n\nexport type GiphyProps<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Partial<GiphyPropsWithContext<StreamChatGenerics>> & {\n attachment: Attachment<StreamChatGenerics>;\n};\n\n/**\n * UI component for card in attachments.\n */\nexport const Giphy = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: GiphyProps<StreamChatGenerics>,\n) => {\n const { handleAction, isMyMessage, message, onLongPress, onPress, onPressIn, preventPress } =\n useMessageContext<StreamChatGenerics>();\n const { additionalTouchableProps, giphyVersion } = useMessagesContext<StreamChatGenerics>();\n const { setMessages, setSelectedMessage } = useImageGalleryContext<StreamChatGenerics>();\n const { setOverlay } = useOverlayContext();\n\n const {\n ImageLoadingFailedIndicator: ContextImageLoadingFailedIndicator,\n ImageLoadingIndicator: ContextImageLoadingIndicator,\n } = useMessagesContext<StreamChatGenerics>();\n const ImageLoadingFailedIndicator =\n ContextImageLoadingFailedIndicator || props.ImageLoadingFailedIndicator;\n const ImageLoadingIndicator = ContextImageLoadingIndicator || props.ImageLoadingIndicator;\n\n return (\n <MemoizedGiphy\n {...{\n additionalTouchableProps,\n giphyVersion,\n handleAction,\n ImageLoadingFailedIndicator,\n ImageLoadingIndicator,\n isMyMessage,\n message,\n onLongPress,\n onPress,\n onPressIn,\n preventPress,\n setMessages,\n setOverlay,\n setSelectedMessage,\n }}\n {...props}\n />\n );\n};\n\nGiphy.displayName = 'Giphy{messageSimple{giphy}}';\n"]}
|
|
1
|
+
{"version":3,"sources":["Giphy.tsx"],"names":["styles","StyleSheet","create","actionsRow","flexDirection","buttonContainer","alignItems","borderTopWidth","flex","justifyContent","cancel","fontSize","fontWeight","paddingVertical","centerChild","display","container","overflow","width","giphy","alignSelf","borderRadius","height","maxWidth","giphyContainer","giphyHeaderText","giphyHeaderTitle","marginLeft","giphyMask","bottom","left","position","giphyMaskText","header","padding","imageErrorIndicatorStyle","imageLoadingIndicatorStyle","selectionContainer","borderBottomRightRadius","borderWidth","selectionImageContainer","margin","send","shuffle","shuffleButton","GiphyWithContext","props","additionalTouchableProps","attachment","giphyVersion","handleAction","ImageComponent","Image","ImageLoadingFailedIndicator","ImageLoadingIndicator","isMyMessage","message","onLongPress","onPress","onPressIn","preventPress","setMessages","setOverlay","setSelectedMessage","actions","giphyData","image_url","thumb_url","title","type","isLoadingImage","isLoadingImageError","setLoadingImage","setLoadingImageError","theme","colors","accent_blue","black","grey","grey_dark","grey_gainsboro","label_bg_transparent","white","messageSimple","uri","giphyDimensions","defaultOnPress","messageId","id","url","giphyVersionInfo","parseFloat","backgroundColor","borderColor","color","error","console","warn","name","value","borderRightWidth","text","event","emitter","defaultHandler","toUpperCase","areEqual","prevProps","nextProps","prevActions","prevImageUrl","prevThumbUrl","prevGiphyVersion","prevIsMyMessage","prevMessage","nextActions","nextImageUrl","nextThumbUrl","nextGiphyVersion","nextIsMyMessage","nextMessage","imageUrlEqual","thumbUrlEqual","actionsEqual","Array","isArray","length","giphyVersionEqual","isMyMessageEqual","messageEqual","updated_at","MemoizedGiphy","React","memo","Giphy","ContextImageLoadingFailedIndicator","ContextImageLoadingIndicator","displayName"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { Image, StyleSheet, Text, TouchableOpacity, View } from 'react-native';\n\nimport type { Attachment } from 'stream-chat';\n\nimport { ChatContextValue, useChatContext } from '../../contexts/chatContext/ChatContext';\n\nimport {\n ImageGalleryContextValue,\n useImageGalleryContext,\n} from '../../contexts/imageGalleryContext/ImageGalleryContext';\nimport {\n MessageContextValue,\n useMessageContext,\n} from '../../contexts/messageContext/MessageContext';\nimport {\n MessagesContextValue,\n useMessagesContext,\n} from '../../contexts/messagesContext/MessagesContext';\nimport {\n OverlayContextValue,\n useOverlayContext,\n} from '../../contexts/overlayContext/OverlayContext';\nimport { useTheme } from '../../contexts/themeContext/ThemeContext';\nimport { useLoadingImage } from '../../hooks/useLoadingImage';\nimport { GiphyIcon } from '../../icons';\nimport { Lightning } from '../../icons/Lightning';\nimport type { DefaultStreamChatGenerics } from '../../types/types';\nimport { makeImageCompatibleUrl } from '../../utils/utils';\n\nconst styles = StyleSheet.create({\n actionsRow: {\n flexDirection: 'row',\n },\n buttonContainer: {\n alignItems: 'center',\n borderTopWidth: 1,\n flex: 1,\n justifyContent: 'center',\n },\n cancel: {\n fontSize: 14,\n fontWeight: '600',\n paddingVertical: 16,\n },\n centerChild: {\n alignItems: 'center',\n display: 'flex',\n justifyContent: 'center',\n },\n container: {\n overflow: 'hidden',\n width: 270,\n },\n giphy: {\n alignSelf: 'center',\n borderRadius: 2,\n height: 170,\n maxWidth: 270,\n width: 270,\n },\n giphyContainer: {\n alignItems: 'center',\n borderRadius: 12,\n flexDirection: 'row',\n height: 24,\n justifyContent: 'center',\n width: 68,\n },\n giphyHeaderText: {\n fontSize: 16,\n fontWeight: '600',\n },\n giphyHeaderTitle: {\n fontSize: 14,\n marginLeft: 8,\n },\n giphyMask: {\n bottom: 8,\n left: 8,\n position: 'absolute',\n },\n giphyMaskText: {\n fontSize: 13,\n fontWeight: '600',\n },\n header: {\n alignItems: 'center',\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'space-between',\n padding: 8,\n width: '60%',\n },\n imageErrorIndicatorStyle: {\n alignItems: 'center',\n flex: 1,\n justifyContent: 'center',\n },\n imageLoadingIndicatorStyle: {\n alignItems: 'center',\n flex: 1,\n justifyContent: 'center',\n position: 'absolute',\n },\n selectionContainer: {\n borderBottomRightRadius: 0,\n borderRadius: 16,\n borderWidth: 1,\n overflow: 'hidden',\n width: 272,\n },\n selectionImageContainer: {\n alignSelf: 'center',\n margin: 1,\n },\n send: {\n fontSize: 14,\n fontWeight: '600',\n paddingVertical: 16,\n },\n shuffle: {\n fontSize: 14,\n fontWeight: '600',\n paddingVertical: 16,\n },\n shuffleButton: {\n alignItems: 'center',\n borderRadius: 16,\n borderWidth: 1,\n height: 32,\n justifyContent: 'center',\n width: 32,\n },\n});\n\nexport type GiphyPropsWithContext<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Pick<ImageGalleryContextValue<StreamChatGenerics>, 'setSelectedMessage' | 'setMessages'> &\n Pick<\n MessageContextValue<StreamChatGenerics>,\n | 'handleAction'\n | 'isMyMessage'\n | 'message'\n | 'onLongPress'\n | 'onPress'\n | 'onPressIn'\n | 'preventPress'\n > &\n Pick<ChatContextValue<StreamChatGenerics>, 'ImageComponent'> &\n Pick<\n MessagesContextValue<StreamChatGenerics>,\n | 'giphyVersion'\n | 'additionalTouchableProps'\n | 'ImageLoadingIndicator'\n | 'ImageLoadingFailedIndicator'\n > & {\n attachment: Attachment<StreamChatGenerics>;\n } & Pick<OverlayContextValue, 'setOverlay'>;\n\nconst GiphyWithContext = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: GiphyPropsWithContext<StreamChatGenerics>,\n) => {\n const {\n additionalTouchableProps,\n attachment,\n giphyVersion,\n handleAction,\n ImageComponent = Image,\n ImageLoadingFailedIndicator,\n ImageLoadingIndicator,\n isMyMessage,\n message,\n onLongPress,\n onPress,\n onPressIn,\n preventPress,\n setMessages,\n setOverlay,\n setSelectedMessage,\n } = props;\n\n const { actions, giphy: giphyData, image_url, thumb_url, title, type } = attachment;\n\n const { isLoadingImage, isLoadingImageError, setLoadingImage, setLoadingImageError } =\n useLoadingImage();\n\n const {\n theme: {\n colors: { accent_blue, black, grey, grey_dark, grey_gainsboro, label_bg_transparent, white },\n messageSimple: {\n giphy: {\n buttonContainer,\n cancel,\n container,\n giphy,\n giphyContainer,\n giphyHeaderText,\n giphyHeaderTitle,\n giphyMask,\n giphyMaskText,\n header,\n selectionContainer,\n send,\n shuffle,\n },\n },\n },\n } = useTheme();\n\n let uri = image_url || thumb_url;\n const giphyDimensions: { height?: number; width?: number } = {};\n\n const defaultOnPress = () => {\n setMessages([message]);\n setSelectedMessage({ messageId: message.id, url: uri });\n setOverlay('gallery');\n };\n\n if (type === 'giphy' && giphyData) {\n const giphyVersionInfo = giphyData[giphyVersion];\n uri = giphyVersionInfo.url;\n giphyDimensions.height = parseFloat(giphyVersionInfo.height);\n giphyDimensions.width = parseFloat(giphyVersionInfo.width);\n }\n\n if (!uri) return null;\n\n return actions ? (\n <View\n style={[\n styles.selectionContainer,\n { backgroundColor: white, borderColor: `${black}0D` },\n selectionContainer,\n ]}\n testID='giphy-action-attachment'\n >\n <View style={[styles.header, header]}>\n <GiphyIcon />\n <Text style={[styles.giphyHeaderText, giphyHeaderText]}>Giphy</Text>\n <Text\n style={[styles.giphyHeaderTitle, giphyHeaderTitle, { color: grey_dark }]}\n >{`/giphy ${title}`}</Text>\n </View>\n <View style={styles.selectionImageContainer}>\n <ImageComponent\n onError={(error) => {\n console.warn(error);\n setLoadingImage(false);\n setLoadingImageError(true);\n }}\n onLoadEnd={() => setLoadingImage(false)}\n onLoadStart={() => setLoadingImage(true)}\n resizeMode='contain'\n source={{ uri: makeImageCompatibleUrl(uri) }}\n style={[styles.giphy, giphyDimensions, giphy]}\n />\n </View>\n <View>\n <View style={styles.actionsRow}>\n <TouchableOpacity\n onPress={() => {\n if (actions?.[2].name && actions?.[2].value && handleAction) {\n handleAction(actions[2].name, actions[2].value);\n }\n }}\n style={[\n styles.buttonContainer,\n { borderColor: grey_gainsboro, borderRightWidth: 1 },\n buttonContainer,\n ]}\n testID={`${actions?.[2].value}-action-button`}\n >\n <Text style={[styles.cancel, { color: grey }, cancel]}>{actions?.[2].text}</Text>\n </TouchableOpacity>\n <TouchableOpacity\n onPress={() => {\n if (actions?.[1].name && actions?.[1].value && handleAction) {\n handleAction(actions[1].name, actions[1].value);\n }\n }}\n style={[\n styles.buttonContainer,\n { borderColor: grey_gainsboro, borderRightWidth: 1 },\n buttonContainer,\n ]}\n testID={`${actions?.[1].value}-action-button`}\n >\n <Text style={[styles.shuffle, { color: grey }, shuffle]}>{actions?.[1].text}</Text>\n </TouchableOpacity>\n <TouchableOpacity\n onPress={() => {\n if (actions?.[0].name && actions?.[0].value && handleAction) {\n handleAction(actions[0].name, actions[0].value);\n }\n }}\n style={[styles.buttonContainer, { borderColor: grey_gainsboro }, buttonContainer]}\n testID={`${actions?.[0].value}-action-button`}\n >\n <Text style={[styles.send, { color: accent_blue }, send]}>{actions?.[0].text}</Text>\n </TouchableOpacity>\n </View>\n </View>\n </View>\n ) : (\n <TouchableOpacity\n disabled={preventPress}\n onLongPress={(event) => {\n if (onLongPress) {\n onLongPress({\n emitter: 'giphy',\n event,\n });\n }\n }}\n onPress={(event) => {\n if (onPress) {\n onPress({\n defaultHandler: defaultOnPress,\n emitter: 'giphy',\n event,\n });\n }\n }}\n onPressIn={(event) => {\n if (onPressIn) {\n onPressIn({\n emitter: 'giphy',\n event,\n });\n }\n }}\n testID='giphy-attachment'\n {...additionalTouchableProps}\n >\n <View\n style={[\n styles.container,\n styles.centerChild,\n { backgroundColor: isMyMessage ? grey_gainsboro : white },\n container,\n ]}\n >\n <ImageComponent\n accessibilityLabel='Giphy Attachment Image'\n onError={(error) => {\n console.warn(error);\n setLoadingImage(false);\n setLoadingImageError(true);\n }}\n onLoadEnd={() => setLoadingImage(false)}\n onLoadStart={() => setLoadingImage(true)}\n resizeMode='contain'\n source={{ uri: makeImageCompatibleUrl(uri) }}\n style={[styles.giphy, giphyDimensions, giphy]}\n testID='giphy-attachment-image'\n />\n\n {isLoadingImageError && (\n <View style={{ position: 'absolute' }}>\n <ImageLoadingFailedIndicator style={styles.imageErrorIndicatorStyle} />\n </View>\n )}\n {isLoadingImage && (\n <View style={{ position: 'absolute' }}>\n <ImageLoadingIndicator style={styles.imageLoadingIndicatorStyle} />\n </View>\n )}\n <View style={[styles.giphyMask, giphyMask]}>\n <View\n style={[\n styles.giphyContainer,\n { backgroundColor: label_bg_transparent },\n giphyContainer,\n ]}\n >\n <Lightning height={16} pathFill={white} width={16} />\n <Text style={[styles.giphyMaskText, { color: white }, giphyMaskText]}>\n {type?.toUpperCase()}\n </Text>\n </View>\n </View>\n </View>\n </TouchableOpacity>\n );\n};\n\nconst areEqual = <StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>(\n prevProps: GiphyPropsWithContext<StreamChatGenerics>,\n nextProps: GiphyPropsWithContext<StreamChatGenerics>,\n) => {\n const {\n attachment: { actions: prevActions, image_url: prevImageUrl, thumb_url: prevThumbUrl },\n giphyVersion: prevGiphyVersion,\n isMyMessage: prevIsMyMessage,\n message: prevMessage,\n } = prevProps;\n const {\n attachment: { actions: nextActions, image_url: nextImageUrl, thumb_url: nextThumbUrl },\n giphyVersion: nextGiphyVersion,\n isMyMessage: nextIsMyMessage,\n message: nextMessage,\n } = nextProps;\n\n const imageUrlEqual = prevImageUrl === nextImageUrl;\n if (!imageUrlEqual) return false;\n\n const thumbUrlEqual = prevThumbUrl === nextThumbUrl;\n if (!thumbUrlEqual) return false;\n\n const actionsEqual =\n Array.isArray(prevActions) === Array.isArray(nextActions) &&\n ((Array.isArray(prevActions) &&\n Array.isArray(nextActions) &&\n prevActions.length === nextActions.length) ||\n prevActions === nextActions);\n if (!actionsEqual) return false;\n\n const giphyVersionEqual = prevGiphyVersion === nextGiphyVersion;\n if (!giphyVersionEqual) return false;\n\n const isMyMessageEqual = prevIsMyMessage === nextIsMyMessage;\n if (!isMyMessageEqual) return false;\n\n const messageEqual =\n prevMessage?.id === nextMessage?.id &&\n `${prevMessage?.updated_at}` === `${nextMessage?.updated_at}`;\n\n if (!messageEqual) return false;\n return true;\n};\n\nconst MemoizedGiphy = React.memo(GiphyWithContext, areEqual) as typeof GiphyWithContext;\n\nexport type GiphyProps<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Partial<GiphyPropsWithContext<StreamChatGenerics>> & {\n attachment: Attachment<StreamChatGenerics>;\n};\n\n/**\n * UI component for card in attachments.\n */\nexport const Giphy = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: GiphyProps<StreamChatGenerics>,\n) => {\n const { handleAction, isMyMessage, message, onLongPress, onPress, onPressIn, preventPress } =\n useMessageContext<StreamChatGenerics>();\n const { ImageComponent } = useChatContext<StreamChatGenerics>();\n const { additionalTouchableProps, giphyVersion } = useMessagesContext<StreamChatGenerics>();\n const { setMessages, setSelectedMessage } = useImageGalleryContext<StreamChatGenerics>();\n const { setOverlay } = useOverlayContext();\n\n const {\n ImageLoadingFailedIndicator: ContextImageLoadingFailedIndicator,\n ImageLoadingIndicator: ContextImageLoadingIndicator,\n } = useMessagesContext<StreamChatGenerics>();\n const ImageLoadingFailedIndicator =\n ContextImageLoadingFailedIndicator || props.ImageLoadingFailedIndicator;\n const ImageLoadingIndicator = ContextImageLoadingIndicator || props.ImageLoadingIndicator;\n\n return (\n <MemoizedGiphy\n {...{\n additionalTouchableProps,\n giphyVersion,\n handleAction,\n ImageComponent,\n ImageLoadingFailedIndicator,\n ImageLoadingIndicator,\n isMyMessage,\n message,\n onLongPress,\n onPress,\n onPressIn,\n preventPress,\n setMessages,\n setOverlay,\n setSelectedMessage,\n }}\n {...props}\n />\n );\n};\n\nGiphy.displayName = 'Giphy{messageSimple{giphy}}';\n"]}
|
|
@@ -55,6 +55,8 @@ var getInitials = function getInitials(fullName) {
|
|
|
55
55
|
|
|
56
56
|
var Avatar = function Avatar(props) {
|
|
57
57
|
var containerStyle = props.containerStyle,
|
|
58
|
+
_props$ImageComponent = props.ImageComponent,
|
|
59
|
+
ImageComponent = _props$ImageComponent === void 0 ? _reactNative.Image : _props$ImageComponent,
|
|
58
60
|
imageProp = props.image,
|
|
59
61
|
imageStyle = props.imageStyle,
|
|
60
62
|
name = props.name,
|
|
@@ -83,7 +85,7 @@ var Avatar = function Avatar(props) {
|
|
|
83
85
|
__self: _this,
|
|
84
86
|
__source: {
|
|
85
87
|
fileName: _jsxFileName,
|
|
86
|
-
lineNumber:
|
|
88
|
+
lineNumber: 85,
|
|
87
89
|
columnNumber: 5
|
|
88
90
|
}
|
|
89
91
|
}, _react["default"].createElement(_reactNative.View, {
|
|
@@ -95,7 +97,7 @@ var Avatar = function Avatar(props) {
|
|
|
95
97
|
__self: _this,
|
|
96
98
|
__source: {
|
|
97
99
|
fileName: _jsxFileName,
|
|
98
|
-
lineNumber:
|
|
100
|
+
lineNumber: 86,
|
|
99
101
|
columnNumber: 7
|
|
100
102
|
}
|
|
101
103
|
}, isLoadingImageError ? _react["default"].createElement(_reactNative.View, {
|
|
@@ -108,10 +110,10 @@ var Avatar = function Avatar(props) {
|
|
|
108
110
|
__self: _this,
|
|
109
111
|
__source: {
|
|
110
112
|
fileName: _jsxFileName,
|
|
111
|
-
lineNumber:
|
|
113
|
+
lineNumber: 99,
|
|
112
114
|
columnNumber: 11
|
|
113
115
|
}
|
|
114
|
-
}) : _react["default"].createElement(
|
|
116
|
+
}) : _react["default"].createElement(ImageComponent, {
|
|
115
117
|
accessibilityLabel: testID || 'Avatar Image',
|
|
116
118
|
onError: function onError() {
|
|
117
119
|
return setLoadingImageError(true);
|
|
@@ -133,7 +135,7 @@ var Avatar = function Avatar(props) {
|
|
|
133
135
|
__self: _this,
|
|
134
136
|
__source: {
|
|
135
137
|
fileName: _jsxFileName,
|
|
136
|
-
lineNumber:
|
|
138
|
+
lineNumber: 108,
|
|
137
139
|
columnNumber: 11
|
|
138
140
|
}
|
|
139
141
|
})), online && _react["default"].createElement(_reactNative.View, {
|
|
@@ -141,14 +143,14 @@ var Avatar = function Avatar(props) {
|
|
|
141
143
|
__self: _this,
|
|
142
144
|
__source: {
|
|
143
145
|
fileName: _jsxFileName,
|
|
144
|
-
lineNumber:
|
|
146
|
+
lineNumber: 144,
|
|
145
147
|
columnNumber: 9
|
|
146
148
|
}
|
|
147
149
|
}, _react["default"].createElement(_reactNativeSvg["default"], {
|
|
148
150
|
__self: _this,
|
|
149
151
|
__source: {
|
|
150
152
|
fileName: _jsxFileName,
|
|
151
|
-
lineNumber:
|
|
153
|
+
lineNumber: 151,
|
|
152
154
|
columnNumber: 11
|
|
153
155
|
}
|
|
154
156
|
}, _react["default"].createElement(_reactNativeSvg.Circle, (0, _extends2["default"])({
|
|
@@ -158,7 +160,7 @@ var Avatar = function Avatar(props) {
|
|
|
158
160
|
__self: _this,
|
|
159
161
|
__source: {
|
|
160
162
|
fileName: _jsxFileName,
|
|
161
|
-
lineNumber:
|
|
163
|
+
lineNumber: 152,
|
|
162
164
|
columnNumber: 13
|
|
163
165
|
}
|
|
164
166
|
})))));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["Avatar.tsx"],"names":["randomImageBaseUrl","randomSvgBaseUrl","streamCDN","styles","StyleSheet","create","container","alignItems","justifyContent","overflow","presenceIndicatorContainer","height","position","right","top","width","getInitials","fullName","split","slice","map","name","charAt","join","Avatar","props","containerStyle","imageProp","image","imageStyle","online","presenceIndicatorProp","presenceIndicator","presenceIndicatorContainerStyle","size","testID","theme","avatar","colors","accent_green","white","isLoadingImageError","setLoadingImageError","borderRadius","backgroundColor","uri","includes","url","displayName"],"mappings":";;;;;;;;;;;AAAA;;AACA;;
|
|
1
|
+
{"version":3,"sources":["Avatar.tsx"],"names":["randomImageBaseUrl","randomSvgBaseUrl","streamCDN","styles","StyleSheet","create","container","alignItems","justifyContent","overflow","presenceIndicatorContainer","height","position","right","top","width","getInitials","fullName","split","slice","map","name","charAt","join","Avatar","props","containerStyle","ImageComponent","Image","imageProp","image","imageStyle","online","presenceIndicatorProp","presenceIndicator","presenceIndicatorContainerStyle","size","testID","theme","avatar","colors","accent_green","white","isLoadingImageError","setLoadingImageError","borderRadius","backgroundColor","uri","includes","url","displayName"],"mappings":";;;;;;;;;;;AAAA;;AACA;;AASA;;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,UAAU,EAAE,QADH;AAETC,IAAAA,cAAc,EAAE,QAFP;AAGTC,IAAAA,QAAQ,EAAE;AAHD,GADoB;AAM/BC,EAAAA,0BAA0B,EAAE;AAC1BC,IAAAA,MAAM,EAAE,EADkB;AAE1BC,IAAAA,QAAQ,EAAE,UAFgB;AAG1BC,IAAAA,KAAK,EAAE,CAHmB;AAI1BC,IAAAA,GAAG,EAAE,CAJqB;AAK1BC,IAAAA,KAAK,EAAE;AALmB;AANG,CAAlB,CAAf;;AAeA,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;;AA0BO,IAAMC,MAA6B,GAAG,SAAhCA,MAAgC,CAACC,KAAD,EAAW;AACtD,MACEC,cADF,GAWID,KAXJ,CACEC,cADF;AAAA,8BAWID,KAXJ,CAEEE,cAFF;AAAA,MAEEA,cAFF,sCAEmBC,kBAFnB;AAAA,MAGSC,SAHT,GAWIJ,KAXJ,CAGEK,KAHF;AAAA,MAIEC,UAJF,GAWIN,KAXJ,CAIEM,UAJF;AAAA,MAKEV,IALF,GAWII,KAXJ,CAKEJ,IALF;AAAA,MAMEW,MANF,GAWIP,KAXJ,CAMEO,MANF;AAAA,MAOqBC,qBAPrB,GAWIR,KAXJ,CAOES,iBAPF;AAAA,MAQEC,+BARF,GAWIV,KAXJ,CAQEU,+BARF;AAAA,MASEC,IATF,GAWIX,KAXJ,CASEW,IATF;AAAA,MAUEC,MAVF,GAWIZ,KAXJ,CAUEY,MAVF;;AAYA,kBAKI,6BALJ;AAAA,kCACEC,KADF;AAAA,8CAEIC,MAFJ;AAAA,MAEcjC,SAFd,yBAEcA,SAFd;AAAA,MAEyBwB,KAFzB,yBAEyBA,KAFzB;AAAA,MAEgCI,iBAFhC,yBAEgCA,iBAFhC;AAAA,MAEmDxB,0BAFnD,yBAEmDA,0BAFnD;AAAA,8CAGI8B,MAHJ;AAAA,MAGcC,YAHd,yBAGcA,YAHd;AAAA,MAG4BC,KAH5B,yBAG4BA,KAH5B;;AAOA,yBAAsD,wCAAtD;AAAA,MAAQC,mBAAR,oBAAQA,mBAAR;AAAA,MAA6BC,oBAA7B,oBAA6BA,oBAA7B;;AAEA,SACE,gCAAC,iBAAD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KACE,gCAAC,iBAAD;AACE,IAAA,KAAK,EAAE,CACLzC,MAAM,CAACG,SADF,EAEL;AACEuC,MAAAA,YAAY,EAAET,IAAI,GAAG,CADvB;AAEEzB,MAAAA,MAAM,EAAEyB,IAFV;AAGErB,MAAAA,KAAK,EAAEqB;AAHT,KAFK,EAOL9B,SAPK,EAQLoB,cARK,CADT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KAYGiB,mBAAmB,GAClB,gCAAC,iBAAD;AACE,IAAA,KAAK,EAAE;AACLG,MAAAA,eAAe,EAAE,SADZ;AAELD,MAAAA,YAAY,EAAET,IAAI,GAAG,CAFhB;AAGLzB,MAAAA,MAAM,EAAEyB,IAHH;AAILrB,MAAAA,KAAK,EAAEqB;AAJF,KADT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IADkB,GAUlB,gCAAC,cAAD;AACE,IAAA,kBAAkB,EAAEC,MAAM,IAAI,cADhC;AAEE,IAAA,OAAO,EAAE;AAAA,aAAMO,oBAAoB,CAAC,IAAD,CAA1B;AAAA,KAFX;AAGE,IAAA,MAAM,EAAE;AACNG,MAAAA,GAAG,EACD,CAAClB,SAAD,IACAA,SAAS,CAACmB,QAAV,CAAmBhD,kBAAnB,CADA,IAEA6B,SAAS,CAACmB,QAAV,CAAmB/C,gBAAnB,CAFA,GAGI4B,SAAS,QAAT,IAAAA,SAAS,CAAEmB,QAAX,CAAoB9C,SAApB,IACE2B,SADF,QAEK7B,kBAFL,IAGIqB,IAAI,cAAYL,WAAW,CAACK,IAAD,CAAvB,cAAsCe,IAAtC,GAA+C,EAHvD,CAHJ,GAQI,4CAAmB;AACjBzB,QAAAA,MAAM,EAAEyB,IADS;AAEjBa,QAAAA,GAAG,EAAEpB,SAFY;AAGjBd,QAAAA,KAAK,EAAEqB;AAHU,OAAnB;AAVA,KAHV;AAmBE,IAAA,KAAK,EAAE,CACLN,KADK,EAELM,IAAI,GACA;AACEU,MAAAA,eAAe,EAAE,SADnB;AAEED,MAAAA,YAAY,EAAET,IAAI,GAAG,CAFvB;AAGEzB,MAAAA,MAAM,EAAEyB,IAHV;AAIErB,MAAAA,KAAK,EAAEqB;AAJT,KADA,GAOA,EATC,EAULL,UAVK,CAnBT;AA+BE,IAAA,MAAM,EAAEM,MAAM,IAAI,cA/BpB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAtBJ,CADF,EA0DGL,MAAM,IACL,gCAAC,iBAAD;AACE,IAAA,KAAK,EAAE,CACL7B,MAAM,CAACO,0BADF,EAELA,0BAFK,EAGLyB,+BAHK,CADT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KAOE,gCAAC,0BAAD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KACE,gCAAC,sBAAD;AACE,IAAA,IAAI,EAAEM,YADR;AAEE,IAAA,MAAM,EAAEC;AAFV,KAGMR,iBAHN,EAIMD,qBAJN;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KADF,CAPF,CA3DJ,CADF;AA+ED,CArGM;;;AAuGPT,MAAM,CAAC0B,WAAP,GAAqB,gBAArB","sourcesContent":["import React from 'react';\nimport {\n Image,\n ImageProps,\n ImageStyle,\n StyleProp,\n StyleSheet,\n View,\n ViewStyle,\n} from 'react-native';\nimport Svg, { Circle, CircleProps } from 'react-native-svg';\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 alignItems: 'center',\n justifyContent: 'center',\n overflow: 'hidden',\n },\n presenceIndicatorContainer: {\n height: 12,\n position: 'absolute',\n right: 0,\n top: 0,\n width: 12,\n },\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 AvatarProps = {\n /** size in pixels */\n size: number;\n containerStyle?: StyleProp<ViewStyle>;\n /** image url */\n image?: string;\n ImageComponent?: React.ComponentType<ImageProps>;\n /** name of the picture, used for fallback */\n imageStyle?: StyleProp<ImageStyle>;\n name?: string;\n online?: boolean;\n presenceIndicator?: CircleProps;\n presenceIndicatorContainerStyle?: StyleProp<ViewStyle>;\n testID?: string;\n};\n\n/**\n * Avatar - A round avatar image with fallback to user's initials.\n */\nexport const Avatar: React.FC<AvatarProps> = (props) => {\n const {\n containerStyle,\n ImageComponent = Image,\n image: imageProp,\n imageStyle,\n name,\n online,\n presenceIndicator: presenceIndicatorProp,\n presenceIndicatorContainerStyle,\n size,\n testID,\n } = props;\n const {\n theme: {\n avatar: { container, image, presenceIndicator, presenceIndicatorContainer },\n colors: { accent_green, white },\n },\n } = useTheme();\n\n const { isLoadingImageError, setLoadingImageError } = useLoadingImage();\n\n return (\n <View>\n <View\n style={[\n styles.container,\n {\n borderRadius: size / 2,\n height: size,\n width: size,\n },\n container,\n containerStyle,\n ]}\n >\n {isLoadingImageError ? (\n <View\n style={{\n backgroundColor: '#ececec',\n borderRadius: size / 2,\n height: size,\n width: size,\n }}\n />\n ) : (\n <ImageComponent\n accessibilityLabel={testID || 'Avatar Image'}\n onError={() => setLoadingImageError(true)}\n source={{\n uri:\n !imageProp ||\n imageProp.includes(randomImageBaseUrl) ||\n imageProp.includes(randomSvgBaseUrl)\n ? imageProp?.includes(streamCDN)\n ? imageProp\n : `${randomImageBaseUrl}${\n name ? `?name=${getInitials(name)}&size=${size}` : ''\n }`\n : getResizedImageUrl({\n height: size,\n url: imageProp,\n width: size,\n }),\n }}\n style={[\n image,\n size\n ? {\n backgroundColor: '#ececec',\n borderRadius: size / 2,\n height: size,\n width: size,\n }\n : {},\n imageStyle,\n ]}\n testID={testID || 'avatar-image'}\n />\n )}\n </View>\n {online && (\n <View\n style={[\n styles.presenceIndicatorContainer,\n presenceIndicatorContainer,\n presenceIndicatorContainerStyle,\n ]}\n >\n <Svg>\n <Circle\n fill={accent_green}\n stroke={white}\n {...presenceIndicator}\n {...presenceIndicatorProp}\n />\n </Svg>\n </View>\n )}\n </View>\n );\n};\n\nAvatar.displayName = 'Avatar{avatar}';\n"]}
|
|
@@ -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":"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","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"]}
|