stream-chat-react-native-core 5.2.0-beta.1 → 5.3.0-beta.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/commonjs/components/Attachment/Card.js +29 -18
- package/lib/commonjs/components/Attachment/Card.js.map +1 -1
- package/lib/commonjs/components/Attachment/Gallery.js +16 -20
- package/lib/commonjs/components/Attachment/Gallery.js.map +1 -1
- package/lib/commonjs/components/Attachment/GalleryImage.js +34 -6
- package/lib/commonjs/components/Attachment/GalleryImage.js.map +1 -1
- package/lib/commonjs/components/Attachment/Giphy.js +37 -29
- package/lib/commonjs/components/Attachment/Giphy.js.map +1 -1
- package/lib/commonjs/components/Avatar/Avatar.js +10 -8
- package/lib/commonjs/components/Avatar/Avatar.js.map +1 -1
- package/lib/commonjs/components/Avatar/GroupAvatar.js +3 -1
- package/lib/commonjs/components/Avatar/GroupAvatar.js.map +1 -1
- package/lib/commonjs/components/ChannelList/ChannelList.js +4 -4
- package/lib/commonjs/components/ChannelList/ChannelList.js.map +1 -1
- package/lib/commonjs/components/ChannelList/ChannelListMessenger.js +4 -4
- package/lib/commonjs/components/ChannelList/ChannelListMessenger.js.map +1 -1
- package/lib/commonjs/components/ChannelList/hooks/useCreateChannelsContext.js +1 -1
- package/lib/commonjs/components/ChannelList/hooks/useCreateChannelsContext.js.map +1 -1
- package/lib/commonjs/components/ChannelList/hooks/usePaginatedChannels.js +6 -7
- package/lib/commonjs/components/ChannelList/hooks/usePaginatedChannels.js.map +1 -1
- package/lib/commonjs/components/ChannelPreview/ChannelAvatar.js +30 -6
- package/lib/commonjs/components/ChannelPreview/ChannelAvatar.js.map +1 -1
- package/lib/commonjs/components/Chat/Chat.js +8 -5
- package/lib/commonjs/components/Chat/Chat.js.map +1 -1
- package/lib/commonjs/components/Chat/hooks/useCreateChatContext.js +2 -0
- package/lib/commonjs/components/Chat/hooks/useCreateChatContext.js.map +1 -1
- package/lib/commonjs/components/ImageBackground.js +64 -0
- package/lib/commonjs/components/ImageBackground.js.map +1 -0
- package/lib/commonjs/components/Message/Message.js +15 -16
- package/lib/commonjs/components/Message/Message.js.map +1 -1
- package/lib/commonjs/components/Message/MessageSimple/MessageAvatar.js +12 -4
- package/lib/commonjs/components/Message/MessageSimple/MessageAvatar.js.map +1 -1
- package/lib/commonjs/components/Message/MessageSimple/MessageRepliesAvatars.js +26 -5
- package/lib/commonjs/components/Message/MessageSimple/MessageRepliesAvatars.js.map +1 -1
- package/lib/commonjs/components/MessageOverlay/MessageOverlay.js +58 -47
- package/lib/commonjs/components/MessageOverlay/MessageOverlay.js.map +1 -1
- package/lib/commonjs/components/MessageOverlay/OverlayReactions.js +19 -19
- package/lib/commonjs/components/MessageOverlay/OverlayReactions.js.map +1 -1
- package/lib/commonjs/contexts/channelsContext/ChannelsContext.js.map +1 -1
- package/lib/commonjs/contexts/chatContext/ChatContext.js +2 -2
- package/lib/commonjs/contexts/chatContext/ChatContext.js.map +1 -1
- package/lib/commonjs/contexts/messageOverlayContext/MessageOverlayContext.js +2 -2
- package/lib/commonjs/contexts/messageOverlayContext/MessageOverlayContext.js.map +1 -1
- package/lib/commonjs/version.json +1 -1
- package/lib/module/components/Attachment/Card.js +29 -18
- package/lib/module/components/Attachment/Card.js.map +1 -1
- package/lib/module/components/Attachment/Gallery.js +16 -20
- package/lib/module/components/Attachment/Gallery.js.map +1 -1
- package/lib/module/components/Attachment/GalleryImage.js +34 -6
- package/lib/module/components/Attachment/GalleryImage.js.map +1 -1
- package/lib/module/components/Attachment/Giphy.js +37 -29
- package/lib/module/components/Attachment/Giphy.js.map +1 -1
- package/lib/module/components/Avatar/Avatar.js +10 -8
- package/lib/module/components/Avatar/Avatar.js.map +1 -1
- package/lib/module/components/Avatar/GroupAvatar.js +3 -1
- package/lib/module/components/Avatar/GroupAvatar.js.map +1 -1
- package/lib/module/components/ChannelList/ChannelList.js +4 -4
- package/lib/module/components/ChannelList/ChannelList.js.map +1 -1
- package/lib/module/components/ChannelList/ChannelListMessenger.js +4 -4
- package/lib/module/components/ChannelList/ChannelListMessenger.js.map +1 -1
- package/lib/module/components/ChannelList/hooks/useCreateChannelsContext.js +1 -1
- package/lib/module/components/ChannelList/hooks/useCreateChannelsContext.js.map +1 -1
- package/lib/module/components/ChannelList/hooks/usePaginatedChannels.js +6 -7
- package/lib/module/components/ChannelList/hooks/usePaginatedChannels.js.map +1 -1
- package/lib/module/components/ChannelPreview/ChannelAvatar.js +30 -6
- package/lib/module/components/ChannelPreview/ChannelAvatar.js.map +1 -1
- package/lib/module/components/Chat/Chat.js +8 -5
- package/lib/module/components/Chat/Chat.js.map +1 -1
- package/lib/module/components/Chat/hooks/useCreateChatContext.js +2 -0
- package/lib/module/components/Chat/hooks/useCreateChatContext.js.map +1 -1
- package/lib/module/components/ImageBackground.js +64 -0
- package/lib/module/components/ImageBackground.js.map +1 -0
- package/lib/module/components/Message/Message.js +15 -16
- package/lib/module/components/Message/Message.js.map +1 -1
- package/lib/module/components/Message/MessageSimple/MessageAvatar.js +12 -4
- package/lib/module/components/Message/MessageSimple/MessageAvatar.js.map +1 -1
- package/lib/module/components/Message/MessageSimple/MessageRepliesAvatars.js +26 -5
- package/lib/module/components/Message/MessageSimple/MessageRepliesAvatars.js.map +1 -1
- package/lib/module/components/MessageOverlay/MessageOverlay.js +58 -47
- package/lib/module/components/MessageOverlay/MessageOverlay.js.map +1 -1
- package/lib/module/components/MessageOverlay/OverlayReactions.js +19 -19
- package/lib/module/components/MessageOverlay/OverlayReactions.js.map +1 -1
- package/lib/module/contexts/channelsContext/ChannelsContext.js.map +1 -1
- package/lib/module/contexts/chatContext/ChatContext.js +2 -2
- package/lib/module/contexts/chatContext/ChatContext.js.map +1 -1
- package/lib/module/contexts/messageOverlayContext/MessageOverlayContext.js +2 -2
- package/lib/module/contexts/messageOverlayContext/MessageOverlayContext.js.map +1 -1
- package/lib/module/version.json +1 -1
- package/lib/typescript/components/Attachment/Card.d.ts +3 -2
- package/lib/typescript/components/Attachment/GalleryImage.d.ts +8 -2
- package/lib/typescript/components/Attachment/Giphy.d.ts +2 -1
- package/lib/typescript/components/Avatar/Avatar.d.ts +2 -1
- package/lib/typescript/components/Avatar/GroupAvatar.d.ts +2 -1
- package/lib/typescript/components/ChannelList/hooks/usePaginatedChannels.d.ts +1 -1
- package/lib/typescript/components/ChannelPreview/ChannelAvatar.d.ts +2 -0
- package/lib/typescript/components/Chat/Chat.d.ts +1 -1
- package/lib/typescript/components/Chat/hooks/useCreateChatContext.d.ts +1 -1
- package/lib/typescript/components/ImageBackground.d.ts +33 -0
- package/lib/typescript/components/Message/Message.d.ts +2 -1
- package/lib/typescript/components/Message/MessageSimple/MessageAvatar.d.ts +2 -1
- package/lib/typescript/components/Message/MessageSimple/MessageRepliesAvatars.d.ts +2 -0
- package/lib/typescript/components/MessageOverlay/OverlayReactions.d.ts +1 -0
- package/lib/typescript/contexts/channelsContext/ChannelsContext.d.ts +1 -1
- package/lib/typescript/contexts/chatContext/ChatContext.d.ts +3 -1
- package/lib/typescript/contexts/messageOverlayContext/MessageOverlayContext.d.ts +4 -0
- package/package.json +1 -1
- package/src/__tests__/offline-feature.test.js +3 -1
- package/src/components/Attachment/Card.tsx +11 -2
- package/src/components/Attachment/Gallery.tsx +1 -7
- package/src/components/Attachment/GalleryImage.tsx +31 -9
- package/src/components/Attachment/Giphy.tsx +8 -2
- package/src/components/Avatar/Avatar.tsx +12 -2
- package/src/components/Avatar/GroupAvatar.tsx +4 -4
- package/src/components/ChannelList/ChannelList.tsx +3 -2
- package/src/components/ChannelList/ChannelListMessenger.tsx +3 -3
- package/src/components/ChannelList/__tests__/ChannelList.test.js +1 -1
- package/src/components/ChannelList/hooks/listeners/__tests__/useChannelUpdated.test.tsx +2 -1
- package/src/components/ChannelList/hooks/useCreateChannelsContext.ts +1 -1
- package/src/components/ChannelList/hooks/usePaginatedChannels.ts +12 -11
- package/src/components/ChannelPreview/ChannelAvatar.tsx +23 -4
- package/src/components/Chat/Chat.tsx +98 -95
- package/src/components/Chat/hooks/useCreateChatContext.ts +2 -0
- package/src/components/ImageBackground.tsx +77 -0
- package/src/components/Message/Message.tsx +8 -8
- package/src/components/Message/MessageSimple/MessageAvatar.tsx +6 -2
- package/src/components/Message/MessageSimple/MessageRepliesAvatars.tsx +15 -3
- package/src/components/MessageOverlay/MessageOverlay.tsx +210 -205
- package/src/components/MessageOverlay/OverlayReactions.tsx +1 -0
- package/src/contexts/channelsContext/ChannelsContext.tsx +1 -1
- package/src/contexts/chatContext/ChatContext.tsx +3 -1
- package/src/contexts/messageOverlayContext/MessageOverlayContext.tsx +8 -1
- package/src/version.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["MessageOverlay.tsx"],"names":["styles","StyleSheet","create","alignEnd","alignItems","alignStart","center","flexGrow","justifyContent","containerInner","borderTopLeftRadius","borderTopRightRadius","borderWidth","overflow","flex","overlayPadding","padding","replyContainer","flexDirection","paddingHorizontal","paddingTop","row","scrollView","Platform","OS","screenHeight","halfScreenHeight","DefaultMessageTextNumberOfLines","MessageOverlayWithContext","props","alignment","ownCapabilities","clientId","files","groupStyles","handleReaction","images","message","messageActions","MessageActionList","DefaultMessageActionList","MessageActionListItem","messageContext","messageReactionTitle","messageTextNumberOfLines","messagesContext","onlyEmojis","otherAttachments","overlay","overlayOpacity","OverlayReactionList","OverlayReactionListDefault","OverlayReactions","DefaultOverlayReactions","OverlayReactionsAvatar","OverlayReactionsAvatarDefault","setOverlay","threadList","videos","isMyMessage","messageReactions","error","isThreadMessage","messageActionProps","theme","myMessageTheme","wrapMessageInTheme","user","id","JSON","stringify","myMessageThemeString","setMyMessageThemeString","modifiedTheme","style","colors","blue_alice","grey_gainsboro","grey_whisper","transparent","white_smoke","messageSimple","content","container","borderRadiusL","borderRadiusS","containerStyle","messageHeight","messageLayout","x","y","messageWidth","offsetY","translateY","scale","showScreen","fadeScreen","value","damping","mass","restDisplacementThreshold","restSpeedThreshold","stiffness","velocity","Keyboard","dismiss","onPan","onActive","evt","translationY","Extrapolate","CLAMP","onFinish","finalYPosition","velocityY","duration","easing","Easing","out","ease","onStart","panStyle","transform","showScreenStyle","translateX","groupStyle","toLowerCase","hasThreadReplies","reply_count","Attachment","FileAttachmentGroup","Gallery","MessageAvatar","Reply","absoluteFillObject","state","nativeEvent","State","END","sendReaction","own_reactions","map","reaction","type","layout","layoutHeight","height","layoutWidth","width","showAvatar","backgroundColor","quoted_message","length","borderBottomLeftRadius","borderBottomRightRadius","borderColor","messageContentOrder","messageContentType","messageContentOrderIndex","messageContainer","maxWidth","attachment","attachmentIndex","actions","latest_reactions","image","name","user_id","supportedReactions","areEqual","prevProps","nextProps","prevAlignment","prevMessage","prevMessageReactionTitle","nextAlignment","nextMessage","nextMessageReactionTitle","alignmentEqual","messageReactionTitleEqual","latestReactionsEqual","Array","isArray","every","index","MemoizedMessageOverlay","React","memo","MessageOverlay","data","componentProps"],"mappings":"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","sourcesContent":["import React, { useEffect, useMemo, useState } from 'react';\nimport { Keyboard, Platform, SafeAreaView, StyleSheet, View, ViewStyle } from 'react-native';\nimport {\n PanGestureHandler,\n PanGestureHandlerGestureEvent,\n State,\n TapGestureHandler,\n} from 'react-native-gesture-handler';\nimport Animated, {\n cancelAnimation,\n Easing,\n Extrapolate,\n interpolate,\n runOnJS,\n useAnimatedGestureHandler,\n useAnimatedStyle,\n useSharedValue,\n withDecay,\n withSpring,\n withTiming,\n} from 'react-native-reanimated';\n\nimport { MessageActionList as DefaultMessageActionList } from './MessageActionList';\nimport { OverlayReactionList as OverlayReactionListDefault } from './OverlayReactionList';\nimport { OverlayReactionsAvatar as OverlayReactionsAvatarDefault } from './OverlayReactionsAvatar';\n\nimport { MessageProvider } from '../../contexts/messageContext/MessageContext';\nimport {\n MessageOverlayContextValue,\n MessageOverlayData,\n useMessageOverlayContext,\n} from '../../contexts/messageOverlayContext/MessageOverlayContext';\n\nimport { MessagesProvider } from '../../contexts/messagesContext/MessagesContext';\nimport {\n OverlayContextValue,\n OverlayProviderProps,\n useOverlayContext,\n} from '../../contexts/overlayContext/OverlayContext';\nimport { mergeThemes, ThemeProvider, useTheme } from '../../contexts/themeContext/ThemeContext';\n\nimport type { DefaultStreamChatGenerics } from '../../types/types';\nimport { vh, vw } from '../../utils/utils';\nimport { MessageTextContainer } from '../Message/MessageSimple/MessageTextContainer';\nimport {\n OverlayReactions as DefaultOverlayReactions,\n Reaction,\n} from '../MessageOverlay/OverlayReactions';\nimport type { ReplyProps } from '../Reply/Reply';\n\nconst styles = StyleSheet.create({\n alignEnd: { alignItems: 'flex-end' },\n alignStart: { alignItems: 'flex-start' },\n center: {\n flexGrow: 1,\n justifyContent: 'center',\n },\n containerInner: {\n borderTopLeftRadius: 16,\n borderTopRightRadius: 16,\n borderWidth: 1,\n overflow: 'hidden',\n },\n flex: {\n flex: 1,\n },\n overlayPadding: {\n padding: 8,\n },\n replyContainer: {\n flexDirection: 'row',\n paddingHorizontal: 8,\n paddingTop: 8,\n },\n row: { flexDirection: 'row' },\n scrollView: { overflow: Platform.OS === 'ios' ? 'visible' : 'scroll' },\n});\n\nconst screenHeight = vh(100);\nconst halfScreenHeight = vh(50);\nconst DefaultMessageTextNumberOfLines = 5;\n\nexport type MessageOverlayPropsWithContext<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Pick<\n MessageOverlayContextValue<StreamChatGenerics>,\n | 'MessageActionList'\n | 'MessageActionListItem'\n | 'OverlayReactionList'\n | 'OverlayReactions'\n | 'OverlayReactionsAvatar'\n> &\n Omit<MessageOverlayData<StreamChatGenerics>, 'supportedReactions'> &\n Pick<OverlayContextValue, 'overlay' | 'setOverlay'> &\n Pick<\n OverlayProviderProps<StreamChatGenerics>,\n | 'error'\n | 'isMyMessage'\n | 'isThreadMessage'\n | 'message'\n | 'messageReactions'\n | 'messageTextNumberOfLines'\n > & {\n overlayOpacity: Animated.SharedValue<number>;\n showScreen?: Animated.SharedValue<number>;\n };\n\nconst MessageOverlayWithContext = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: MessageOverlayPropsWithContext<StreamChatGenerics>,\n) => {\n const {\n alignment,\n ownCapabilities,\n clientId,\n files,\n groupStyles,\n handleReaction,\n images,\n message,\n messageActions,\n MessageActionList = DefaultMessageActionList,\n MessageActionListItem,\n messageContext,\n messageReactionTitle,\n messageTextNumberOfLines = DefaultMessageTextNumberOfLines,\n messagesContext,\n onlyEmojis,\n otherAttachments,\n overlay,\n overlayOpacity,\n OverlayReactionList = OverlayReactionListDefault,\n OverlayReactions = DefaultOverlayReactions,\n OverlayReactionsAvatar = OverlayReactionsAvatarDefault,\n setOverlay,\n threadList,\n videos,\n isMyMessage,\n messageReactions,\n error,\n isThreadMessage,\n } = props;\n\n const messageActionProps = {\n error,\n isMyMessage,\n isThreadMessage,\n message,\n messageReactions,\n };\n\n const { theme } = useTheme();\n\n const myMessageTheme = messagesContext?.myMessageTheme;\n const wrapMessageInTheme = clientId === message?.user?.id && !!myMessageTheme;\n\n const [myMessageThemeString, setMyMessageThemeString] = useState(JSON.stringify(myMessageTheme));\n\n useEffect(() => {\n if (myMessageTheme) {\n setMyMessageThemeString(JSON.stringify(myMessageTheme));\n }\n }, [myMessageTheme]);\n\n const modifiedTheme = useMemo(\n () => mergeThemes({ style: myMessageTheme, theme }),\n [myMessageThemeString, theme],\n );\n\n const {\n colors: { blue_alice, grey_gainsboro, grey_whisper, transparent, white_smoke },\n messageSimple: {\n content: {\n container: { borderRadiusL, borderRadiusS },\n containerInner,\n replyContainer,\n },\n },\n overlay: { container: containerStyle, padding: overlayPadding },\n } = wrapMessageInTheme ? modifiedTheme : theme;\n\n const messageHeight = useSharedValue(0);\n const messageLayout = useSharedValue({ x: 0, y: 0 });\n const messageWidth = useSharedValue(0);\n\n const offsetY = useSharedValue(0);\n const translateY = useSharedValue(0);\n const scale = useSharedValue(1);\n\n const showScreen = useSharedValue(0);\n const fadeScreen = () => {\n 'worklet';\n\n offsetY.value = 0;\n translateY.value = 0;\n scale.value = 1;\n showScreen.value = withSpring(1, {\n damping: 600,\n mass: 0.5,\n restDisplacementThreshold: 0.01,\n restSpeedThreshold: 0.01,\n stiffness: 200,\n velocity: 32,\n });\n };\n\n useEffect(() => {\n Keyboard.dismiss();\n fadeScreen();\n }, []);\n\n const onPan = useAnimatedGestureHandler<PanGestureHandlerGestureEvent>({\n onActive: (evt) => {\n translateY.value = offsetY.value + evt.translationY;\n overlayOpacity.value = interpolate(\n translateY.value,\n [0, halfScreenHeight],\n [1, 0.75],\n Extrapolate.CLAMP,\n );\n scale.value = interpolate(\n translateY.value,\n [0, halfScreenHeight],\n [1, 0.85],\n Extrapolate.CLAMP,\n );\n },\n onFinish: (evt) => {\n const finalYPosition = evt.translationY + evt.velocityY * 0.1;\n\n if (finalYPosition > halfScreenHeight && translateY.value > 0) {\n cancelAnimation(translateY);\n overlayOpacity.value = withTiming(\n 0,\n {\n duration: 200,\n easing: Easing.out(Easing.ease),\n },\n () => {\n runOnJS(setOverlay)('none');\n },\n );\n translateY.value =\n evt.velocityY > 1000\n ? withDecay({\n velocity: evt.velocityY,\n })\n : withTiming(screenHeight, {\n duration: 200,\n easing: Easing.out(Easing.ease),\n });\n } else {\n translateY.value = withTiming(0);\n scale.value = withTiming(1);\n overlayOpacity.value = withTiming(1);\n }\n },\n onStart: () => {\n cancelAnimation(translateY);\n offsetY.value = translateY.value;\n },\n });\n\n const panStyle = useAnimatedStyle<ViewStyle>(() => ({\n transform: [\n {\n translateY: translateY.value,\n },\n {\n scale: scale.value,\n },\n ],\n }));\n\n const showScreenStyle = useAnimatedStyle<ViewStyle>(\n () => ({\n transform: [\n {\n translateY: interpolate(showScreen.value, [0, 1], [messageHeight.value / 2, 0]),\n },\n {\n translateX: interpolate(\n showScreen.value,\n [0, 1],\n [alignment === 'left' ? -messageWidth.value / 2 : messageWidth.value / 2, 0],\n ),\n },\n {\n scale: showScreen.value,\n },\n ],\n }),\n [alignment],\n );\n\n const groupStyle = `${alignment}_${(groupStyles?.[0] || 'bottom').toLowerCase()}`;\n\n const hasThreadReplies = !!message?.reply_count;\n\n const { Attachment, FileAttachmentGroup, Gallery, MessageAvatar, Reply } = messagesContext || {};\n\n return (\n <MessagesProvider value={messagesContext}>\n <MessageProvider value={messageContext}>\n <ThemeProvider mergedStyle={wrapMessageInTheme ? modifiedTheme : theme}>\n <Animated.View\n pointerEvents={'auto'}\n style={[StyleSheet.absoluteFillObject, containerStyle]}\n >\n <PanGestureHandler\n enabled={overlay === 'message'}\n maxPointers={1}\n minDist={10}\n onGestureEvent={onPan}\n >\n <Animated.View style={[StyleSheet.absoluteFillObject]}>\n <SafeAreaView style={styles.flex}>\n <TapGestureHandler\n maxDist={32}\n onHandlerStateChange={({ nativeEvent: { state } }) => {\n if (state === State.END) {\n setOverlay('none');\n }\n }}\n >\n <Animated.View style={[styles.flex, panStyle]}>\n {message && (\n <View\n style={[\n styles.center,\n styles.overlayPadding,\n { padding: overlayPadding },\n alignment === 'left' ? styles.alignStart : styles.alignEnd,\n ]}\n >\n {handleReaction && ownCapabilities?.sendReaction ? (\n <OverlayReactionList\n messageLayout={messageLayout}\n ownReactionTypes={\n message?.own_reactions?.map((reaction) => reaction.type) || []\n }\n showScreen={showScreen}\n />\n ) : null}\n <Animated.View\n onLayout={({\n nativeEvent: {\n layout: { height: layoutHeight, width: layoutWidth, x, y },\n },\n }) => {\n messageLayout.value = {\n x: alignment === 'left' ? x + layoutWidth : x,\n y,\n };\n messageWidth.value = layoutWidth;\n messageHeight.value = layoutHeight;\n }}\n style={[styles.alignEnd, styles.row, showScreenStyle]}\n >\n {alignment === 'left' && MessageAvatar && (\n <MessageAvatar {...{ alignment, message, showAvatar: true }} />\n )}\n <View\n pointerEvents='none'\n style={[\n styles.containerInner,\n {\n backgroundColor:\n onlyEmojis && !message.quoted_message\n ? transparent\n : otherAttachments?.length\n ? otherAttachments[0].type === 'giphy'\n ? !message.quoted_message\n ? transparent\n : grey_gainsboro\n : blue_alice\n : alignment === 'left'\n ? white_smoke\n : grey_gainsboro,\n borderBottomLeftRadius:\n (groupStyle === 'left_bottom' ||\n groupStyle === 'left_single') &&\n (!hasThreadReplies || threadList)\n ? borderRadiusS\n : borderRadiusL,\n borderBottomRightRadius:\n (groupStyle === 'right_bottom' ||\n groupStyle === 'right_single') &&\n (!hasThreadReplies || threadList)\n ? borderRadiusS\n : borderRadiusL,\n borderColor: grey_whisper,\n },\n (onlyEmojis && !message.quoted_message) || otherAttachments?.length\n ? { borderWidth: 0 }\n : {},\n containerInner,\n ]}\n >\n {messagesContext?.messageContentOrder?.map(\n (messageContentType, messageContentOrderIndex) => {\n switch (messageContentType) {\n case 'quoted_reply':\n return (\n message.quoted_message &&\n Reply && (\n <View\n key={`quoted_reply_${messageContentOrderIndex}`}\n style={[styles.replyContainer, replyContainer]}\n >\n <Reply\n quotedMessage={\n message.quoted_message as ReplyProps<StreamChatGenerics>['quotedMessage']\n }\n styles={{\n messageContainer: {\n maxWidth: vw(60),\n },\n }}\n />\n </View>\n )\n );\n case 'attachments':\n return otherAttachments?.map(\n (attachment, attachmentIndex) =>\n Attachment && (\n <Attachment\n attachment={attachment}\n key={`${message.id}-${attachmentIndex}`}\n />\n ),\n );\n case 'files':\n return (\n FileAttachmentGroup && (\n <FileAttachmentGroup\n files={files}\n key={`file_attachment_group_${messageContentOrderIndex}`}\n messageId={message.id}\n />\n )\n );\n case 'gallery':\n return (\n Gallery && (\n <Gallery\n alignment={alignment}\n groupStyles={groupStyles}\n hasThreadReplies={!!message?.reply_count}\n images={images}\n key={`gallery_${messageContentOrderIndex}`}\n message={message}\n threadList={threadList}\n videos={videos}\n />\n )\n );\n case 'text':\n default:\n return otherAttachments?.length &&\n otherAttachments[0].actions ? null : (\n <MessageTextContainer<StreamChatGenerics>\n key={`message_text_container_${messageContentOrderIndex}`}\n message={message}\n messageOverlay\n messageTextNumberOfLines={messageTextNumberOfLines}\n onlyEmojis={onlyEmojis}\n />\n );\n }\n },\n )}\n </View>\n </Animated.View>\n {messageActions && (\n <MessageActionList\n MessageActionListItem={MessageActionListItem}\n showScreen={showScreen}\n {...messageActionProps}\n message={message}\n />\n )}\n {!!messageReactionTitle &&\n message.latest_reactions &&\n message.latest_reactions.length > 0 ? (\n <OverlayReactions\n alignment={alignment}\n OverlayReactionsAvatar={OverlayReactionsAvatar}\n reactions={\n message.latest_reactions.map((reaction) => ({\n alignment:\n clientId && clientId === reaction.user?.id ? 'right' : 'left',\n id: reaction?.user?.id || '',\n image: reaction?.user?.image,\n name: reaction?.user?.name || reaction.user_id || '',\n type: reaction.type,\n })) as Reaction[]\n }\n showScreen={showScreen}\n supportedReactions={messagesContext?.supportedReactions}\n title={messageReactionTitle}\n />\n ) : null}\n </View>\n )}\n </Animated.View>\n </TapGestureHandler>\n </SafeAreaView>\n </Animated.View>\n </PanGestureHandler>\n </Animated.View>\n </ThemeProvider>\n </MessageProvider>\n </MessagesProvider>\n );\n};\n\nconst areEqual = <StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>(\n prevProps: MessageOverlayPropsWithContext<StreamChatGenerics>,\n nextProps: MessageOverlayPropsWithContext<StreamChatGenerics>,\n) => {\n const {\n alignment: prevAlignment,\n message: prevMessage,\n messageReactionTitle: prevMessageReactionTitle,\n } = prevProps;\n const {\n alignment: nextAlignment,\n message: nextMessage,\n messageReactionTitle: nextMessageReactionTitle,\n } = nextProps;\n\n const alignmentEqual = prevAlignment === nextAlignment;\n if (!alignmentEqual) return false;\n\n const messageReactionTitleEqual = prevMessageReactionTitle === nextMessageReactionTitle;\n if (!messageReactionTitleEqual) return false;\n\n const latestReactionsEqual =\n Array.isArray(prevMessage?.latest_reactions) && Array.isArray(nextMessage?.latest_reactions)\n ? prevMessage?.latest_reactions.length === nextMessage?.latest_reactions.length &&\n prevMessage?.latest_reactions.every(\n ({ type }, index) => type === nextMessage?.latest_reactions?.[index].type,\n )\n : prevMessage?.latest_reactions === nextMessage?.latest_reactions;\n if (!latestReactionsEqual) return false;\n\n return true;\n};\n\nconst MemoizedMessageOverlay = React.memo(\n MessageOverlayWithContext,\n areEqual,\n) as typeof MessageOverlayWithContext;\n\nexport type MessageOverlayProps<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Partial<Omit<MessageOverlayPropsWithContext<StreamChatGenerics>, 'overlayOpacity'>> &\n Pick<MessageOverlayPropsWithContext<StreamChatGenerics>, 'overlayOpacity'> &\n Pick<\n MessageOverlayPropsWithContext<StreamChatGenerics>,\n 'isMyMessage' | 'error' | 'isThreadMessage' | 'message' | 'messageReactions'\n >;\n\n/**\n * MessageOverlay - A high level component which implements all the logic required for a message overlay\n */\nexport const MessageOverlay = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: MessageOverlayProps<StreamChatGenerics>,\n) => {\n const {\n data,\n MessageActionList,\n MessageActionListItem,\n OverlayReactionList,\n OverlayReactions,\n OverlayReactionsAvatar,\n } = useMessageOverlayContext<StreamChatGenerics>();\n const { overlay, setOverlay } = useOverlayContext();\n\n const componentProps = {\n MessageActionList: props.MessageActionList || MessageActionList,\n MessageActionListItem: props.MessageActionListItem || MessageActionListItem,\n OverlayReactionList:\n props.OverlayReactionList || OverlayReactionList || data?.OverlayReactionList,\n OverlayReactions: props.OverlayReactions || OverlayReactions,\n OverlayReactionsAvatar: props.OverlayReactionsAvatar || OverlayReactionsAvatar,\n };\n\n return (\n <MemoizedMessageOverlay\n {...{\n overlay,\n setOverlay,\n }}\n {...componentProps}\n {...(data || {})}\n {...props}\n />\n );\n};\n"]}
|
|
1
|
+
{"version":3,"sources":["MessageOverlay.tsx"],"names":["styles","StyleSheet","create","alignEnd","alignItems","alignStart","center","flexGrow","justifyContent","containerInner","borderTopLeftRadius","borderTopRightRadius","borderWidth","overflow","flex","overlayPadding","padding","replyContainer","flexDirection","paddingHorizontal","paddingTop","row","scrollView","Platform","OS","screenHeight","halfScreenHeight","DefaultMessageTextNumberOfLines","MessageOverlayWithContext","props","alignment","ownCapabilities","clientId","files","groupStyles","handleReaction","images","chatContext","message","messageActions","MessageActionList","DefaultMessageActionList","MessageActionListItem","messageContext","messageReactionTitle","messageTextNumberOfLines","messagesContext","onlyEmojis","otherAttachments","overlay","overlayOpacity","OverlayReactionList","OverlayReactionListDefault","OverlayReactions","DefaultOverlayReactions","OverlayReactionsAvatar","OverlayReactionsAvatarDefault","setOverlay","threadList","videos","isMyMessage","messageReactions","error","isThreadMessage","messageActionProps","theme","myMessageTheme","wrapMessageInTheme","user","id","JSON","stringify","myMessageThemeString","setMyMessageThemeString","modifiedTheme","style","colors","blue_alice","grey_gainsboro","grey_whisper","transparent","white_smoke","messageSimple","content","container","borderRadiusL","borderRadiusS","containerStyle","messageHeight","messageLayout","x","y","messageWidth","offsetY","translateY","scale","showScreen","fadeScreen","value","damping","mass","restDisplacementThreshold","restSpeedThreshold","stiffness","velocity","Keyboard","dismiss","onPan","onActive","evt","translationY","Extrapolate","CLAMP","onFinish","finalYPosition","velocityY","duration","easing","Easing","out","ease","onStart","panStyle","transform","showScreenStyle","translateX","groupStyle","toLowerCase","hasThreadReplies","reply_count","Attachment","FileAttachmentGroup","Gallery","MessageAvatar","Reply","absoluteFillObject","state","nativeEvent","State","END","sendReaction","own_reactions","map","reaction","type","layout","layoutHeight","height","layoutWidth","width","showAvatar","backgroundColor","quoted_message","length","borderBottomLeftRadius","borderBottomRightRadius","borderColor","messageContentOrder","messageContentType","messageContentOrderIndex","messageContainer","maxWidth","attachment","attachmentIndex","actions","latest_reactions","image","name","user_id","supportedReactions","areEqual","prevProps","nextProps","prevAlignment","prevMessage","prevMessageReactionTitle","nextAlignment","nextMessage","nextMessageReactionTitle","alignmentEqual","messageReactionTitleEqual","latestReactionsEqual","Array","isArray","every","index","MemoizedMessageOverlay","React","memo","MessageOverlay","data","componentProps"],"mappings":"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","sourcesContent":["import React, { useEffect, useMemo, useState } from 'react';\nimport { Keyboard, Platform, SafeAreaView, StyleSheet, View, ViewStyle } from 'react-native';\nimport {\n PanGestureHandler,\n PanGestureHandlerGestureEvent,\n State,\n TapGestureHandler,\n} from 'react-native-gesture-handler';\nimport Animated, {\n cancelAnimation,\n Easing,\n Extrapolate,\n interpolate,\n runOnJS,\n useAnimatedGestureHandler,\n useAnimatedStyle,\n useSharedValue,\n withDecay,\n withSpring,\n withTiming,\n} from 'react-native-reanimated';\n\nimport { MessageActionList as DefaultMessageActionList } from './MessageActionList';\nimport { OverlayReactionList as OverlayReactionListDefault } from './OverlayReactionList';\nimport { OverlayReactionsAvatar as OverlayReactionsAvatarDefault } from './OverlayReactionsAvatar';\n\nimport { ChatProvider } from '../../contexts/chatContext/ChatContext';\nimport { MessageProvider } from '../../contexts/messageContext/MessageContext';\nimport {\n MessageOverlayContextValue,\n MessageOverlayData,\n useMessageOverlayContext,\n} from '../../contexts/messageOverlayContext/MessageOverlayContext';\n\nimport { MessagesProvider } from '../../contexts/messagesContext/MessagesContext';\nimport {\n OverlayContextValue,\n OverlayProviderProps,\n useOverlayContext,\n} from '../../contexts/overlayContext/OverlayContext';\nimport { mergeThemes, ThemeProvider, useTheme } from '../../contexts/themeContext/ThemeContext';\n\nimport type { DefaultStreamChatGenerics } from '../../types/types';\nimport { vh, vw } from '../../utils/utils';\nimport { MessageTextContainer } from '../Message/MessageSimple/MessageTextContainer';\nimport {\n OverlayReactions as DefaultOverlayReactions,\n Reaction,\n} from '../MessageOverlay/OverlayReactions';\nimport type { ReplyProps } from '../Reply/Reply';\n\nconst styles = StyleSheet.create({\n alignEnd: { alignItems: 'flex-end' },\n alignStart: { alignItems: 'flex-start' },\n center: {\n flexGrow: 1,\n justifyContent: 'center',\n },\n containerInner: {\n borderTopLeftRadius: 16,\n borderTopRightRadius: 16,\n borderWidth: 1,\n overflow: 'hidden',\n },\n flex: {\n flex: 1,\n },\n overlayPadding: {\n padding: 8,\n },\n replyContainer: {\n flexDirection: 'row',\n paddingHorizontal: 8,\n paddingTop: 8,\n },\n row: { flexDirection: 'row' },\n scrollView: { overflow: Platform.OS === 'ios' ? 'visible' : 'scroll' },\n});\n\nconst screenHeight = vh(100);\nconst halfScreenHeight = vh(50);\nconst DefaultMessageTextNumberOfLines = 5;\n\nexport type MessageOverlayPropsWithContext<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Pick<\n MessageOverlayContextValue<StreamChatGenerics>,\n | 'MessageActionList'\n | 'MessageActionListItem'\n | 'OverlayReactionList'\n | 'OverlayReactions'\n | 'OverlayReactionsAvatar'\n> &\n Omit<MessageOverlayData<StreamChatGenerics>, 'supportedReactions'> &\n Pick<OverlayContextValue, 'overlay' | 'setOverlay'> &\n Pick<\n OverlayProviderProps<StreamChatGenerics>,\n | 'error'\n | 'isMyMessage'\n | 'isThreadMessage'\n | 'message'\n | 'messageReactions'\n | 'messageTextNumberOfLines'\n > & {\n overlayOpacity: Animated.SharedValue<number>;\n showScreen?: Animated.SharedValue<number>;\n };\n\nconst MessageOverlayWithContext = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: MessageOverlayPropsWithContext<StreamChatGenerics>,\n) => {\n const {\n alignment,\n ownCapabilities,\n clientId,\n files,\n groupStyles,\n handleReaction,\n images,\n chatContext,\n message,\n messageActions,\n MessageActionList = DefaultMessageActionList,\n MessageActionListItem,\n messageContext,\n messageReactionTitle,\n messageTextNumberOfLines = DefaultMessageTextNumberOfLines,\n messagesContext,\n onlyEmojis,\n otherAttachments,\n overlay,\n overlayOpacity,\n OverlayReactionList = OverlayReactionListDefault,\n OverlayReactions = DefaultOverlayReactions,\n OverlayReactionsAvatar = OverlayReactionsAvatarDefault,\n setOverlay,\n threadList,\n videos,\n isMyMessage,\n messageReactions,\n error,\n isThreadMessage,\n } = props;\n\n const messageActionProps = {\n error,\n isMyMessage,\n isThreadMessage,\n message,\n messageReactions,\n };\n\n const { theme } = useTheme();\n\n const myMessageTheme = messagesContext?.myMessageTheme;\n const wrapMessageInTheme = clientId === message?.user?.id && !!myMessageTheme;\n\n const [myMessageThemeString, setMyMessageThemeString] = useState(JSON.stringify(myMessageTheme));\n\n useEffect(() => {\n if (myMessageTheme) {\n setMyMessageThemeString(JSON.stringify(myMessageTheme));\n }\n }, [myMessageTheme]);\n\n const modifiedTheme = useMemo(\n () => mergeThemes({ style: myMessageTheme, theme }),\n [myMessageThemeString, theme],\n );\n\n const {\n colors: { blue_alice, grey_gainsboro, grey_whisper, transparent, white_smoke },\n messageSimple: {\n content: {\n container: { borderRadiusL, borderRadiusS },\n containerInner,\n replyContainer,\n },\n },\n overlay: { container: containerStyle, padding: overlayPadding },\n } = wrapMessageInTheme ? modifiedTheme : theme;\n\n const messageHeight = useSharedValue(0);\n const messageLayout = useSharedValue({ x: 0, y: 0 });\n const messageWidth = useSharedValue(0);\n\n const offsetY = useSharedValue(0);\n const translateY = useSharedValue(0);\n const scale = useSharedValue(1);\n\n const showScreen = useSharedValue(0);\n const fadeScreen = () => {\n 'worklet';\n\n offsetY.value = 0;\n translateY.value = 0;\n scale.value = 1;\n showScreen.value = withSpring(1, {\n damping: 600,\n mass: 0.5,\n restDisplacementThreshold: 0.01,\n restSpeedThreshold: 0.01,\n stiffness: 200,\n velocity: 32,\n });\n };\n\n useEffect(() => {\n Keyboard.dismiss();\n fadeScreen();\n }, []);\n\n const onPan = useAnimatedGestureHandler<PanGestureHandlerGestureEvent>({\n onActive: (evt) => {\n translateY.value = offsetY.value + evt.translationY;\n overlayOpacity.value = interpolate(\n translateY.value,\n [0, halfScreenHeight],\n [1, 0.75],\n Extrapolate.CLAMP,\n );\n scale.value = interpolate(\n translateY.value,\n [0, halfScreenHeight],\n [1, 0.85],\n Extrapolate.CLAMP,\n );\n },\n onFinish: (evt) => {\n const finalYPosition = evt.translationY + evt.velocityY * 0.1;\n\n if (finalYPosition > halfScreenHeight && translateY.value > 0) {\n cancelAnimation(translateY);\n overlayOpacity.value = withTiming(\n 0,\n {\n duration: 200,\n easing: Easing.out(Easing.ease),\n },\n () => {\n runOnJS(setOverlay)('none');\n },\n );\n translateY.value =\n evt.velocityY > 1000\n ? withDecay({\n velocity: evt.velocityY,\n })\n : withTiming(screenHeight, {\n duration: 200,\n easing: Easing.out(Easing.ease),\n });\n } else {\n translateY.value = withTiming(0);\n scale.value = withTiming(1);\n overlayOpacity.value = withTiming(1);\n }\n },\n onStart: () => {\n cancelAnimation(translateY);\n offsetY.value = translateY.value;\n },\n });\n\n const panStyle = useAnimatedStyle<ViewStyle>(() => ({\n transform: [\n {\n translateY: translateY.value,\n },\n {\n scale: scale.value,\n },\n ],\n }));\n\n const showScreenStyle = useAnimatedStyle<ViewStyle>(\n () => ({\n transform: [\n {\n translateY: interpolate(showScreen.value, [0, 1], [messageHeight.value / 2, 0]),\n },\n {\n translateX: interpolate(\n showScreen.value,\n [0, 1],\n [alignment === 'left' ? -messageWidth.value / 2 : messageWidth.value / 2, 0],\n ),\n },\n {\n scale: showScreen.value,\n },\n ],\n }),\n [alignment],\n );\n\n const groupStyle = `${alignment}_${(groupStyles?.[0] || 'bottom').toLowerCase()}`;\n\n const hasThreadReplies = !!message?.reply_count;\n\n const { Attachment, FileAttachmentGroup, Gallery, MessageAvatar, Reply } = messagesContext || {};\n\n return (\n <ChatProvider value={chatContext}>\n <MessagesProvider value={messagesContext}>\n <MessageProvider value={messageContext}>\n <ThemeProvider mergedStyle={wrapMessageInTheme ? modifiedTheme : theme}>\n <Animated.View\n pointerEvents={'auto'}\n style={[StyleSheet.absoluteFillObject, containerStyle]}\n >\n <PanGestureHandler\n enabled={overlay === 'message'}\n maxPointers={1}\n minDist={10}\n onGestureEvent={onPan}\n >\n <Animated.View style={[StyleSheet.absoluteFillObject]}>\n <SafeAreaView style={styles.flex}>\n <TapGestureHandler\n maxDist={32}\n onHandlerStateChange={({ nativeEvent: { state } }) => {\n if (state === State.END) {\n setOverlay('none');\n }\n }}\n >\n <Animated.View style={[styles.flex, panStyle]}>\n {message && (\n <View\n style={[\n styles.center,\n styles.overlayPadding,\n { padding: overlayPadding },\n alignment === 'left' ? styles.alignStart : styles.alignEnd,\n ]}\n >\n {handleReaction && ownCapabilities?.sendReaction ? (\n <OverlayReactionList\n messageLayout={messageLayout}\n ownReactionTypes={\n message?.own_reactions?.map((reaction) => reaction.type) || []\n }\n showScreen={showScreen}\n />\n ) : null}\n <Animated.View\n onLayout={({\n nativeEvent: {\n layout: { height: layoutHeight, width: layoutWidth, x, y },\n },\n }) => {\n messageLayout.value = {\n x: alignment === 'left' ? x + layoutWidth : x,\n y,\n };\n messageWidth.value = layoutWidth;\n messageHeight.value = layoutHeight;\n }}\n style={[styles.alignEnd, styles.row, showScreenStyle]}\n >\n {alignment === 'left' && MessageAvatar && (\n <MessageAvatar {...{ alignment, message, showAvatar: true }} />\n )}\n <View\n pointerEvents='none'\n style={[\n styles.containerInner,\n {\n backgroundColor:\n onlyEmojis && !message.quoted_message\n ? transparent\n : otherAttachments?.length\n ? otherAttachments[0].type === 'giphy'\n ? !message.quoted_message\n ? transparent\n : grey_gainsboro\n : blue_alice\n : alignment === 'left'\n ? white_smoke\n : grey_gainsboro,\n borderBottomLeftRadius:\n (groupStyle === 'left_bottom' ||\n groupStyle === 'left_single') &&\n (!hasThreadReplies || threadList)\n ? borderRadiusS\n : borderRadiusL,\n borderBottomRightRadius:\n (groupStyle === 'right_bottom' ||\n groupStyle === 'right_single') &&\n (!hasThreadReplies || threadList)\n ? borderRadiusS\n : borderRadiusL,\n borderColor: grey_whisper,\n },\n (onlyEmojis && !message.quoted_message) ||\n otherAttachments?.length\n ? { borderWidth: 0 }\n : {},\n containerInner,\n ]}\n >\n {messagesContext?.messageContentOrder?.map(\n (messageContentType, messageContentOrderIndex) => {\n switch (messageContentType) {\n case 'quoted_reply':\n return (\n message.quoted_message &&\n Reply && (\n <View\n key={`quoted_reply_${messageContentOrderIndex}`}\n style={[styles.replyContainer, replyContainer]}\n >\n <Reply\n quotedMessage={\n message.quoted_message as ReplyProps<StreamChatGenerics>['quotedMessage']\n }\n styles={{\n messageContainer: {\n maxWidth: vw(60),\n },\n }}\n />\n </View>\n )\n );\n case 'attachments':\n return otherAttachments?.map(\n (attachment, attachmentIndex) =>\n Attachment && (\n <Attachment\n attachment={attachment}\n key={`${message.id}-${attachmentIndex}`}\n />\n ),\n );\n case 'files':\n return (\n FileAttachmentGroup && (\n <FileAttachmentGroup\n files={files}\n key={`file_attachment_group_${messageContentOrderIndex}`}\n messageId={message.id}\n />\n )\n );\n case 'gallery':\n return (\n Gallery && (\n <Gallery\n alignment={alignment}\n groupStyles={groupStyles}\n hasThreadReplies={!!message?.reply_count}\n images={images}\n key={`gallery_${messageContentOrderIndex}`}\n message={message}\n threadList={threadList}\n videos={videos}\n />\n )\n );\n case 'text':\n default:\n return otherAttachments?.length &&\n otherAttachments[0].actions ? null : (\n <MessageTextContainer<StreamChatGenerics>\n key={`message_text_container_${messageContentOrderIndex}`}\n message={message}\n messageOverlay\n messageTextNumberOfLines={messageTextNumberOfLines}\n onlyEmojis={onlyEmojis}\n />\n );\n }\n },\n )}\n </View>\n </Animated.View>\n {messageActions && (\n <MessageActionList\n MessageActionListItem={MessageActionListItem}\n showScreen={showScreen}\n {...messageActionProps}\n message={message}\n />\n )}\n {!!messageReactionTitle &&\n message.latest_reactions &&\n message.latest_reactions.length > 0 ? (\n <OverlayReactions\n alignment={alignment}\n OverlayReactionsAvatar={OverlayReactionsAvatar}\n reactions={\n message.latest_reactions.map((reaction) => ({\n alignment:\n clientId && clientId === reaction.user?.id ? 'right' : 'left',\n id: reaction?.user?.id || '',\n image: reaction?.user?.image,\n name: reaction?.user?.name || reaction.user_id || '',\n type: reaction.type,\n })) as Reaction[]\n }\n showScreen={showScreen}\n supportedReactions={messagesContext?.supportedReactions}\n title={messageReactionTitle}\n />\n ) : null}\n </View>\n )}\n </Animated.View>\n </TapGestureHandler>\n </SafeAreaView>\n </Animated.View>\n </PanGestureHandler>\n </Animated.View>\n </ThemeProvider>\n </MessageProvider>\n </MessagesProvider>\n </ChatProvider>\n );\n};\n\nconst areEqual = <StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>(\n prevProps: MessageOverlayPropsWithContext<StreamChatGenerics>,\n nextProps: MessageOverlayPropsWithContext<StreamChatGenerics>,\n) => {\n const {\n alignment: prevAlignment,\n message: prevMessage,\n messageReactionTitle: prevMessageReactionTitle,\n } = prevProps;\n const {\n alignment: nextAlignment,\n message: nextMessage,\n messageReactionTitle: nextMessageReactionTitle,\n } = nextProps;\n\n const alignmentEqual = prevAlignment === nextAlignment;\n if (!alignmentEqual) return false;\n\n const messageReactionTitleEqual = prevMessageReactionTitle === nextMessageReactionTitle;\n if (!messageReactionTitleEqual) return false;\n\n const latestReactionsEqual =\n Array.isArray(prevMessage?.latest_reactions) && Array.isArray(nextMessage?.latest_reactions)\n ? prevMessage?.latest_reactions.length === nextMessage?.latest_reactions.length &&\n prevMessage?.latest_reactions.every(\n ({ type }, index) => type === nextMessage?.latest_reactions?.[index].type,\n )\n : prevMessage?.latest_reactions === nextMessage?.latest_reactions;\n if (!latestReactionsEqual) return false;\n\n return true;\n};\n\nconst MemoizedMessageOverlay = React.memo(\n MessageOverlayWithContext,\n areEqual,\n) as typeof MessageOverlayWithContext;\n\nexport type MessageOverlayProps<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Partial<Omit<MessageOverlayPropsWithContext<StreamChatGenerics>, 'overlayOpacity'>> &\n Pick<MessageOverlayPropsWithContext<StreamChatGenerics>, 'overlayOpacity'> &\n Pick<\n MessageOverlayPropsWithContext<StreamChatGenerics>,\n 'isMyMessage' | 'error' | 'isThreadMessage' | 'message' | 'messageReactions'\n >;\n\n/**\n * MessageOverlay - A high level component which implements all the logic required for a message overlay\n */\nexport const MessageOverlay = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: MessageOverlayProps<StreamChatGenerics>,\n) => {\n const {\n data,\n MessageActionList,\n MessageActionListItem,\n OverlayReactionList,\n OverlayReactions,\n OverlayReactionsAvatar,\n } = useMessageOverlayContext<StreamChatGenerics>();\n const { overlay, setOverlay } = useOverlayContext();\n\n const componentProps = {\n MessageActionList: props.MessageActionList || MessageActionList,\n MessageActionListItem: props.MessageActionListItem || MessageActionListItem,\n OverlayReactionList:\n props.OverlayReactionList || OverlayReactionList || data?.OverlayReactionList,\n OverlayReactions: props.OverlayReactions || OverlayReactions,\n OverlayReactionsAvatar: props.OverlayReactionsAvatar || OverlayReactionsAvatar,\n };\n\n return (\n <MemoizedMessageOverlay\n {...{\n overlay,\n setOverlay,\n }}\n {...componentProps}\n {...(data || {})}\n {...props}\n />\n );\n};\n"]}
|
|
@@ -114,7 +114,7 @@ var ReactionIcon = function ReactionIcon(_ref) {
|
|
|
114
114
|
__self: _this,
|
|
115
115
|
__source: {
|
|
116
116
|
fileName: _jsxFileName,
|
|
117
|
-
lineNumber:
|
|
117
|
+
lineNumber: 123,
|
|
118
118
|
columnNumber: 10
|
|
119
119
|
}
|
|
120
120
|
});
|
|
@@ -177,7 +177,7 @@ var OverlayReactions = function OverlayReactions(props) {
|
|
|
177
177
|
__self: _this,
|
|
178
178
|
__source: {
|
|
179
179
|
fileName: _jsxFileName,
|
|
180
|
-
lineNumber:
|
|
180
|
+
lineNumber: 208,
|
|
181
181
|
columnNumber: 7
|
|
182
182
|
}
|
|
183
183
|
}, _react["default"].createElement(_reactNative.View, {
|
|
@@ -185,7 +185,7 @@ var OverlayReactions = function OverlayReactions(props) {
|
|
|
185
185
|
__self: _this,
|
|
186
186
|
__source: {
|
|
187
187
|
fileName: _jsxFileName,
|
|
188
|
-
lineNumber:
|
|
188
|
+
lineNumber: 209,
|
|
189
189
|
columnNumber: 9
|
|
190
190
|
}
|
|
191
191
|
}, _react["default"].createElement(OverlayReactionsAvatar, {
|
|
@@ -194,7 +194,7 @@ var OverlayReactions = function OverlayReactions(props) {
|
|
|
194
194
|
__self: _this,
|
|
195
195
|
__source: {
|
|
196
196
|
fileName: _jsxFileName,
|
|
197
|
-
lineNumber:
|
|
197
|
+
lineNumber: 210,
|
|
198
198
|
columnNumber: 11
|
|
199
199
|
}
|
|
200
200
|
}), _react["default"].createElement(_reactNative.View, {
|
|
@@ -202,14 +202,14 @@ var OverlayReactions = function OverlayReactions(props) {
|
|
|
202
202
|
__self: _this,
|
|
203
203
|
__source: {
|
|
204
204
|
fileName: _jsxFileName,
|
|
205
|
-
lineNumber:
|
|
205
|
+
lineNumber: 211,
|
|
206
206
|
columnNumber: 11
|
|
207
207
|
}
|
|
208
208
|
}, _react["default"].createElement(_reactNativeSvg["default"], {
|
|
209
209
|
__self: _this,
|
|
210
210
|
__source: {
|
|
211
211
|
fileName: _jsxFileName,
|
|
212
|
-
lineNumber:
|
|
212
|
+
lineNumber: 212,
|
|
213
213
|
columnNumber: 13
|
|
214
214
|
}
|
|
215
215
|
}, _react["default"].createElement(_reactNativeSvg.Circle, {
|
|
@@ -222,7 +222,7 @@ var OverlayReactions = function OverlayReactions(props) {
|
|
|
222
222
|
__self: _this,
|
|
223
223
|
__source: {
|
|
224
224
|
fileName: _jsxFileName,
|
|
225
|
-
lineNumber:
|
|
225
|
+
lineNumber: 213,
|
|
226
226
|
columnNumber: 15
|
|
227
227
|
}
|
|
228
228
|
}), _react["default"].createElement(_reactNativeSvg.Circle, {
|
|
@@ -235,7 +235,7 @@ var OverlayReactions = function OverlayReactions(props) {
|
|
|
235
235
|
__self: _this,
|
|
236
236
|
__source: {
|
|
237
237
|
fileName: _jsxFileName,
|
|
238
|
-
lineNumber:
|
|
238
|
+
lineNumber: 221,
|
|
239
239
|
columnNumber: 15
|
|
240
240
|
}
|
|
241
241
|
})), _react["default"].createElement(_reactNative.View, {
|
|
@@ -249,7 +249,7 @@ var OverlayReactions = function OverlayReactions(props) {
|
|
|
249
249
|
__self: _this,
|
|
250
250
|
__source: {
|
|
251
251
|
fileName: _jsxFileName,
|
|
252
|
-
lineNumber:
|
|
252
|
+
lineNumber: 230,
|
|
253
253
|
columnNumber: 13
|
|
254
254
|
}
|
|
255
255
|
}), _react["default"].createElement(_reactNative.View, {
|
|
@@ -257,14 +257,14 @@ var OverlayReactions = function OverlayReactions(props) {
|
|
|
257
257
|
__self: _this,
|
|
258
258
|
__source: {
|
|
259
259
|
fileName: _jsxFileName,
|
|
260
|
-
lineNumber:
|
|
260
|
+
lineNumber: 243,
|
|
261
261
|
columnNumber: 13
|
|
262
262
|
}
|
|
263
263
|
}, _react["default"].createElement(_reactNativeSvg["default"], {
|
|
264
264
|
__self: _this,
|
|
265
265
|
__source: {
|
|
266
266
|
fileName: _jsxFileName,
|
|
267
|
-
lineNumber:
|
|
267
|
+
lineNumber: 244,
|
|
268
268
|
columnNumber: 15
|
|
269
269
|
}
|
|
270
270
|
}, _react["default"].createElement(_reactNativeSvg.Circle, {
|
|
@@ -275,7 +275,7 @@ var OverlayReactions = function OverlayReactions(props) {
|
|
|
275
275
|
__self: _this,
|
|
276
276
|
__source: {
|
|
277
277
|
fileName: _jsxFileName,
|
|
278
|
-
lineNumber:
|
|
278
|
+
lineNumber: 245,
|
|
279
279
|
columnNumber: 17
|
|
280
280
|
}
|
|
281
281
|
}))), _react["default"].createElement(_reactNative.View, {
|
|
@@ -289,7 +289,7 @@ var OverlayReactions = function OverlayReactions(props) {
|
|
|
289
289
|
__self: _this,
|
|
290
290
|
__source: {
|
|
291
291
|
fileName: _jsxFileName,
|
|
292
|
-
lineNumber:
|
|
292
|
+
lineNumber: 253,
|
|
293
293
|
columnNumber: 13
|
|
294
294
|
}
|
|
295
295
|
}, _react["default"].createElement(ReactionIcon, {
|
|
@@ -300,7 +300,7 @@ var OverlayReactions = function OverlayReactions(props) {
|
|
|
300
300
|
__self: _this,
|
|
301
301
|
__source: {
|
|
302
302
|
fileName: _jsxFileName,
|
|
303
|
-
lineNumber:
|
|
303
|
+
lineNumber: 270,
|
|
304
304
|
columnNumber: 15
|
|
305
305
|
}
|
|
306
306
|
})))), _react["default"].createElement(_reactNative.View, {
|
|
@@ -308,7 +308,7 @@ var OverlayReactions = function OverlayReactions(props) {
|
|
|
308
308
|
__self: _this,
|
|
309
309
|
__source: {
|
|
310
310
|
fileName: _jsxFileName,
|
|
311
|
-
lineNumber:
|
|
311
|
+
lineNumber: 279,
|
|
312
312
|
columnNumber: 9
|
|
313
313
|
}
|
|
314
314
|
}, _react["default"].createElement(_reactNative.Text, {
|
|
@@ -318,7 +318,7 @@ var OverlayReactions = function OverlayReactions(props) {
|
|
|
318
318
|
__self: _this,
|
|
319
319
|
__source: {
|
|
320
320
|
fileName: _jsxFileName,
|
|
321
|
-
lineNumber:
|
|
321
|
+
lineNumber: 280,
|
|
322
322
|
columnNumber: 11
|
|
323
323
|
}
|
|
324
324
|
}, name)));
|
|
@@ -347,7 +347,7 @@ var OverlayReactions = function OverlayReactions(props) {
|
|
|
347
347
|
__self: _this,
|
|
348
348
|
__source: {
|
|
349
349
|
fileName: _jsxFileName,
|
|
350
|
-
lineNumber:
|
|
350
|
+
lineNumber: 308,
|
|
351
351
|
columnNumber: 5
|
|
352
352
|
}
|
|
353
353
|
}, _react["default"].createElement(_reactNative.Text, {
|
|
@@ -357,7 +357,7 @@ var OverlayReactions = function OverlayReactions(props) {
|
|
|
357
357
|
__self: _this,
|
|
358
358
|
__source: {
|
|
359
359
|
fileName: _jsxFileName,
|
|
360
|
-
lineNumber:
|
|
360
|
+
lineNumber: 315,
|
|
361
361
|
columnNumber: 7
|
|
362
362
|
}
|
|
363
363
|
}, title), _react["default"].createElement(_reactNativeGestureHandler.FlatList, {
|
|
@@ -375,7 +375,7 @@ var OverlayReactions = function OverlayReactions(props) {
|
|
|
375
375
|
__self: _this,
|
|
376
376
|
__source: {
|
|
377
377
|
fileName: _jsxFileName,
|
|
378
|
-
lineNumber:
|
|
378
|
+
lineNumber: 316,
|
|
379
379
|
columnNumber: 7
|
|
380
380
|
}
|
|
381
381
|
}));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["OverlayReactions.tsx"],"names":["styles","StyleSheet","create","avatarContainer","padding","avatarInnerContainer","alignSelf","avatarName","flex","fontSize","fontWeight","paddingTop","textAlign","avatarNameContainer","alignItems","flexDirection","flexGrow","container","borderRadius","marginTop","width","flatListContainer","paddingHorizontal","paddingVertical","flatListContentContainer","paddingBottom","reactionBubble","justifyContent","position","reactionBubbleBackground","height","title","reactionData","Icon","LoveReaction","type","ThumbsUpReaction","ThumbsDownReaction","LOLReaction","WutReaction","ReactionIcon","pathFill","size","supportedReactions","find","reaction","Unknown","OverlayReactions","props","overlayAlignment","alignment","reactions","showScreen","OverlayReactionsAvatar","layoutHeight","layoutWidth","theme","colors","accent_blue","black","grey_gainsboro","white","overlay","overlayPadding","avatarSize","radius","titleStyle","supportedReactionTypes","map","supportedReaction","filteredReactions","filter","includes","numColumns","Math","floor","Number","maxHeight","renderItem","item","name","x","y","left","top","absoluteFill","backgroundColor","borderColor","borderWidth","color","showScreenStyle","transform","translateY","value","translateX","scale","layout","nativeEvent","index","displayName"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { StyleSheet, Text, useWindowDimensions, View, ViewStyle } from 'react-native';\nimport { FlatList } from 'react-native-gesture-handler';\nimport Animated, { interpolate, useAnimatedStyle, useSharedValue } from 'react-native-reanimated';\nimport Svg, { Circle } from 'react-native-svg';\n\nimport type { Alignment } from '../../contexts/messageContext/MessageContext';\nimport type { MessageOverlayContextValue } from '../../contexts/messageOverlayContext/MessageOverlayContext';\nimport { useTheme } from '../../contexts/themeContext/ThemeContext';\nimport {\n LOLReaction,\n LoveReaction,\n ThumbsDownReaction,\n ThumbsUpReaction,\n Unknown,\n WutReaction,\n} from '../../icons';\n\nimport type { DefaultStreamChatGenerics } from '../../types/types';\nimport type { ReactionData } from '../../utils/utils';\n\nconst styles = StyleSheet.create({\n avatarContainer: {\n padding: 8,\n },\n avatarInnerContainer: {\n alignSelf: 'center',\n },\n avatarName: {\n flex: 1,\n fontSize: 12,\n fontWeight: '700',\n paddingTop: 6,\n textAlign: 'center',\n },\n avatarNameContainer: {\n alignItems: 'center',\n flexDirection: 'row',\n flexGrow: 1,\n },\n container: {\n alignItems: 'center',\n borderRadius: 16,\n marginTop: 8,\n width: '100%',\n },\n flatListContainer: {\n paddingHorizontal: 12,\n paddingVertical: 8,\n },\n flatListContentContainer: {\n alignItems: 'center',\n paddingBottom: 12,\n },\n reactionBubble: {\n alignItems: 'center',\n borderRadius: 24,\n justifyContent: 'center',\n position: 'absolute',\n },\n reactionBubbleBackground: {\n borderRadius: 24,\n height: 24,\n position: 'absolute',\n width: 24,\n },\n title: {\n fontSize: 16,\n fontWeight: '700',\n paddingTop: 16,\n },\n});\n\nconst reactionData: ReactionData[] = [\n {\n Icon: LoveReaction,\n type: 'love',\n },\n {\n Icon: ThumbsUpReaction,\n type: 'like',\n },\n {\n Icon: ThumbsDownReaction,\n type: 'sad',\n },\n {\n Icon: LOLReaction,\n type: 'haha',\n },\n {\n Icon: WutReaction,\n type: 'wow',\n },\n];\n\nexport type Reaction = {\n alignment: Alignment;\n name: string;\n type: string;\n image?: string;\n};\n\nexport type OverlayReactionsProps<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Pick<MessageOverlayContextValue<StreamChatGenerics>, 'OverlayReactionsAvatar'> & {\n reactions: Reaction[];\n showScreen: Animated.SharedValue<number>;\n title: string;\n alignment?: Alignment;\n supportedReactions?: ReactionData[];\n};\n\nconst ReactionIcon: React.FC<\n Pick<Reaction, 'type'> & {\n pathFill: string;\n size: number;\n supportedReactions: ReactionData[];\n }\n> = ({ pathFill, size, supportedReactions, type }) => {\n const Icon = supportedReactions.find((reaction) => reaction.type === type)?.Icon || Unknown;\n return <Icon height={size} pathFill={pathFill} width={size} />;\n};\n\n/**\n * OverlayReactions - A high level component which implements all the logic required for message overlay reactions\n */\nexport const OverlayReactions: React.FC<OverlayReactionsProps> = (props) => {\n const {\n alignment: overlayAlignment,\n reactions,\n supportedReactions = reactionData,\n showScreen,\n title,\n OverlayReactionsAvatar,\n } = props;\n const layoutHeight = useSharedValue(0);\n const layoutWidth = useSharedValue(0);\n\n const {\n theme: {\n colors: { accent_blue, black, grey_gainsboro, white },\n overlay: {\n padding: overlayPadding,\n reactions: {\n avatarContainer,\n avatarName,\n avatarSize,\n container,\n flatListContainer,\n radius,\n reactionBubble,\n reactionBubbleBackground,\n title: titleStyle,\n },\n },\n },\n } = useTheme();\n\n const width = useWindowDimensions().width;\n const height = useWindowDimensions().height;\n\n const supportedReactionTypes = supportedReactions.map(\n (supportedReaction) => supportedReaction.type,\n );\n\n const filteredReactions = reactions.filter((reaction) =>\n supportedReactionTypes.includes(reaction.type),\n );\n\n const numColumns = Math.floor(\n (width -\n overlayPadding * 2 -\n ((Number(flatListContainer.paddingHorizontal || 0) ||\n styles.flatListContainer.paddingHorizontal) +\n (Number(avatarContainer.padding || 0) || styles.avatarContainer.padding)) *\n 2) /\n (avatarSize + (Number(avatarContainer.padding || 0) || styles.avatarContainer.padding) * 2),\n );\n\n const maxHeight = Math.floor(\n height -\n overlayPadding * 2 -\n ((Number(flatListContainer.paddingVertical || 0) ||\n styles.flatListContainer.paddingVertical) +\n (Number(avatarContainer.padding || 0) || styles.avatarContainer.padding)) *\n 2,\n );\n\n const renderItem = ({ item }: { item: Reaction }) => {\n const { alignment = 'left', name, type } = item;\n const x = avatarSize / 2 - (avatarSize / (radius * 4)) * (alignment === 'left' ? 1 : -1);\n const y = avatarSize - radius;\n\n const left =\n alignment === 'left'\n ? x -\n (Number(reactionBubbleBackground.width || 0) || styles.reactionBubbleBackground.width) +\n radius\n : x - radius;\n const top =\n y -\n radius -\n (Number(reactionBubbleBackground.height || 0) || styles.reactionBubbleBackground.height);\n\n return (\n <View style={[styles.avatarContainer, avatarContainer]}>\n <View style={styles.avatarInnerContainer}>\n <OverlayReactionsAvatar reaction={item} size={avatarSize} />\n <View style={[StyleSheet.absoluteFill]}>\n <Svg>\n <Circle\n cx={x - (radius * 2 - radius / 4) * (alignment === 'left' ? 1 : -1)}\n cy={y - radius * 2 - radius / 4}\n fill={alignment === 'left' ? grey_gainsboro : white}\n r={radius * 2}\n stroke={alignment === 'left' ? white : grey_gainsboro}\n strokeWidth={radius / 2}\n />\n <Circle\n cx={x}\n cy={y}\n fill={alignment === 'left' ? grey_gainsboro : white}\n r={radius}\n stroke={alignment === 'left' ? white : grey_gainsboro}\n strokeWidth={radius / 2}\n />\n </Svg>\n <View\n style={[\n styles.reactionBubbleBackground,\n {\n backgroundColor: alignment === 'left' ? grey_gainsboro : white,\n borderColor: alignment === 'left' ? white : grey_gainsboro,\n borderWidth: radius / 2,\n left,\n top,\n },\n reactionBubbleBackground,\n ]}\n />\n <View style={[StyleSheet.absoluteFill]}>\n <Svg>\n <Circle\n cx={x - (radius * 2 - radius / 4) * (alignment === 'left' ? 1 : -1)}\n cy={y - radius * 2 - radius / 4}\n fill={alignment === 'left' ? grey_gainsboro : white}\n r={radius * 2 - radius / 2}\n />\n </Svg>\n </View>\n <View\n style={[\n styles.reactionBubble,\n {\n backgroundColor: alignment === 'left' ? grey_gainsboro : white,\n height:\n (reactionBubble.borderRadius || styles.reactionBubble.borderRadius) -\n radius / 2,\n left,\n top,\n width:\n (reactionBubble.borderRadius || styles.reactionBubble.borderRadius) -\n radius / 2,\n },\n reactionBubble,\n ]}\n >\n <ReactionIcon\n pathFill={accent_blue}\n size={(reactionBubble.borderRadius || styles.reactionBubble.borderRadius) / 2}\n supportedReactions={supportedReactions}\n type={type}\n />\n </View>\n </View>\n </View>\n <View style={styles.avatarNameContainer}>\n <Text style={[styles.avatarName, { color: black }, avatarName]}>{name}</Text>\n </View>\n </View>\n );\n };\n\n const showScreenStyle = useAnimatedStyle<ViewStyle>(\n () => ({\n transform: [\n {\n translateY: interpolate(showScreen.value, [0, 1], [-layoutHeight.value / 2, 0]),\n },\n {\n translateX: interpolate(\n showScreen.value,\n [0, 1],\n [overlayAlignment === 'left' ? -layoutWidth.value / 2 : layoutWidth.value / 2, 0],\n ),\n },\n {\n scale: showScreen.value,\n },\n ],\n }),\n [overlayAlignment],\n );\n\n return (\n <Animated.View\n onLayout={({ nativeEvent: { layout } }) => {\n layoutWidth.value = layout.width;\n layoutHeight.value = layout.height;\n }}\n style={[styles.container, { backgroundColor: white }, container, showScreenStyle]}\n >\n <Text style={[styles.title, { color: black }, titleStyle]}>{title}</Text>\n <FlatList\n contentContainerStyle={styles.flatListContentContainer}\n data={filteredReactions}\n keyExtractor={({ name }, index) => `${name}_${index}`}\n numColumns={numColumns}\n renderItem={renderItem}\n style={[styles.flatListContainer, flatListContainer, { maxHeight: maxHeight / numColumns }]}\n />\n </Animated.View>\n );\n};\n\nOverlayReactions.displayName = 'OverlayReactions{overlay{reactions}}';\n"]}
|
|
1
|
+
{"version":3,"sources":["OverlayReactions.tsx"],"names":["styles","StyleSheet","create","avatarContainer","padding","avatarInnerContainer","alignSelf","avatarName","flex","fontSize","fontWeight","paddingTop","textAlign","avatarNameContainer","alignItems","flexDirection","flexGrow","container","borderRadius","marginTop","width","flatListContainer","paddingHorizontal","paddingVertical","flatListContentContainer","paddingBottom","reactionBubble","justifyContent","position","reactionBubbleBackground","height","title","reactionData","Icon","LoveReaction","type","ThumbsUpReaction","ThumbsDownReaction","LOLReaction","WutReaction","ReactionIcon","pathFill","size","supportedReactions","find","reaction","Unknown","OverlayReactions","props","overlayAlignment","alignment","reactions","showScreen","OverlayReactionsAvatar","layoutHeight","layoutWidth","theme","colors","accent_blue","black","grey_gainsboro","white","overlay","overlayPadding","avatarSize","radius","titleStyle","supportedReactionTypes","map","supportedReaction","filteredReactions","filter","includes","numColumns","Math","floor","Number","maxHeight","renderItem","item","name","x","y","left","top","absoluteFill","backgroundColor","borderColor","borderWidth","color","showScreenStyle","transform","translateY","value","translateX","scale","layout","nativeEvent","index","displayName"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { StyleSheet, Text, useWindowDimensions, View, ViewStyle } from 'react-native';\nimport { FlatList } from 'react-native-gesture-handler';\nimport Animated, { interpolate, useAnimatedStyle, useSharedValue } from 'react-native-reanimated';\nimport Svg, { Circle } from 'react-native-svg';\n\nimport type { Alignment } from '../../contexts/messageContext/MessageContext';\nimport type { MessageOverlayContextValue } from '../../contexts/messageOverlayContext/MessageOverlayContext';\nimport { useTheme } from '../../contexts/themeContext/ThemeContext';\nimport {\n LOLReaction,\n LoveReaction,\n ThumbsDownReaction,\n ThumbsUpReaction,\n Unknown,\n WutReaction,\n} from '../../icons';\n\nimport type { DefaultStreamChatGenerics } from '../../types/types';\nimport type { ReactionData } from '../../utils/utils';\n\nconst styles = StyleSheet.create({\n avatarContainer: {\n padding: 8,\n },\n avatarInnerContainer: {\n alignSelf: 'center',\n },\n avatarName: {\n flex: 1,\n fontSize: 12,\n fontWeight: '700',\n paddingTop: 6,\n textAlign: 'center',\n },\n avatarNameContainer: {\n alignItems: 'center',\n flexDirection: 'row',\n flexGrow: 1,\n },\n container: {\n alignItems: 'center',\n borderRadius: 16,\n marginTop: 8,\n width: '100%',\n },\n flatListContainer: {\n paddingHorizontal: 12,\n paddingVertical: 8,\n },\n flatListContentContainer: {\n alignItems: 'center',\n paddingBottom: 12,\n },\n reactionBubble: {\n alignItems: 'center',\n borderRadius: 24,\n justifyContent: 'center',\n position: 'absolute',\n },\n reactionBubbleBackground: {\n borderRadius: 24,\n height: 24,\n position: 'absolute',\n width: 24,\n },\n title: {\n fontSize: 16,\n fontWeight: '700',\n paddingTop: 16,\n },\n});\n\nconst reactionData: ReactionData[] = [\n {\n Icon: LoveReaction,\n type: 'love',\n },\n {\n Icon: ThumbsUpReaction,\n type: 'like',\n },\n {\n Icon: ThumbsDownReaction,\n type: 'sad',\n },\n {\n Icon: LOLReaction,\n type: 'haha',\n },\n {\n Icon: WutReaction,\n type: 'wow',\n },\n];\n\nexport type Reaction = {\n alignment: Alignment;\n id: string;\n name: string;\n type: string;\n image?: string;\n};\n\nexport type OverlayReactionsProps<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Pick<MessageOverlayContextValue<StreamChatGenerics>, 'OverlayReactionsAvatar'> & {\n reactions: Reaction[];\n showScreen: Animated.SharedValue<number>;\n title: string;\n alignment?: Alignment;\n supportedReactions?: ReactionData[];\n};\n\nconst ReactionIcon: React.FC<\n Pick<Reaction, 'type'> & {\n pathFill: string;\n size: number;\n supportedReactions: ReactionData[];\n }\n> = ({ pathFill, size, supportedReactions, type }) => {\n const Icon = supportedReactions.find((reaction) => reaction.type === type)?.Icon || Unknown;\n return <Icon height={size} pathFill={pathFill} width={size} />;\n};\n\n/**\n * OverlayReactions - A high level component which implements all the logic required for message overlay reactions\n */\nexport const OverlayReactions: React.FC<OverlayReactionsProps> = (props) => {\n const {\n alignment: overlayAlignment,\n reactions,\n supportedReactions = reactionData,\n showScreen,\n title,\n OverlayReactionsAvatar,\n } = props;\n const layoutHeight = useSharedValue(0);\n const layoutWidth = useSharedValue(0);\n\n const {\n theme: {\n colors: { accent_blue, black, grey_gainsboro, white },\n overlay: {\n padding: overlayPadding,\n reactions: {\n avatarContainer,\n avatarName,\n avatarSize,\n container,\n flatListContainer,\n radius,\n reactionBubble,\n reactionBubbleBackground,\n title: titleStyle,\n },\n },\n },\n } = useTheme();\n\n const width = useWindowDimensions().width;\n const height = useWindowDimensions().height;\n\n const supportedReactionTypes = supportedReactions.map(\n (supportedReaction) => supportedReaction.type,\n );\n\n const filteredReactions = reactions.filter((reaction) =>\n supportedReactionTypes.includes(reaction.type),\n );\n\n const numColumns = Math.floor(\n (width -\n overlayPadding * 2 -\n ((Number(flatListContainer.paddingHorizontal || 0) ||\n styles.flatListContainer.paddingHorizontal) +\n (Number(avatarContainer.padding || 0) || styles.avatarContainer.padding)) *\n 2) /\n (avatarSize + (Number(avatarContainer.padding || 0) || styles.avatarContainer.padding) * 2),\n );\n\n const maxHeight = Math.floor(\n height -\n overlayPadding * 2 -\n ((Number(flatListContainer.paddingVertical || 0) ||\n styles.flatListContainer.paddingVertical) +\n (Number(avatarContainer.padding || 0) || styles.avatarContainer.padding)) *\n 2,\n );\n\n const renderItem = ({ item }: { item: Reaction }) => {\n const { alignment = 'left', name, type } = item;\n const x = avatarSize / 2 - (avatarSize / (radius * 4)) * (alignment === 'left' ? 1 : -1);\n const y = avatarSize - radius;\n\n const left =\n alignment === 'left'\n ? x -\n (Number(reactionBubbleBackground.width || 0) || styles.reactionBubbleBackground.width) +\n radius\n : x - radius;\n const top =\n y -\n radius -\n (Number(reactionBubbleBackground.height || 0) || styles.reactionBubbleBackground.height);\n\n return (\n <View style={[styles.avatarContainer, avatarContainer]}>\n <View style={styles.avatarInnerContainer}>\n <OverlayReactionsAvatar reaction={item} size={avatarSize} />\n <View style={[StyleSheet.absoluteFill]}>\n <Svg>\n <Circle\n cx={x - (radius * 2 - radius / 4) * (alignment === 'left' ? 1 : -1)}\n cy={y - radius * 2 - radius / 4}\n fill={alignment === 'left' ? grey_gainsboro : white}\n r={radius * 2}\n stroke={alignment === 'left' ? white : grey_gainsboro}\n strokeWidth={radius / 2}\n />\n <Circle\n cx={x}\n cy={y}\n fill={alignment === 'left' ? grey_gainsboro : white}\n r={radius}\n stroke={alignment === 'left' ? white : grey_gainsboro}\n strokeWidth={radius / 2}\n />\n </Svg>\n <View\n style={[\n styles.reactionBubbleBackground,\n {\n backgroundColor: alignment === 'left' ? grey_gainsboro : white,\n borderColor: alignment === 'left' ? white : grey_gainsboro,\n borderWidth: radius / 2,\n left,\n top,\n },\n reactionBubbleBackground,\n ]}\n />\n <View style={[StyleSheet.absoluteFill]}>\n <Svg>\n <Circle\n cx={x - (radius * 2 - radius / 4) * (alignment === 'left' ? 1 : -1)}\n cy={y - radius * 2 - radius / 4}\n fill={alignment === 'left' ? grey_gainsboro : white}\n r={radius * 2 - radius / 2}\n />\n </Svg>\n </View>\n <View\n style={[\n styles.reactionBubble,\n {\n backgroundColor: alignment === 'left' ? grey_gainsboro : white,\n height:\n (reactionBubble.borderRadius || styles.reactionBubble.borderRadius) -\n radius / 2,\n left,\n top,\n width:\n (reactionBubble.borderRadius || styles.reactionBubble.borderRadius) -\n radius / 2,\n },\n reactionBubble,\n ]}\n >\n <ReactionIcon\n pathFill={accent_blue}\n size={(reactionBubble.borderRadius || styles.reactionBubble.borderRadius) / 2}\n supportedReactions={supportedReactions}\n type={type}\n />\n </View>\n </View>\n </View>\n <View style={styles.avatarNameContainer}>\n <Text style={[styles.avatarName, { color: black }, avatarName]}>{name}</Text>\n </View>\n </View>\n );\n };\n\n const showScreenStyle = useAnimatedStyle<ViewStyle>(\n () => ({\n transform: [\n {\n translateY: interpolate(showScreen.value, [0, 1], [-layoutHeight.value / 2, 0]),\n },\n {\n translateX: interpolate(\n showScreen.value,\n [0, 1],\n [overlayAlignment === 'left' ? -layoutWidth.value / 2 : layoutWidth.value / 2, 0],\n ),\n },\n {\n scale: showScreen.value,\n },\n ],\n }),\n [overlayAlignment],\n );\n\n return (\n <Animated.View\n onLayout={({ nativeEvent: { layout } }) => {\n layoutWidth.value = layout.width;\n layoutHeight.value = layout.height;\n }}\n style={[styles.container, { backgroundColor: white }, container, showScreenStyle]}\n >\n <Text style={[styles.title, { color: black }, titleStyle]}>{title}</Text>\n <FlatList\n contentContainerStyle={styles.flatListContentContainer}\n data={filteredReactions}\n keyExtractor={({ name }, index) => `${name}_${index}`}\n numColumns={numColumns}\n renderItem={renderItem}\n style={[styles.flatListContainer, flatListContainer, { maxHeight: maxHeight / numColumns }]}\n />\n </Animated.View>\n );\n};\n\nOverlayReactions.displayName = 'OverlayReactions{overlay{reactions}}';\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["ChannelsContext.tsx"],"names":["ChannelsContext","React","createContext","DEFAULT_BASE_CONTEXT_VALUE","ChannelsProvider","children","value","useChannelsContext","contextValue","Error","withChannelsContext","Component","WithChannelsContextComponent","props","channelsContext","displayName"],"mappings":";;;;;;;;;;;AAAA;;AAqBA;;AAEA;;AACA;;;;;;;;;AA4LO,IAAMA,eAAe,GAAGC,kBAAMC,aAAN,CAC7BC,mDAD6B,CAAxB;;;;AAIA,IAAMC,gBAAgB,GAAG,SAAnBA,gBAAmB;AAAA,MAG9BC,QAH8B,QAG9BA,QAH8B;AAAA,MAI9BC,KAJ8B,QAI9BA,KAJ8B;AAAA,SAQ9B,gCAAC,eAAD,CAAiB,QAAjB;AAA0B,IAAA,KAAK,EAAEA,KAAjC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KACGD,QADH,CAR8B;AAAA,CAAzB;;;;AAaA,IAAME,kBAAkB,GAAG,SAArBA,kBAAqB,GAE3B;AACL,MAAMC,YAAY,GAAG,uBACnBR,eADmB,CAArB;;AAIA,MAAIQ,YAAY,KAAKL,mDAAjB,IAA+C,CAAC,2CAApD,EAAyE;AACvE,UAAM,IAAIM,KAAJ,yOAAN;AAGD;;AAED,SAAOD,YAAP;AACD,CAdM;;;;AAoBA,IAAME,mBAAmB,GAAG,SAAtBA,mBAAsB,CAIjCC,SAJiC,EAKqC;AACtE,MAAMC,4BAA4B,GAAG,SAA/BA,4BAA+B,CACnCC,KADmC,EAEhC;AACH,QAAMC,eAAe,GAAGP,kBAAkB,EAA1C;AAEA,WAAO,gCAAC,SAAD,gCAAgBM,KAAhB,EAAiCC,eAAjC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,OAAP;AACD,GAND;;AAOAF,EAAAA,4BAA4B,CAACG,WAA7B,2BAAiE,oCAAeJ,SAAf,CAAjE;AACA,SAAOC,4BAAP;AACD,CAfM","sourcesContent":["import React, { PropsWithChildren, useContext } from 'react';\n\nimport type { FlatListProps } from 'react-native';\nimport type { FlatList } from 'react-native-gesture-handler';\n\nimport type { ChannelPreviewMutedStatusProps } from 'src/components/ChannelPreview/ChannelPreviewMutedStatus';\n\nimport type { Channel } from 'stream-chat';\n\nimport type { HeaderErrorProps } from '../../components/ChannelList/ChannelListHeaderErrorIndicator';\nimport type { QueryChannels } from '../../components/ChannelList/hooks/usePaginatedChannels';\nimport type { ChannelAvatarProps } from '../../components/ChannelPreview/ChannelAvatar';\nimport type { ChannelPreviewMessageProps } from '../../components/ChannelPreview/ChannelPreviewMessage';\nimport type { ChannelPreviewMessengerProps } from '../../components/ChannelPreview/ChannelPreviewMessenger';\nimport type { ChannelPreviewStatusProps } from '../../components/ChannelPreview/ChannelPreviewStatus';\nimport type { ChannelPreviewTitleProps } from '../../components/ChannelPreview/ChannelPreviewTitle';\nimport type { ChannelPreviewUnreadCountProps } from '../../components/ChannelPreview/ChannelPreviewUnreadCount';\nimport type { EmptyStateProps } from '../../components/Indicators/EmptyStateIndicator';\nimport type { LoadingErrorProps } from '../../components/Indicators/LoadingErrorIndicator';\nimport type { LoadingProps } from '../../components/Indicators/LoadingIndicator';\nimport type { DefaultStreamChatGenerics, UnknownType } from '../../types/types';\nimport { DEFAULT_BASE_CONTEXT_VALUE } from '../utils/defaultBaseContextValue';\n\nimport { getDisplayName } from '../utils/getDisplayName';\nimport { isTestEnvironment } from '../utils/isTestEnvironment';\n\nexport type ChannelsContextValue<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = {\n /**\n * Besides the existing default behavior of the ChannelListMessenger component, you can attach\n * additional props to the underlying React Native FlatList.\n *\n * You can find list of all the available FlatList props here - https://facebook.github.io/react-native/docs/flatlist#props\n *\n * **EXAMPLE:**\n *\n * ```\n * <ChannelListMessenger\n * channels={channels}\n * additionalFlatListProps={{ bounces: true }}\n * />\n * ```\n *\n * **Note:** Don't use `additionalFlatListProps` to access the FlatList ref, use `setFlatListRef`\n */\n additionalFlatListProps: Partial<FlatListProps<Channel<StreamChatGenerics>>>;\n /**\n * Channels can be either an array of channels or a promise which resolves to an array of channels\n */\n channels: Channel<StreamChatGenerics>[];\n /**\n * Custom indicator to use when channel list is empty\n *\n * Default: [EmptyStateIndicator](https://getstream.io/chat/docs/sdk/reactnative/core-components/channel/#emptystateindicator)\n * */\n EmptyStateIndicator: React.ComponentType<EmptyStateProps>;\n /**\n * Custom loading indicator to display at bottom of the list, while loading further pages\n *\n * Default: [ChannelListFooterLoadingIndicator](https://getstream.io/chat/docs/sdk/reactnative/contexts/channels-context/#footerloadingindicator)\n */\n FooterLoadingIndicator: React.ComponentType;\n /**\n * Incremental number change to force update the FlatList\n */\n forceUpdate: number;\n /**\n * Whether or not the FlatList has another page to render\n */\n hasNextPage: boolean;\n /**\n * Custom indicator to display error at top of list, if loading/pagination error occurs\n *\n * Default: [ChannelListHeaderErrorIndicator](https://getstream.io/chat/docs/sdk/reactnative/contexts/channels-context/#headererrorindicator)\n */\n HeaderErrorIndicator: React.ComponentType<HeaderErrorProps>;\n /**\n * Custom indicator to display network-down error at top of list, if there is connectivity issue\n *\n * Default: [ChannelListHeaderNetworkDownIndicator](https://getstream.io/chat/docs/sdk/reactnative/contexts/channels-context/#headernetworkdownindicator)\n */\n HeaderNetworkDownIndicator: React.ComponentType;\n /**\n * Initial channels query loading state, triggers the LoadingIndicator\n */\n loadingChannels: boolean;\n /**\n * Custom indicator to use when there is error in fetching channels\n *\n * Default: [LoadingErrorIndicator](https://getstream.io/chat/docs/sdk/reactnative/contexts/channels-context/#loadingerrorindicator)\n * */\n LoadingErrorIndicator: React.ComponentType<LoadingErrorProps>;\n /**\n * Custom loading indicator to use on Channel List\n *\n * */\n LoadingIndicator: React.ComponentType<Pick<LoadingProps, 'listType'>>;\n /**\n * Whether or not additional channels are being loaded, triggers the FooterLoadingIndicator\n */\n loadingNextPage: boolean;\n /**\n * The React Native FlatList threshold to fetch more data\n * @see See loadMoreThreshold [doc](https://facebook.github.io/react-native/docs/flatlist#onendreachedthreshold)\n * */\n loadMoreThreshold: number;\n /**\n * Loads the next page of `channels`, which is present as a required prop\n */\n loadNextPage: QueryChannels | undefined;\n /**\n * Max number to display within notification badge. Default: 255 and it cannot be higher than that for now due to backend limitations\n */\n maxUnreadCount: number;\n /**\n * Number of skeletons that should show when loading. Default: 6\n */\n numberOfSkeletons: number;\n /**\n * Custom UI component to display individual channel list items\n *\n * Default: [ChannelPreviewMessenger](https://getstream.io/chat/docs/sdk/reactnative/ui-components/channel-preview-messenger/)\n */\n Preview: React.ComponentType<ChannelPreviewMessengerProps<StreamChatGenerics>>;\n /**\n * Triggered when the channel list is refreshing, displays a loading spinner at the top of the list\n */\n refreshing: boolean;\n /**\n * Function to refresh the channel list that is similar to `reloadList`, but it doesn't wipe out existing channels\n * from UI before loading the new ones\n */\n refreshList: () => void | Promise<void>;\n /**\n * Removes all the existing channels from UI and loads fresh channels\n * */\n reloadList: () => Promise<void>;\n // /**\n // * Function to set the currently active channel, acts as a bridge between ChannelList and Channel components\n // *\n // * @param channel A channel object\n // */\n // setActiveChannel?: (channel: Channel<StreamChatGenerics>) => void;\n /**\n * Function to gain access to the inner FlatList ref\n *\n * **Example:**\n *\n * ```\n * <ChannelListMessenger\n * setFlatListRef={(ref) => {\n * // Use ref for your own good\n * }}\n * ```\n */\n setFlatListRef: (ref: FlatList<Channel<StreamChatGenerics>> | null) => void;\n /**\n * Custom UI component to display loading channel skeletons\n *\n * Default: [Skeleton](https://getstream.io/chat/docs/sdk/reactnative/contexts/channels-context/#skeleton)\n */\n Skeleton: React.ComponentType;\n /**\n * Error in channels query, if any\n */\n error?: Error;\n ListHeaderComponent?: React.ComponentType;\n /**\n * Function to set the currently active channel, acts as a bridge between ChannelList and Channel components\n *\n * @param channel A channel object\n */\n onSelect?: (channel: Channel<StreamChatGenerics>) => void;\n /**\n * Custom UI component to render preview avatar.\n *\n * **Default** [ChannelAvatar](https://github.com/GetStream/stream-chat-react-native/blob/main/package/src/components/ChannelPreview/ChannelAvatar.tsx)\n */\n PreviewAvatar?: React.ComponentType<ChannelAvatarProps<StreamChatGenerics>>;\n /**\n * Custom UI component to render preview of latest message on channel.\n *\n * **Default** [ChannelPreviewMessage](https://github.com/GetStream/stream-chat-react-native/blob/main/package/src/components/ChannelPreview/ChannelPreviewMessage.tsx)\n */\n PreviewMessage?: React.ComponentType<ChannelPreviewMessageProps<StreamChatGenerics>>;\n /**\n * Custom UI component to render muted status.\n *\n * **Default** [ChannelMutedStatus](https://github.com/GetStream/stream-chat-react-native/blob/main/package/src/components/ChannelPreview/ChannelPreviewMutedStatus.tsx)\n */\n PreviewMutedStatus?: React.ComponentType<ChannelPreviewMutedStatusProps<StreamChatGenerics>>;\n /**\n * Custom UI component to render preview avatar.\n *\n * **Default** [ChannelPreviewStatus](https://github.com/GetStream/stream-chat-react-native/blob/main/package/src/components/ChannelPreview/ChannelPreviewStatus.tsx)\n */\n PreviewStatus?: React.ComponentType<ChannelPreviewStatusProps<StreamChatGenerics>>;\n /**\n * Custom UI component to render preview avatar.\n *\n * **Default** [ChannelPreviewTitle](https://github.com/GetStream/stream-chat-react-native/blob/main/package/src/components/ChannelPreview/ChannelPreviewTitle.tsx)\n */\n PreviewTitle?: React.ComponentType<ChannelPreviewTitleProps<StreamChatGenerics>>;\n /**\n * Custom UI component to render preview avatar.\n *\n * **Default** [ChannelPreviewUnreadCount](https://github.com/GetStream/stream-chat-react-native/blob/main/package/src/components/ChannelPreview/ChannelPreviewUnreadCount.tsx)\n */\n PreviewUnreadCount?: React.ComponentType<ChannelPreviewUnreadCountProps<StreamChatGenerics>>;\n};\n\nexport const ChannelsContext = React.createContext(\n DEFAULT_BASE_CONTEXT_VALUE as ChannelsContextValue,\n);\n\nexport const ChannelsProvider = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>({\n children,\n value,\n}: PropsWithChildren<{\n value: ChannelsContextValue<StreamChatGenerics>;\n}>) => (\n <ChannelsContext.Provider value={value as unknown as ChannelsContextValue}>\n {children}\n </ChannelsContext.Provider>\n);\n\nexport const useChannelsContext = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>() => {\n const contextValue = useContext(\n ChannelsContext,\n ) as unknown as ChannelsContextValue<StreamChatGenerics>;\n\n if (contextValue === DEFAULT_BASE_CONTEXT_VALUE && !isTestEnvironment()) {\n throw new Error(\n `The useChannelsContext hook was called outside of the ChannelsContext provider. Make sure you have configured ChannelList component correctly - https://getstream.io/chat/docs/sdk/reactnative/basics/hello_stream_chat/#channel-list`,\n );\n }\n\n return contextValue;\n};\n/**\n * Typescript currently does not support partial inference so if ChatContext\n * typing is desired while using the HOC withChannelContext the Props for the\n * wrapped component must be provided as the first generic.\n */\nexport const withChannelsContext = <\n P extends UnknownType,\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n Component: React.ComponentType<P>,\n): React.FC<Omit<P, keyof ChannelsContextValue<StreamChatGenerics>>> => {\n const WithChannelsContextComponent = (\n props: Omit<P, keyof ChannelsContextValue<StreamChatGenerics>>,\n ) => {\n const channelsContext = useChannelsContext<StreamChatGenerics>();\n\n return <Component {...(props as P)} {...channelsContext} />;\n };\n WithChannelsContextComponent.displayName = `WithChannelsContext${getDisplayName(Component)}`;\n return WithChannelsContextComponent;\n};\n"]}
|
|
1
|
+
{"version":3,"sources":["ChannelsContext.tsx"],"names":["ChannelsContext","React","createContext","DEFAULT_BASE_CONTEXT_VALUE","ChannelsProvider","children","value","useChannelsContext","contextValue","Error","withChannelsContext","Component","WithChannelsContextComponent","props","channelsContext","displayName"],"mappings":";;;;;;;;;;;AAAA;;AAqBA;;AAEA;;AACA;;;;;;;;;AA4LO,IAAMA,eAAe,GAAGC,kBAAMC,aAAN,CAC7BC,mDAD6B,CAAxB;;;;AAIA,IAAMC,gBAAgB,GAAG,SAAnBA,gBAAmB;AAAA,MAG9BC,QAH8B,QAG9BA,QAH8B;AAAA,MAI9BC,KAJ8B,QAI9BA,KAJ8B;AAAA,SAQ9B,gCAAC,eAAD,CAAiB,QAAjB;AAA0B,IAAA,KAAK,EAAEA,KAAjC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KACGD,QADH,CAR8B;AAAA,CAAzB;;;;AAaA,IAAME,kBAAkB,GAAG,SAArBA,kBAAqB,GAE3B;AACL,MAAMC,YAAY,GAAG,uBACnBR,eADmB,CAArB;;AAIA,MAAIQ,YAAY,KAAKL,mDAAjB,IAA+C,CAAC,2CAApD,EAAyE;AACvE,UAAM,IAAIM,KAAJ,yOAAN;AAGD;;AAED,SAAOD,YAAP;AACD,CAdM;;;;AAoBA,IAAME,mBAAmB,GAAG,SAAtBA,mBAAsB,CAIjCC,SAJiC,EAKqC;AACtE,MAAMC,4BAA4B,GAAG,SAA/BA,4BAA+B,CACnCC,KADmC,EAEhC;AACH,QAAMC,eAAe,GAAGP,kBAAkB,EAA1C;AAEA,WAAO,gCAAC,SAAD,gCAAgBM,KAAhB,EAAiCC,eAAjC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,OAAP;AACD,GAND;;AAOAF,EAAAA,4BAA4B,CAACG,WAA7B,2BAAiE,oCAAeJ,SAAf,CAAjE;AACA,SAAOC,4BAAP;AACD,CAfM","sourcesContent":["import React, { PropsWithChildren, useContext } from 'react';\n\nimport type { FlatListProps } from 'react-native';\nimport type { FlatList } from 'react-native-gesture-handler';\n\nimport type { ChannelPreviewMutedStatusProps } from 'src/components/ChannelPreview/ChannelPreviewMutedStatus';\n\nimport type { Channel } from 'stream-chat';\n\nimport type { HeaderErrorProps } from '../../components/ChannelList/ChannelListHeaderErrorIndicator';\nimport type { QueryChannels } from '../../components/ChannelList/hooks/usePaginatedChannels';\nimport type { ChannelAvatarProps } from '../../components/ChannelPreview/ChannelAvatar';\nimport type { ChannelPreviewMessageProps } from '../../components/ChannelPreview/ChannelPreviewMessage';\nimport type { ChannelPreviewMessengerProps } from '../../components/ChannelPreview/ChannelPreviewMessenger';\nimport type { ChannelPreviewStatusProps } from '../../components/ChannelPreview/ChannelPreviewStatus';\nimport type { ChannelPreviewTitleProps } from '../../components/ChannelPreview/ChannelPreviewTitle';\nimport type { ChannelPreviewUnreadCountProps } from '../../components/ChannelPreview/ChannelPreviewUnreadCount';\nimport type { EmptyStateProps } from '../../components/Indicators/EmptyStateIndicator';\nimport type { LoadingErrorProps } from '../../components/Indicators/LoadingErrorIndicator';\nimport type { LoadingProps } from '../../components/Indicators/LoadingIndicator';\nimport type { DefaultStreamChatGenerics, UnknownType } from '../../types/types';\nimport { DEFAULT_BASE_CONTEXT_VALUE } from '../utils/defaultBaseContextValue';\n\nimport { getDisplayName } from '../utils/getDisplayName';\nimport { isTestEnvironment } from '../utils/isTestEnvironment';\n\nexport type ChannelsContextValue<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = {\n /**\n * Besides the existing default behavior of the ChannelListMessenger component, you can attach\n * additional props to the underlying React Native FlatList.\n *\n * You can find list of all the available FlatList props here - https://facebook.github.io/react-native/docs/flatlist#props\n *\n * **EXAMPLE:**\n *\n * ```\n * <ChannelListMessenger\n * channels={channels}\n * additionalFlatListProps={{ bounces: true }}\n * />\n * ```\n *\n * **Note:** Don't use `additionalFlatListProps` to access the FlatList ref, use `setFlatListRef`\n */\n additionalFlatListProps: Partial<FlatListProps<Channel<StreamChatGenerics>>>;\n /**\n * Channels can be either an array of channels or a promise which resolves to an array of channels\n */\n channels: Channel<StreamChatGenerics>[] | null;\n /**\n * Custom indicator to use when channel list is empty\n *\n * Default: [EmptyStateIndicator](https://getstream.io/chat/docs/sdk/reactnative/core-components/channel/#emptystateindicator)\n * */\n EmptyStateIndicator: React.ComponentType<EmptyStateProps>;\n /**\n * Custom loading indicator to display at bottom of the list, while loading further pages\n *\n * Default: [ChannelListFooterLoadingIndicator](https://getstream.io/chat/docs/sdk/reactnative/contexts/channels-context/#footerloadingindicator)\n */\n FooterLoadingIndicator: React.ComponentType;\n /**\n * Incremental number change to force update the FlatList\n */\n forceUpdate: number;\n /**\n * Whether or not the FlatList has another page to render\n */\n hasNextPage: boolean;\n /**\n * Custom indicator to display error at top of list, if loading/pagination error occurs\n *\n * Default: [ChannelListHeaderErrorIndicator](https://getstream.io/chat/docs/sdk/reactnative/contexts/channels-context/#headererrorindicator)\n */\n HeaderErrorIndicator: React.ComponentType<HeaderErrorProps>;\n /**\n * Custom indicator to display network-down error at top of list, if there is connectivity issue\n *\n * Default: [ChannelListHeaderNetworkDownIndicator](https://getstream.io/chat/docs/sdk/reactnative/contexts/channels-context/#headernetworkdownindicator)\n */\n HeaderNetworkDownIndicator: React.ComponentType;\n /**\n * Initial channels query loading state, triggers the LoadingIndicator\n */\n loadingChannels: boolean;\n /**\n * Custom indicator to use when there is error in fetching channels\n *\n * Default: [LoadingErrorIndicator](https://getstream.io/chat/docs/sdk/reactnative/contexts/channels-context/#loadingerrorindicator)\n * */\n LoadingErrorIndicator: React.ComponentType<LoadingErrorProps>;\n /**\n * Custom loading indicator to use on Channel List\n *\n * */\n LoadingIndicator: React.ComponentType<Pick<LoadingProps, 'listType'>>;\n /**\n * Whether or not additional channels are being loaded, triggers the FooterLoadingIndicator\n */\n loadingNextPage: boolean;\n /**\n * The React Native FlatList threshold to fetch more data\n * @see See loadMoreThreshold [doc](https://facebook.github.io/react-native/docs/flatlist#onendreachedthreshold)\n * */\n loadMoreThreshold: number;\n /**\n * Loads the next page of `channels`, which is present as a required prop\n */\n loadNextPage: QueryChannels | undefined;\n /**\n * Max number to display within notification badge. Default: 255 and it cannot be higher than that for now due to backend limitations\n */\n maxUnreadCount: number;\n /**\n * Number of skeletons that should show when loading. Default: 6\n */\n numberOfSkeletons: number;\n /**\n * Custom UI component to display individual channel list items\n *\n * Default: [ChannelPreviewMessenger](https://getstream.io/chat/docs/sdk/reactnative/ui-components/channel-preview-messenger/)\n */\n Preview: React.ComponentType<ChannelPreviewMessengerProps<StreamChatGenerics>>;\n /**\n * Triggered when the channel list is refreshing, displays a loading spinner at the top of the list\n */\n refreshing: boolean;\n /**\n * Function to refresh the channel list that is similar to `reloadList`, but it doesn't wipe out existing channels\n * from UI before loading the new ones\n */\n refreshList: () => void | Promise<void>;\n /**\n * Removes all the existing channels from UI and loads fresh channels\n * */\n reloadList: () => Promise<void>;\n // /**\n // * Function to set the currently active channel, acts as a bridge between ChannelList and Channel components\n // *\n // * @param channel A channel object\n // */\n // setActiveChannel?: (channel: Channel<StreamChatGenerics>) => void;\n /**\n * Function to gain access to the inner FlatList ref\n *\n * **Example:**\n *\n * ```\n * <ChannelListMessenger\n * setFlatListRef={(ref) => {\n * // Use ref for your own good\n * }}\n * ```\n */\n setFlatListRef: (ref: FlatList<Channel<StreamChatGenerics>> | null) => void;\n /**\n * Custom UI component to display loading channel skeletons\n *\n * Default: [Skeleton](https://getstream.io/chat/docs/sdk/reactnative/contexts/channels-context/#skeleton)\n */\n Skeleton: React.ComponentType;\n /**\n * Error in channels query, if any\n */\n error?: Error;\n ListHeaderComponent?: React.ComponentType;\n /**\n * Function to set the currently active channel, acts as a bridge between ChannelList and Channel components\n *\n * @param channel A channel object\n */\n onSelect?: (channel: Channel<StreamChatGenerics>) => void;\n /**\n * Custom UI component to render preview avatar.\n *\n * **Default** [ChannelAvatar](https://github.com/GetStream/stream-chat-react-native/blob/main/package/src/components/ChannelPreview/ChannelAvatar.tsx)\n */\n PreviewAvatar?: React.ComponentType<ChannelAvatarProps<StreamChatGenerics>>;\n /**\n * Custom UI component to render preview of latest message on channel.\n *\n * **Default** [ChannelPreviewMessage](https://github.com/GetStream/stream-chat-react-native/blob/main/package/src/components/ChannelPreview/ChannelPreviewMessage.tsx)\n */\n PreviewMessage?: React.ComponentType<ChannelPreviewMessageProps<StreamChatGenerics>>;\n /**\n * Custom UI component to render muted status.\n *\n * **Default** [ChannelMutedStatus](https://github.com/GetStream/stream-chat-react-native/blob/main/package/src/components/ChannelPreview/ChannelPreviewMutedStatus.tsx)\n */\n PreviewMutedStatus?: React.ComponentType<ChannelPreviewMutedStatusProps<StreamChatGenerics>>;\n /**\n * Custom UI component to render preview avatar.\n *\n * **Default** [ChannelPreviewStatus](https://github.com/GetStream/stream-chat-react-native/blob/main/package/src/components/ChannelPreview/ChannelPreviewStatus.tsx)\n */\n PreviewStatus?: React.ComponentType<ChannelPreviewStatusProps<StreamChatGenerics>>;\n /**\n * Custom UI component to render preview avatar.\n *\n * **Default** [ChannelPreviewTitle](https://github.com/GetStream/stream-chat-react-native/blob/main/package/src/components/ChannelPreview/ChannelPreviewTitle.tsx)\n */\n PreviewTitle?: React.ComponentType<ChannelPreviewTitleProps<StreamChatGenerics>>;\n /**\n * Custom UI component to render preview avatar.\n *\n * **Default** [ChannelPreviewUnreadCount](https://github.com/GetStream/stream-chat-react-native/blob/main/package/src/components/ChannelPreview/ChannelPreviewUnreadCount.tsx)\n */\n PreviewUnreadCount?: React.ComponentType<ChannelPreviewUnreadCountProps<StreamChatGenerics>>;\n};\n\nexport const ChannelsContext = React.createContext(\n DEFAULT_BASE_CONTEXT_VALUE as ChannelsContextValue,\n);\n\nexport const ChannelsProvider = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>({\n children,\n value,\n}: PropsWithChildren<{\n value: ChannelsContextValue<StreamChatGenerics>;\n}>) => (\n <ChannelsContext.Provider value={value as unknown as ChannelsContextValue}>\n {children}\n </ChannelsContext.Provider>\n);\n\nexport const useChannelsContext = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>() => {\n const contextValue = useContext(\n ChannelsContext,\n ) as unknown as ChannelsContextValue<StreamChatGenerics>;\n\n if (contextValue === DEFAULT_BASE_CONTEXT_VALUE && !isTestEnvironment()) {\n throw new Error(\n `The useChannelsContext hook was called outside of the ChannelsContext provider. Make sure you have configured ChannelList component correctly - https://getstream.io/chat/docs/sdk/reactnative/basics/hello_stream_chat/#channel-list`,\n );\n }\n\n return contextValue;\n};\n/**\n * Typescript currently does not support partial inference so if ChatContext\n * typing is desired while using the HOC withChannelContext the Props for the\n * wrapped component must be provided as the first generic.\n */\nexport const withChannelsContext = <\n P extends UnknownType,\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n Component: React.ComponentType<P>,\n): React.FC<Omit<P, keyof ChannelsContextValue<StreamChatGenerics>>> => {\n const WithChannelsContextComponent = (\n props: Omit<P, keyof ChannelsContextValue<StreamChatGenerics>>,\n ) => {\n const channelsContext = useChannelsContext<StreamChatGenerics>();\n\n return <Component {...(props as P)} {...channelsContext} />;\n };\n WithChannelsContextComponent.displayName = `WithChannelsContext${getDisplayName(Component)}`;\n return WithChannelsContextComponent;\n};\n"]}
|
|
@@ -36,7 +36,7 @@ var ChatProvider = function ChatProvider(_ref) {
|
|
|
36
36
|
__self: _this,
|
|
37
37
|
__source: {
|
|
38
38
|
fileName: _jsxFileName,
|
|
39
|
-
lineNumber:
|
|
39
|
+
lineNumber: 78,
|
|
40
40
|
columnNumber: 3
|
|
41
41
|
}
|
|
42
42
|
}, children);
|
|
@@ -63,7 +63,7 @@ var withChatContext = function withChatContext(Component) {
|
|
|
63
63
|
__self: _this,
|
|
64
64
|
__source: {
|
|
65
65
|
fileName: _jsxFileName,
|
|
66
|
-
lineNumber:
|
|
66
|
+
lineNumber: 111,
|
|
67
67
|
columnNumber: 12
|
|
68
68
|
}
|
|
69
69
|
}));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["ChatContext.tsx"],"names":["ChatContext","React","createContext","DEFAULT_BASE_CONTEXT_VALUE","ChatProvider","children","value","useChatContext","contextValue","Error","withChatContext","Component","WithChatContextComponent","props","chatContext","displayName"],"mappings":";;;;;;;;;;;AAAA;;
|
|
1
|
+
{"version":3,"sources":["ChatContext.tsx"],"names":["ChatContext","React","createContext","DEFAULT_BASE_CONTEXT_VALUE","ChatProvider","children","value","useChatContext","contextValue","Error","withChatContext","Component","WithChatContextComponent","props","chatContext","displayName"],"mappings":";;;;;;;;;;;AAAA;;AAMA;;AAEA;;AACA;;;;;;;;;AA0DO,IAAMA,WAAW,GAAGC,kBAAMC,aAAN,CAAoBC,mDAApB,CAApB;;;;AAEA,IAAMC,YAAY,GAAG,SAAfA,YAAe;AAAA,MAG1BC,QAH0B,QAG1BA,QAH0B;AAAA,MAI1BC,KAJ0B,QAI1BA,KAJ0B;AAAA,SAQ1B,gCAAC,WAAD,CAAa,QAAb;AAAsB,IAAA,KAAK,EAAEA,KAA7B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KACGD,QADH,CAR0B;AAAA,CAArB;;;;AAaA,IAAME,cAAc,GAAG,SAAjBA,cAAiB,GAEvB;AACL,MAAMC,YAAY,GAAG,uBAAWR,WAAX,CAArB;;AAEA,MAAIQ,YAAY,KAAKL,mDAAjB,IAA+C,CAAC,2CAApD,EAAyE;AACvE,UAAM,IAAIM,KAAJ,+MAAN;AAGD;;AAED,SAAOD,YAAP;AACD,CAZM;;;;AAmBA,IAAME,eAAe,GAAG,SAAlBA,eAAkB,CAI7BC,SAJ6B,EAKqC;AAClE,MAAMC,wBAAwB,GAAG,SAA3BA,wBAA2B,CAACC,KAAD,EAAgE;AAC/F,QAAMC,WAAW,GAAGP,cAAc,EAAlC;AAEA,WAAO,gCAAC,SAAD,gCAAgBM,KAAhB,EAAiCC,WAAjC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,OAAP;AACD,GAJD;;AAKAF,EAAAA,wBAAwB,CAACG,WAAzB,uBAAyD,oCAAeJ,SAAf,CAAzD;AACA,SAAOC,wBAAP;AACD,CAbM","sourcesContent":["import React, { PropsWithChildren, useContext } from 'react';\nimport type { ImageProps } from 'react-native';\n\nimport type { AppSettingsAPIResponse, Channel, EventHandler, Mute, StreamChat } from 'stream-chat';\n\nimport type { DefaultStreamChatGenerics, UnknownType } from '../../types/types';\nimport { DEFAULT_BASE_CONTEXT_VALUE } from '../utils/defaultBaseContextValue';\n\nimport { getDisplayName } from '../utils/getDisplayName';\nimport { isTestEnvironment } from '../utils/isTestEnvironment';\n\nexport type ChatContextValue<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = {\n /**\n * Object of application settings returned from Stream.\n * */\n appSettings: AppSettingsAPIResponse<StreamChatGenerics> | null;\n /**\n * The StreamChat client object\n *\n * ```\n * import { StreamChat } from 'stream-chat';\n * import { Chat } from 'stream-chat-react-native';\n *\n * const client = StreamChat.getInstance('api_key);\n * await client.connectUser('user_id', 'userToken');\n *\n * <Chat client={client}>\n * </Chat>\n * ```\n *\n * @overrideType StreamChat\n * */\n client: StreamChat<StreamChatGenerics>;\n connectionRecovering: boolean;\n enableOfflineSupport: boolean;\n ImageComponent: React.ComponentType<ImageProps>;\n isOnline: boolean;\n mutedUsers: Mute<StreamChatGenerics>[];\n /**\n * @param newChannel Channel to set as active.\n *\n * @overrideType Function\n */\n setActiveChannel: (newChannel?: Channel<StreamChatGenerics>) => void;\n subscribeConnectionRecoveredCallback: (callback: EventHandler<StreamChatGenerics>) => () => void;\n /**\n * Instance of channel object from stream-chat package.\n *\n * Please check the docs around how to create or query channel - https://getstream.io/chat/docs/javascript/creating_channels/?language=javascript\n *\n * ```\n * import { StreamChat, Channel } from 'stream-chat';\n * import { Chat, Channel} from 'stream-chat-react-native';\n *\n * const client = StreamChat.getInstance('api_key');\n * await client.connectUser('user_id', 'user_token');\n * const channel = client.channel('messaging', 'channel_id');\n * await channel.watch();\n * ```\n *\n * @overrideType Channel\n */\n channel?: Channel<StreamChatGenerics>;\n};\n\nexport const ChatContext = React.createContext(DEFAULT_BASE_CONTEXT_VALUE as ChatContextValue);\n\nexport const ChatProvider = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>({\n children,\n value,\n}: PropsWithChildren<{\n value?: ChatContextValue<StreamChatGenerics>;\n}>) => (\n <ChatContext.Provider value={value as unknown as ChatContextValue}>\n {children}\n </ChatContext.Provider>\n);\n\nexport const useChatContext = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>() => {\n const contextValue = useContext(ChatContext) as unknown as ChatContextValue<StreamChatGenerics>;\n\n if (contextValue === DEFAULT_BASE_CONTEXT_VALUE && !isTestEnvironment()) {\n throw new Error(\n `The useChatContext hook was called outside the ChatContext Provider. Make sure you have configured Chat component correctly - https://getstream.io/chat/docs/sdk/reactnative/basics/hello_stream_chat/#chat`,\n );\n }\n\n return contextValue;\n};\n\n/**\n * Typescript currently does not support partial inference so if ChatContext\n * typing is desired while using the HOC withChatContext the Props for the\n * wrapped component must be provided as the first generic.\n */\nexport const withChatContext = <\n P extends UnknownType,\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n Component: React.ComponentType<P>,\n): React.FC<Omit<P, keyof ChatContextValue<StreamChatGenerics>>> => {\n const WithChatContextComponent = (props: Omit<P, keyof ChatContextValue<StreamChatGenerics>>) => {\n const chatContext = useChatContext<StreamChatGenerics>();\n\n return <Component {...(props as P)} {...chatContext} />;\n };\n WithChatContextComponent.displayName = `WithChatContext${getDisplayName(Component)}`;\n return WithChatContextComponent;\n};\n"]}
|
|
@@ -39,7 +39,7 @@ var MessageOverlayProvider = function MessageOverlayProvider(_ref) {
|
|
|
39
39
|
__self: _this,
|
|
40
40
|
__source: {
|
|
41
41
|
fileName: _jsxFileName,
|
|
42
|
-
lineNumber:
|
|
42
|
+
lineNumber: 97,
|
|
43
43
|
columnNumber: 5
|
|
44
44
|
}
|
|
45
45
|
}, children);
|
|
@@ -66,7 +66,7 @@ var withMessageOverlayContext = function withMessageOverlayContext(Component) {
|
|
|
66
66
|
__self: _this,
|
|
67
67
|
__source: {
|
|
68
68
|
fileName: _jsxFileName,
|
|
69
|
-
lineNumber:
|
|
69
|
+
lineNumber: 137,
|
|
70
70
|
columnNumber: 12
|
|
71
71
|
}
|
|
72
72
|
}));
|