stream-chat-react-native-core 5.24.0-beta.5 → 5.24.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/commonjs/components/Attachment/Attachment.js +22 -14
- package/lib/commonjs/components/Attachment/Attachment.js.map +1 -1
- package/lib/commonjs/components/Attachment/Card.js +11 -4
- package/lib/commonjs/components/Attachment/Card.js.map +1 -1
- package/lib/commonjs/components/Attachment/Gallery.js +24 -16
- package/lib/commonjs/components/Attachment/Gallery.js.map +1 -1
- package/lib/commonjs/components/Message/Message.js +14 -7
- package/lib/commonjs/components/Message/Message.js.map +1 -1
- package/lib/commonjs/components/Message/MessageSimple/MessageContent.js +22 -16
- package/lib/commonjs/components/Message/MessageSimple/MessageContent.js.map +1 -1
- package/lib/commonjs/components/Message/MessageSimple/MessageSimple.js +14 -8
- package/lib/commonjs/components/Message/MessageSimple/MessageSimple.js.map +1 -1
- package/lib/commonjs/components/Message/MessageSimple/MessageTextContainer.js +10 -4
- package/lib/commonjs/components/Message/MessageSimple/MessageTextContainer.js.map +1 -1
- package/lib/commonjs/components/Message/hooks/useCreateMessageContext.js +6 -1
- package/lib/commonjs/components/Message/hooks/useCreateMessageContext.js.map +1 -1
- package/lib/commonjs/components/MessageOverlay/MessageOverlay.js +9 -3
- package/lib/commonjs/components/MessageOverlay/MessageOverlay.js.map +1 -1
- package/lib/commonjs/contexts/messageContext/MessageContext.js +2 -2
- package/lib/commonjs/contexts/messageContext/MessageContext.js.map +1 -1
- package/lib/commonjs/i18n/en.json +1 -1
- package/lib/commonjs/i18n/fr.json +54 -54
- package/lib/commonjs/i18n/hi.json +54 -54
- package/lib/commonjs/i18n/it.json +54 -54
- package/lib/commonjs/i18n/nl.json +54 -54
- package/lib/commonjs/i18n/ru.json +54 -54
- package/lib/commonjs/i18n/tr.json +54 -54
- package/lib/commonjs/version.json +1 -1
- package/lib/module/components/Attachment/Attachment.js +22 -14
- package/lib/module/components/Attachment/Attachment.js.map +1 -1
- package/lib/module/components/Attachment/Card.js +11 -4
- package/lib/module/components/Attachment/Card.js.map +1 -1
- package/lib/module/components/Attachment/Gallery.js +24 -16
- package/lib/module/components/Attachment/Gallery.js.map +1 -1
- package/lib/module/components/Message/Message.js +14 -7
- package/lib/module/components/Message/Message.js.map +1 -1
- package/lib/module/components/Message/MessageSimple/MessageContent.js +22 -16
- package/lib/module/components/Message/MessageSimple/MessageContent.js.map +1 -1
- package/lib/module/components/Message/MessageSimple/MessageSimple.js +14 -8
- package/lib/module/components/Message/MessageSimple/MessageSimple.js.map +1 -1
- package/lib/module/components/Message/MessageSimple/MessageTextContainer.js +10 -4
- package/lib/module/components/Message/MessageSimple/MessageTextContainer.js.map +1 -1
- package/lib/module/components/Message/hooks/useCreateMessageContext.js +6 -1
- package/lib/module/components/Message/hooks/useCreateMessageContext.js.map +1 -1
- package/lib/module/components/MessageOverlay/MessageOverlay.js +9 -3
- package/lib/module/components/MessageOverlay/MessageOverlay.js.map +1 -1
- package/lib/module/contexts/messageContext/MessageContext.js +2 -2
- package/lib/module/contexts/messageContext/MessageContext.js.map +1 -1
- package/lib/module/i18n/en.json +1 -1
- package/lib/module/i18n/fr.json +54 -54
- package/lib/module/i18n/hi.json +54 -54
- package/lib/module/i18n/it.json +54 -54
- package/lib/module/i18n/nl.json +54 -54
- package/lib/module/i18n/ru.json +54 -54
- package/lib/module/i18n/tr.json +54 -54
- package/lib/module/version.json +1 -1
- package/lib/typescript/components/Attachment/Attachment.d.ts +2 -2
- package/lib/typescript/components/Attachment/Card.d.ts +2 -2
- package/lib/typescript/components/Attachment/Gallery.d.ts +1 -1
- package/lib/typescript/components/Message/MessageSimple/MessageContent.d.ts +1 -1
- package/lib/typescript/components/Message/MessageSimple/MessageSimple.d.ts +1 -1
- package/lib/typescript/components/Message/MessageSimple/MessageTextContainer.d.ts +1 -1
- package/lib/typescript/components/Message/hooks/useCreateMessageContext.d.ts +1 -1
- package/lib/typescript/contexts/messageContext/MessageContext.d.ts +8 -2
- package/lib/typescript/i18n/en.json +1 -1
- package/lib/typescript/i18n/fr.json +54 -54
- package/lib/typescript/i18n/hi.json +54 -54
- package/lib/typescript/i18n/it.json +54 -54
- package/lib/typescript/i18n/nl.json +54 -54
- package/lib/typescript/i18n/ru.json +54 -54
- package/lib/typescript/i18n/tr.json +54 -54
- package/package.json +1 -1
- package/src/components/Attachment/Attachment.tsx +16 -2
- package/src/components/Attachment/Card.tsx +22 -4
- package/src/components/Attachment/Gallery.tsx +11 -0
- package/src/components/Message/Message.tsx +9 -0
- package/src/components/Message/MessageSimple/MessageContent.tsx +9 -0
- package/src/components/Message/MessageSimple/MessageSimple.tsx +9 -0
- package/src/components/Message/MessageSimple/MessageTextContainer.tsx +12 -2
- package/src/components/Message/hooks/useCreateMessageContext.ts +4 -0
- package/src/components/MessageOverlay/MessageOverlay.tsx +8 -0
- package/src/contexts/messageContext/MessageContext.tsx +7 -1
- package/src/i18n/en.json +1 -1
- package/src/i18n/fr.json +54 -54
- package/src/i18n/hi.json +54 -54
- package/src/i18n/it.json +54 -54
- package/src/i18n/nl.json +54 -54
- package/src/i18n/ru.json +54 -54
- package/src/i18n/tr.json +54 -54
- package/src/version.json +1 -1
|
@@ -534,14 +534,20 @@ var MessageOverlayWithContext = function MessageOverlayWithContext(props) {
|
|
|
534
534
|
var areEqual = function areEqual(prevProps, nextProps) {
|
|
535
535
|
var prevAlignment = prevProps.alignment,
|
|
536
536
|
prevMessage = prevProps.message,
|
|
537
|
-
prevMessageReactionTitle = prevProps.messageReactionTitle
|
|
537
|
+
prevMessageReactionTitle = prevProps.messageReactionTitle,
|
|
538
|
+
prevMessagesContext = prevProps.messagesContext;
|
|
538
539
|
var nextAlignment = nextProps.alignment,
|
|
539
540
|
nextMessage = nextProps.message,
|
|
540
|
-
nextMessageReactionTitle = nextProps.messageReactionTitle
|
|
541
|
+
nextMessageReactionTitle = nextProps.messageReactionTitle,
|
|
542
|
+
nextMessagesContext = nextProps.messagesContext;
|
|
541
543
|
var alignmentEqual = prevAlignment === nextAlignment;
|
|
542
544
|
if (!alignmentEqual) return false;
|
|
543
545
|
var messageReactionTitleEqual = prevMessageReactionTitle === nextMessageReactionTitle;
|
|
544
546
|
if (!messageReactionTitleEqual) return false;
|
|
547
|
+
var prevMyMessageTheme = JSON.stringify(prevMessagesContext == null ? void 0 : prevMessagesContext.myMessageTheme);
|
|
548
|
+
var nextMyMessageTheme = JSON.stringify(nextMessagesContext == null ? void 0 : nextMessagesContext.myMessageTheme);
|
|
549
|
+
var myMessageThemeEqual = prevMyMessageTheme === nextMyMessageTheme;
|
|
550
|
+
if (!myMessageThemeEqual) return false;
|
|
545
551
|
var latestReactionsEqual = Array.isArray(prevMessage == null ? void 0 : prevMessage.latest_reactions) && Array.isArray(nextMessage == null ? void 0 : nextMessage.latest_reactions) ? (prevMessage == null ? void 0 : prevMessage.latest_reactions.length) === (nextMessage == null ? void 0 : nextMessage.latest_reactions.length) && (prevMessage == null ? void 0 : prevMessage.latest_reactions.every(function (_ref5, index) {
|
|
546
552
|
var _nextMessage$latest_r;
|
|
547
553
|
var type = _ref5.type;
|
|
@@ -576,7 +582,7 @@ var MessageOverlay = function MessageOverlay(props) {
|
|
|
576
582
|
__self: _this,
|
|
577
583
|
__source: {
|
|
578
584
|
fileName: _jsxFileName,
|
|
579
|
-
lineNumber:
|
|
585
|
+
lineNumber: 626,
|
|
580
586
|
columnNumber: 5
|
|
581
587
|
}
|
|
582
588
|
}));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_reactNativeGestureHandler","_reactNativeReanimated","_MessageActionList","_OverlayReactionList","_OverlayReactionsAvatar","_ChatContext","_MessageContext","_MessageOverlayContext","_MessagesContext","_OverlayContext","_ThemeContext","_useViewport2","_MessageTextContainer","_OverlayReactions","_this","_jsxFileName","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","_typeof","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","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","DefaultMessageTextNumberOfLines","MessageOverlayWithContext","props","_message$user","alignment","ownCapabilities","clientId","files","groupStyles","handleReaction","images","chatContext","message","messageActions","_props$MessageActionL","MessageActionList","DefaultMessageActionList","MessageActionListItem","messageContext","messageReactionTitle","_props$messageTextNum","messageTextNumberOfLines","messagesContext","onlyEmojis","otherAttachments","overlay","overlayOpacity","_props$OverlayReactio","OverlayReactionList","OverlayReactionListDefault","_props$OverlayReactio2","OverlayReactions","DefaultOverlayReactions","_props$OverlayReactio3","OverlayReactionsAvatar","OverlayReactionsAvatarDefault","setOverlay","threadList","videos","isMyMessage","messageReactions","error","isThreadMessage","messageActionProps","_useTheme","useTheme","theme","_useViewport","useViewport","vh","vw","screenHeight","halfScreenHeight","myMessageTheme","wrapMessageInTheme","user","id","_useState","useState","_useState2","_slicedToArray2","reactionListHeight","setReactionListHeight","myMessageThemeString","useMemo","JSON","stringify","modifiedTheme","mergeThemes","style","_ref","_ref$colors","colors","blue_alice","grey_gainsboro","grey_whisper","transparent","white_smoke","_ref$messageSimple$co","messageSimple","content","_ref$messageSimple$co2","container","borderRadiusL","borderRadiusS","_ref$overlay","containerStyle","messageHeight","useSharedValue","messageLayout","x","y","messageWidth","offsetY","translateY","scale","showScreen","fadeScreen","value","withSpring","damping","mass","restDisplacementThreshold","restSpeedThreshold","stiffness","velocity","useEffect","Keyboard","dismiss","onPan","useAnimatedGestureHandler","onActive","evt","translationY","interpolate","Extrapolate","CLAMP","onFinish","finalYPosition","velocityY","cancelAnimation","withTiming","duration","easing","Easing","out","ease","runOnJS","withDecay","onStart","panStyle","useAnimatedStyle","transform","showScreenStyle","translateX","groupStyle","toLowerCase","hasThreadReplies","reply_count","_ref2","Attachment","FileAttachmentGroup","Gallery","MessageAvatar","Reply","renderContent","_message$own_reaction","_messagesContext$mess","createElement","TapGestureHandler","maxDist","onHandlerStateChange","_ref3","state","nativeEvent","State","END","__self","__source","fileName","lineNumber","columnNumber","View","sendReaction","ownReactionTypes","own_reactions","map","reaction","type","onLayout","_ref4","_ref4$nativeEvent$lay","layout","layoutHeight","height","layoutWidth","width","showAvatar","pointerEvents","backgroundColor","quoted_message","length","borderBottomLeftRadius","borderBottomRightRadius","borderColor","messageContentOrder","messageContentType","messageContentOrderIndex","quotedMessage","messageContainer","maxWidth","attachment","attachmentIndex","messageId","actions","MessageTextContainer","messageOverlay","_extends2","latest_reactions","reactions","_reaction$user","_reaction$user2","_reaction$user3","_reaction$user4","image","name","user_id","supportedReactions","title","isScrollEnabled","ChatProvider","MessagesProvider","MessageProvider","ThemeProvider","mergedStyle","absoluteFillObject","PanGestureHandler","enabled","maxPointers","minDist","onGestureEvent","SafeAreaView","ScrollView","alwaysBounceVertical","contentContainerStyle","showsVerticalScrollIndicator","areEqual","prevProps","nextProps","prevAlignment","prevMessage","prevMessageReactionTitle","nextAlignment","nextMessage","nextMessageReactionTitle","alignmentEqual","messageReactionTitleEqual","latestReactionsEqual","Array","isArray","every","_ref5","index","_nextMessage$latest_r","MemoizedMessageOverlay","React","memo","MessageOverlay","_useMessageOverlayCon","useMessageOverlayContext","data","_useOverlayContext","useOverlayContext","componentProps","exports"],"sources":["MessageOverlay.tsx"],"sourcesContent":["import React, { useEffect, useMemo, useState } from 'react';\nimport { Keyboard, Platform, SafeAreaView, StyleSheet, View, ViewStyle } from 'react-native';\nimport {\n PanGestureHandler,\n PanGestureHandlerGestureEvent,\n ScrollView,\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 { useViewport } from '../../hooks/useViewport';\nimport type { DefaultStreamChatGenerics } from '../../types/types';\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 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 const { vh, vw } = useViewport();\n\n const screenHeight = vh(100);\n const halfScreenHeight = vh(50);\n\n const myMessageTheme = messagesContext?.myMessageTheme;\n const wrapMessageInTheme = clientId === message?.user?.id && !!myMessageTheme;\n\n const [reactionListHeight, setReactionListHeight] = useState(0);\n\n const myMessageThemeString = useMemo(() => JSON.stringify(myMessageTheme), [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 const renderContent = (messageTextNumberOfLines?: number) => (\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={message?.own_reactions?.map((reaction) => reaction.type) || []}\n setReactionListHeight={setReactionListHeight}\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' || groupStyle === 'left_single') &&\n (!hasThreadReplies || threadList)\n ? borderRadiusS\n : borderRadiusL,\n borderBottomRightRadius:\n (groupStyle === 'right_bottom' || 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 && 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: 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 );\n\n // Scroll will only be enabled for message overlay when we show actions.\n // When we show the reactions, we don't want to enable scroll since OverlayReactions component\n // in itself is scrollable (FlatList). FlatList inside a ScrollView is not a good idea and results in error from RN.\n const isScrollEnabled = !!messageActions && overlay === 'message';\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 {isScrollEnabled ? (\n <ScrollView\n alwaysBounceVertical={false}\n contentContainerStyle={[\n styles.center,\n {\n paddingTop: reactionListHeight,\n },\n ]}\n showsVerticalScrollIndicator={false}\n style={[styles.flex, styles.scrollView]}\n >\n {renderContent()}\n </ScrollView>\n ) : (\n renderContent(messageTextNumberOfLines)\n )}\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"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_reactNativeGestureHandler","_reactNativeReanimated","_MessageActionList","_OverlayReactionList","_OverlayReactionsAvatar","_ChatContext","_MessageContext","_MessageOverlayContext","_MessagesContext","_OverlayContext","_ThemeContext","_useViewport2","_MessageTextContainer","_OverlayReactions","_this","_jsxFileName","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","_typeof","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","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","DefaultMessageTextNumberOfLines","MessageOverlayWithContext","props","_message$user","alignment","ownCapabilities","clientId","files","groupStyles","handleReaction","images","chatContext","message","messageActions","_props$MessageActionL","MessageActionList","DefaultMessageActionList","MessageActionListItem","messageContext","messageReactionTitle","_props$messageTextNum","messageTextNumberOfLines","messagesContext","onlyEmojis","otherAttachments","overlay","overlayOpacity","_props$OverlayReactio","OverlayReactionList","OverlayReactionListDefault","_props$OverlayReactio2","OverlayReactions","DefaultOverlayReactions","_props$OverlayReactio3","OverlayReactionsAvatar","OverlayReactionsAvatarDefault","setOverlay","threadList","videos","isMyMessage","messageReactions","error","isThreadMessage","messageActionProps","_useTheme","useTheme","theme","_useViewport","useViewport","vh","vw","screenHeight","halfScreenHeight","myMessageTheme","wrapMessageInTheme","user","id","_useState","useState","_useState2","_slicedToArray2","reactionListHeight","setReactionListHeight","myMessageThemeString","useMemo","JSON","stringify","modifiedTheme","mergeThemes","style","_ref","_ref$colors","colors","blue_alice","grey_gainsboro","grey_whisper","transparent","white_smoke","_ref$messageSimple$co","messageSimple","content","_ref$messageSimple$co2","container","borderRadiusL","borderRadiusS","_ref$overlay","containerStyle","messageHeight","useSharedValue","messageLayout","x","y","messageWidth","offsetY","translateY","scale","showScreen","fadeScreen","value","withSpring","damping","mass","restDisplacementThreshold","restSpeedThreshold","stiffness","velocity","useEffect","Keyboard","dismiss","onPan","useAnimatedGestureHandler","onActive","evt","translationY","interpolate","Extrapolate","CLAMP","onFinish","finalYPosition","velocityY","cancelAnimation","withTiming","duration","easing","Easing","out","ease","runOnJS","withDecay","onStart","panStyle","useAnimatedStyle","transform","showScreenStyle","translateX","groupStyle","toLowerCase","hasThreadReplies","reply_count","_ref2","Attachment","FileAttachmentGroup","Gallery","MessageAvatar","Reply","renderContent","_message$own_reaction","_messagesContext$mess","createElement","TapGestureHandler","maxDist","onHandlerStateChange","_ref3","state","nativeEvent","State","END","__self","__source","fileName","lineNumber","columnNumber","View","sendReaction","ownReactionTypes","own_reactions","map","reaction","type","onLayout","_ref4","_ref4$nativeEvent$lay","layout","layoutHeight","height","layoutWidth","width","showAvatar","pointerEvents","backgroundColor","quoted_message","length","borderBottomLeftRadius","borderBottomRightRadius","borderColor","messageContentOrder","messageContentType","messageContentOrderIndex","quotedMessage","messageContainer","maxWidth","attachment","attachmentIndex","messageId","actions","MessageTextContainer","messageOverlay","_extends2","latest_reactions","reactions","_reaction$user","_reaction$user2","_reaction$user3","_reaction$user4","image","name","user_id","supportedReactions","title","isScrollEnabled","ChatProvider","MessagesProvider","MessageProvider","ThemeProvider","mergedStyle","absoluteFillObject","PanGestureHandler","enabled","maxPointers","minDist","onGestureEvent","SafeAreaView","ScrollView","alwaysBounceVertical","contentContainerStyle","showsVerticalScrollIndicator","areEqual","prevProps","nextProps","prevAlignment","prevMessage","prevMessageReactionTitle","prevMessagesContext","nextAlignment","nextMessage","nextMessageReactionTitle","nextMessagesContext","alignmentEqual","messageReactionTitleEqual","prevMyMessageTheme","nextMyMessageTheme","myMessageThemeEqual","latestReactionsEqual","Array","isArray","every","_ref5","index","_nextMessage$latest_r","MemoizedMessageOverlay","React","memo","MessageOverlay","_useMessageOverlayCon","useMessageOverlayContext","data","_useOverlayContext","useOverlayContext","componentProps","exports"],"sources":["MessageOverlay.tsx"],"sourcesContent":["import React, { useEffect, useMemo, useState } from 'react';\nimport { Keyboard, Platform, SafeAreaView, StyleSheet, View, ViewStyle } from 'react-native';\nimport {\n PanGestureHandler,\n PanGestureHandlerGestureEvent,\n ScrollView,\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 { useViewport } from '../../hooks/useViewport';\nimport type { DefaultStreamChatGenerics } from '../../types/types';\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 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 const { vh, vw } = useViewport();\n\n const screenHeight = vh(100);\n const halfScreenHeight = vh(50);\n\n const myMessageTheme = messagesContext?.myMessageTheme;\n const wrapMessageInTheme = clientId === message?.user?.id && !!myMessageTheme;\n\n const [reactionListHeight, setReactionListHeight] = useState(0);\n\n const myMessageThemeString = useMemo(() => JSON.stringify(myMessageTheme), [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 const renderContent = (messageTextNumberOfLines?: number) => (\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={message?.own_reactions?.map((reaction) => reaction.type) || []}\n setReactionListHeight={setReactionListHeight}\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' || groupStyle === 'left_single') &&\n (!hasThreadReplies || threadList)\n ? borderRadiusS\n : borderRadiusL,\n borderBottomRightRadius:\n (groupStyle === 'right_bottom' || 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 && 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: 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 );\n\n // Scroll will only be enabled for message overlay when we show actions.\n // When we show the reactions, we don't want to enable scroll since OverlayReactions component\n // in itself is scrollable (FlatList). FlatList inside a ScrollView is not a good idea and results in error from RN.\n const isScrollEnabled = !!messageActions && overlay === 'message';\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 {isScrollEnabled ? (\n <ScrollView\n alwaysBounceVertical={false}\n contentContainerStyle={[\n styles.center,\n {\n paddingTop: reactionListHeight,\n },\n ]}\n showsVerticalScrollIndicator={false}\n style={[styles.flex, styles.scrollView]}\n >\n {renderContent()}\n </ScrollView>\n ) : (\n renderContent(messageTextNumberOfLines)\n )}\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 messagesContext: prevMessagesContext,\n } = prevProps;\n const {\n alignment: nextAlignment,\n message: nextMessage,\n messageReactionTitle: nextMessageReactionTitle,\n messagesContext: nextMessagesContext,\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 prevMyMessageTheme = JSON.stringify(prevMessagesContext?.myMessageTheme);\n const nextMyMessageTheme = JSON.stringify(nextMessagesContext?.myMessageTheme);\n\n const myMessageThemeEqual = prevMyMessageTheme === nextMyMessageTheme;\n if (!myMessageThemeEqual) 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"],"mappings":"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"}
|
|
@@ -22,7 +22,7 @@ var MessageProvider = function MessageProvider(_ref) {
|
|
|
22
22
|
__self: _this,
|
|
23
23
|
__source: {
|
|
24
24
|
fileName: _jsxFileName,
|
|
25
|
-
lineNumber:
|
|
25
|
+
lineNumber: 125,
|
|
26
26
|
columnNumber: 3
|
|
27
27
|
}
|
|
28
28
|
}, children);
|
|
@@ -40,7 +40,7 @@ var withMessageContext = function withMessageContext(Component) {
|
|
|
40
40
|
__self: _this,
|
|
41
41
|
__source: {
|
|
42
42
|
fileName: _jsxFileName,
|
|
43
|
-
lineNumber:
|
|
43
|
+
lineNumber: 156,
|
|
44
44
|
columnNumber: 12
|
|
45
45
|
}
|
|
46
46
|
}));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireWildcard","require","_defaultBaseContextValue","_getDisplayName","_this","_jsxFileName","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","_typeof","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","MessageContext","React","createContext","DEFAULT_BASE_CONTEXT_VALUE","exports","MessageProvider","_ref","children","value","createElement","Provider","__self","__source","fileName","lineNumber","columnNumber","useMessageContext","contextValue","useContext","withMessageContext","Component","WithMessageContextComponent","props","messageContext","_extends2","displayName","getDisplayName"],"sources":["MessageContext.tsx"],"sourcesContent":["import React, { PropsWithChildren, useContext } from 'react';\n\nimport type { Attachment } from 'stream-chat';\n\nimport type { ActionHandler } from '../../components/Attachment/Attachment';\nimport type {\n MessageTouchableHandlerPayload,\n TouchableHandlerPayload,\n} from '../../components/Message/Message';\nimport type { GroupType, MessageType } from '../../components/MessageList/hooks/useMessageList';\nimport type { ChannelContextValue } from '../../contexts/channelContext/ChannelContext';\nimport type { MessageContentType } from '../../contexts/messagesContext/MessagesContext';\nimport type { DefaultStreamChatGenerics, UnknownType } from '../../types/types';\nimport { DEFAULT_BASE_CONTEXT_VALUE } from '../utils/defaultBaseContextValue';\n\nimport { getDisplayName } from '../utils/getDisplayName';\n\nexport type Alignment = 'right' | 'left';\n\nexport type Reactions = {\n own: boolean;\n type: string;\n}[];\n\nexport type MessageContextValue<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = {\n /** Whether or not actions can be performed on message */\n actionsEnabled: boolean;\n /** Position of the message, either 'right' or 'left' */\n alignment: Alignment;\n /** The files attached to a message */\n files: Attachment<StreamChatGenerics>[];\n /**\n * Position of message in group - top, bottom, middle, single.\n *\n * Message group is a group of consecutive messages from same user. groupStyles can be used to style message as per their position in message group\n * e.g., user avatar (to which message belongs to) is only showed for last (bottom) message in group.\n */\n groupStyles: GroupType[];\n /** Handler for actions. Actions in combination with attachments can be used to build [commands](https://getstream.io/chat/docs/#channel_commands). */\n handleAction: ActionHandler;\n handleDeleteMessage: () => Promise<void>;\n handleEditMessage: () => void;\n handleQuotedReplyMessage: () => void;\n handleResendMessage: () => Promise<void>;\n handleToggleBanUser: () => Promise<void>;\n handleToggleMuteUser: () => Promise<void>;\n handleToggleReaction: (reactionType: string) => Promise<void>;\n /** Whether or not message has reactions */\n hasReactions: boolean;\n /** The images attached to a message */\n images: Attachment<StreamChatGenerics>[];\n /** Whether or not this is the active user's message */\n isMyMessage: boolean;\n /** Whether or not this is the last message in a group of messages */\n lastGroupMessage: boolean;\n /** Current [message object](https://getstream.io/chat/docs/#message_format) */\n message: MessageType<StreamChatGenerics>;\n /** Order to render the message content */\n messageContentOrder: MessageContentType[];\n /**\n * You can call methods available on the Message\n * component such as handleEdit, handleDelete, handleAction etc.\n *\n * Source - [Message](https://github.com/GetStream/stream-chat-react-native/blob/main/package/src/components/Message/Message.tsx)\n *\n * By default, we show the overlay with all the message actions on long press.\n *\n * @param payload Payload object for onLongPress event\n */\n onLongPress: (payload: TouchableHandlerPayload) => void;\n /** Whether the message is only text and the text is only emojis */\n onlyEmojis: boolean;\n /** Handler to open a thread on a message */\n onOpenThread: () => void;\n /**\n * You can call methods available on the Message\n * component such as handleEdit, handleDelete, handleAction etc.\n *\n * Source - [Message](https://github.com/GetStream/stream-chat-react-native/blob/main/package/src/components/Message/Message.tsx)\n *\n * By default, we will dismiss the keyboard on press.\n *\n * @param payload Payload object for onPress event\n */\n onPress: (payload: MessageTouchableHandlerPayload) => void;\n onPressIn: ((payload: TouchableHandlerPayload) => void) | null;\n /** The images attached to a message */\n otherAttachments: Attachment<StreamChatGenerics>[];\n reactions: Reactions;\n showMessageOverlay: (messageReactions?: boolean) => void;\n showMessageStatus: boolean;\n /** Whether or not the Message is part of a Thread */\n threadList: boolean;\n /** The videos attached to a message */\n videos: Attachment<StreamChatGenerics>[];\n goToMessage?: (messageId: string) => void;\n /** Latest message id on current channel */\n lastReceivedId?: string;\n /** Prevent message being pressed for image viewer view */\n preventPress?: boolean;\n /** Whether or not the avatar show show next to Message */\n showAvatar?: boolean;\n} & Pick<ChannelContextValue<StreamChatGenerics>, 'channel' | 'disabled' | 'members'>;\n\nexport const MessageContext = React.createContext(\n DEFAULT_BASE_CONTEXT_VALUE as MessageContextValue,\n);\n\nexport const MessageProvider = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>({\n children,\n value,\n}: PropsWithChildren<{\n value?: MessageContextValue<StreamChatGenerics>;\n}>) => (\n <MessageContext.Provider value={value as unknown as MessageContextValue}>\n {children}\n </MessageContext.Provider>\n);\n\nexport const useMessageContext = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>() => {\n const contextValue = useContext(\n MessageContext,\n ) as unknown as MessageContextValue<StreamChatGenerics>;\n\n return contextValue;\n};\n\n/**\n * Typescript currently does not support partial inference so if MessageContext\n * typing is desired while using the HOC withMessageContextContext the Props for the\n * wrapped component must be provided as the first generic.\n */\nexport const withMessageContext = <\n P extends UnknownType,\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n Component: React.ComponentType<P>,\n): React.FC<Omit<P, keyof MessageContextValue<StreamChatGenerics>>> => {\n const WithMessageContextComponent = (\n props: Omit<P, keyof MessageContextValue<StreamChatGenerics>>,\n ) => {\n const messageContext = useMessageContext<StreamChatGenerics>();\n\n return <Component {...(props as P)} {...messageContext} />;\n };\n WithMessageContextComponent.displayName = `WithMessageContext${getDisplayName(Component)}`;\n return WithMessageContextComponent;\n};\n"],"mappings":";;;;;;;AAAA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","_defaultBaseContextValue","_getDisplayName","_this","_jsxFileName","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","_typeof","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","MessageContext","React","createContext","DEFAULT_BASE_CONTEXT_VALUE","exports","MessageProvider","_ref","children","value","createElement","Provider","__self","__source","fileName","lineNumber","columnNumber","useMessageContext","contextValue","useContext","withMessageContext","Component","WithMessageContextComponent","props","messageContext","_extends2","displayName","getDisplayName"],"sources":["MessageContext.tsx"],"sourcesContent":["import React, { PropsWithChildren, useContext } from 'react';\n\nimport type { Attachment } from 'stream-chat';\n\nimport type { ActionHandler } from '../../components/Attachment/Attachment';\nimport type {\n MessageTouchableHandlerPayload,\n TouchableHandlerPayload,\n} from '../../components/Message/Message';\nimport type { GroupType, MessageType } from '../../components/MessageList/hooks/useMessageList';\nimport type { ChannelContextValue } from '../../contexts/channelContext/ChannelContext';\nimport type { MessageContentType } from '../../contexts/messagesContext/MessagesContext';\nimport type { DeepPartial } from '../../contexts/themeContext/ThemeContext';\nimport type { Theme } from '../../contexts/themeContext/utils/theme';\nimport type { DefaultStreamChatGenerics, UnknownType } from '../../types/types';\nimport { DEFAULT_BASE_CONTEXT_VALUE } from '../utils/defaultBaseContextValue';\n\nimport { getDisplayName } from '../utils/getDisplayName';\n\nexport type Alignment = 'right' | 'left';\n\nexport type Reactions = {\n own: boolean;\n type: string;\n}[];\n\nexport type MessageContextValue<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = {\n /** Whether or not actions can be performed on message */\n actionsEnabled: boolean;\n /** Position of the message, either 'right' or 'left' */\n alignment: Alignment;\n /** The files attached to a message */\n files: Attachment<StreamChatGenerics>[];\n /**\n * Position of message in group - top, bottom, middle, single.\n *\n * Message group is a group of consecutive messages from same user. groupStyles can be used to style message as per their position in message group\n * e.g., user avatar (to which message belongs to) is only showed for last (bottom) message in group.\n */\n groupStyles: GroupType[];\n /** Handler for actions. Actions in combination with attachments can be used to build [commands](https://getstream.io/chat/docs/#channel_commands). */\n handleAction: ActionHandler;\n handleDeleteMessage: () => Promise<void>;\n handleEditMessage: () => void;\n handleQuotedReplyMessage: () => void;\n handleResendMessage: () => Promise<void>;\n handleToggleBanUser: () => Promise<void>;\n handleToggleMuteUser: () => Promise<void>;\n handleToggleReaction: (reactionType: string) => Promise<void>;\n /** Whether or not message has reactions */\n hasReactions: boolean;\n /** The images attached to a message */\n images: Attachment<StreamChatGenerics>[];\n /** Whether or not this is the active user's message */\n isMyMessage: boolean;\n /** Whether or not this is the last message in a group of messages */\n lastGroupMessage: boolean;\n /** Current [message object](https://getstream.io/chat/docs/#message_format) */\n message: MessageType<StreamChatGenerics>;\n /** Order to render the message content */\n messageContentOrder: MessageContentType[];\n /**\n * You can call methods available on the Message\n * component such as handleEdit, handleDelete, handleAction etc.\n *\n * Source - [Message](https://github.com/GetStream/stream-chat-react-native/blob/main/package/src/components/Message/Message.tsx)\n *\n * By default, we show the overlay with all the message actions on long press.\n *\n * @param payload Payload object for onLongPress event\n */\n onLongPress: (payload: TouchableHandlerPayload) => void;\n /** Whether the message is only text and the text is only emojis */\n onlyEmojis: boolean;\n /** Handler to open a thread on a message */\n onOpenThread: () => void;\n /**\n * You can call methods available on the Message\n * component such as handleEdit, handleDelete, handleAction etc.\n *\n * Source - [Message](https://github.com/GetStream/stream-chat-react-native/blob/main/package/src/components/Message/Message.tsx)\n *\n * By default, we will dismiss the keyboard on press.\n *\n * @param payload Payload object for onPress event\n */\n onPress: (payload: MessageTouchableHandlerPayload) => void;\n onPressIn: ((payload: TouchableHandlerPayload) => void) | null;\n /** The images attached to a message */\n otherAttachments: Attachment<StreamChatGenerics>[];\n reactions: Reactions;\n showMessageOverlay: (messageReactions?: boolean, error?: boolean) => void;\n showMessageStatus: boolean;\n /** Whether or not the Message is part of a Thread */\n threadList: boolean;\n /** The videos attached to a message */\n videos: Attachment<StreamChatGenerics>[];\n goToMessage?: (messageId: string) => void;\n /** Latest message id on current channel */\n lastReceivedId?: string;\n /**\n * Theme provided only to messages that are the current users\n */\n myMessageTheme?: DeepPartial<Theme>;\n /** Prevent message being pressed for image viewer view */\n preventPress?: boolean;\n /** Whether or not the avatar show show next to Message */\n showAvatar?: boolean;\n} & Pick<ChannelContextValue<StreamChatGenerics>, 'channel' | 'disabled' | 'members'>;\n\nexport const MessageContext = React.createContext(\n DEFAULT_BASE_CONTEXT_VALUE as MessageContextValue,\n);\n\nexport const MessageProvider = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>({\n children,\n value,\n}: PropsWithChildren<{\n value?: MessageContextValue<StreamChatGenerics>;\n}>) => (\n <MessageContext.Provider value={value as unknown as MessageContextValue}>\n {children}\n </MessageContext.Provider>\n);\n\nexport const useMessageContext = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>() => {\n const contextValue = useContext(\n MessageContext,\n ) as unknown as MessageContextValue<StreamChatGenerics>;\n\n return contextValue;\n};\n\n/**\n * Typescript currently does not support partial inference so if MessageContext\n * typing is desired while using the HOC withMessageContextContext the Props for the\n * wrapped component must be provided as the first generic.\n */\nexport const withMessageContext = <\n P extends UnknownType,\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n Component: React.ComponentType<P>,\n): React.FC<Omit<P, keyof MessageContextValue<StreamChatGenerics>>> => {\n const WithMessageContextComponent = (\n props: Omit<P, keyof MessageContextValue<StreamChatGenerics>>,\n ) => {\n const messageContext = useMessageContext<StreamChatGenerics>();\n\n return <Component {...(props as P)} {...messageContext} />;\n };\n WithMessageContextComponent.displayName = `WithMessageContext${getDisplayName(Component)}`;\n return WithMessageContextComponent;\n};\n"],"mappings":"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"}
|
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
"File type not supported": "File type not supported",
|
|
27
27
|
"Flag": "Flag",
|
|
28
28
|
"Flag Message": "Flag Message",
|
|
29
|
-
"Flag action failed either due to a network issue or the message is already flagged": "Flag action failed either due to a network issue or the message is already flagged",
|
|
29
|
+
"Flag action failed either due to a network issue or the message is already flagged": "Flag action failed either due to a network issue or the message is already flagged.",
|
|
30
30
|
"How about sending your first message to a friend?": "How about sending your first message to a friend?",
|
|
31
31
|
"Instant Commands": "Instant Commands",
|
|
32
32
|
"Let's start chatting!": "Let's start chatting!",
|
|
@@ -1,79 +1,79 @@
|
|
|
1
1
|
{
|
|
2
2
|
"1 Reply": "1 Réponse",
|
|
3
|
-
"1 Thread Reply": "",
|
|
3
|
+
"1 Thread Reply": "Réponse à 1 fil",
|
|
4
4
|
"Allow access to your Gallery": "Autoriser l'accès à votre galerie",
|
|
5
5
|
"Allow camera access in device settings": "Autoriser l'accès à la caméra dans les paramètres de l'appareil",
|
|
6
|
-
"Also send to channel": "",
|
|
7
|
-
"Are you sure you want to permanently delete this message?": "",
|
|
8
|
-
"Are you sure?": "",
|
|
9
|
-
"Block User": "",
|
|
10
|
-
"Cancel": "",
|
|
11
|
-
"Cannot Flag Message": "",
|
|
12
|
-
"Consider how your comment might make others feel and be sure to follow our Community Guidelines": "",
|
|
13
|
-
"Copy Message": "",
|
|
14
|
-
"Delete": "",
|
|
15
|
-
"Delete Message": "",
|
|
6
|
+
"Also send to channel": "Envoyer également à la chaîne",
|
|
7
|
+
"Are you sure you want to permanently delete this message?": "Êtes-vous sûr de vouloir supprimer définitivement ce message?",
|
|
8
|
+
"Are you sure?": "Es-tu sûr ?",
|
|
9
|
+
"Block User": "Bloquer un utilisateur",
|
|
10
|
+
"Cancel": "Annuler",
|
|
11
|
+
"Cannot Flag Message": "Impossible de signaler le message",
|
|
12
|
+
"Consider how your comment might make others feel and be sure to follow our Community Guidelines": "Considérez comment votre commentaire pourrait faire sentir les autres et assurez-vous de suivre nos directives communautaires",
|
|
13
|
+
"Copy Message": "Copier le message",
|
|
14
|
+
"Delete": "Supprimer",
|
|
15
|
+
"Delete Message": "Supprimer un message",
|
|
16
16
|
"Device camera is used to take photos or videos.": "L'appareil photo de l'appareil est utilisé pour prendre des photos ou des vidéos.",
|
|
17
|
-
"Do you want to send a copy of this message to a moderator for further investigation?": "",
|
|
18
|
-
"Edit Message": "",
|
|
17
|
+
"Do you want to send a copy of this message to a moderator for further investigation?": "Voulez-vous envoyer une copie de ce message à un modérateur pour une enquête plus approfondie?",
|
|
18
|
+
"Edit Message": "Éditer un message",
|
|
19
19
|
"Editing Message": "Édite un message",
|
|
20
20
|
"Emoji matching": "Correspondance Emoji",
|
|
21
|
-
"Empty message...": "",
|
|
22
|
-
"Error loading": "",
|
|
23
|
-
"Error loading channel list...": "",
|
|
24
|
-
"Error loading messages for this channel...": "",
|
|
25
|
-
"Error while loading, please reload/refresh": "",
|
|
26
|
-
"File type not supported": "",
|
|
27
|
-
"Flag": "",
|
|
28
|
-
"Flag Message": "",
|
|
29
|
-
"Flag action failed either due to a network issue or the message is already flagged": "",
|
|
30
|
-
"How about sending your first message to a friend?": "",
|
|
21
|
+
"Empty message...": "Message vide...",
|
|
22
|
+
"Error loading": "Erreur lors du chargement",
|
|
23
|
+
"Error loading channel list...": "Erreur lors du chargement de la liste de canaux...",
|
|
24
|
+
"Error loading messages for this channel...": "Erreur lors du chargement des messages de ce canal...",
|
|
25
|
+
"Error while loading, please reload/refresh": "Erreur lors du chargement, veuillez recharger/rafraîchir",
|
|
26
|
+
"File type not supported": "Le type de fichier n'est pas pris en charge",
|
|
27
|
+
"Flag": "Signaler",
|
|
28
|
+
"Flag Message": "Signaler le message",
|
|
29
|
+
"Flag action failed either due to a network issue or the message is already flagged": "L'action de signalisation a échoué en raison d'un problème de réseau ou le message est déjà signalé.",
|
|
30
|
+
"How about sending your first message to a friend?": "Et si vous envoyiez votre premier message à un ami ?",
|
|
31
31
|
"Instant Commands": "Commandes Instantanées",
|
|
32
|
-
"Let's start chatting!": "",
|
|
33
|
-
"Links are disabled": "",
|
|
32
|
+
"Let's start chatting!": "Commençons à discuter !",
|
|
33
|
+
"Links are disabled": "Links are disabled",
|
|
34
34
|
"Loading channels...": "Chargement des canaux...",
|
|
35
35
|
"Loading messages...": "Chargement des messages...",
|
|
36
36
|
"Loading...": "Chargement...",
|
|
37
|
-
"Maximum file size upload limit reached. Please upload a file below {{MAX_FILE_SIZE_TO_UPLOAD_IN_MB}} MB.": "",
|
|
38
|
-
"Message Reactions": "",
|
|
39
|
-
"Message deleted": "",
|
|
40
|
-
"Message flagged": "",
|
|
41
|
-
"Mute User": "",
|
|
37
|
+
"Maximum file size upload limit reached. Please upload a file below {{MAX_FILE_SIZE_TO_UPLOAD_IN_MB}} MB.": "Taille maximale de téléchargement de fichier atteinte. Veuillez télécharger un fichier inférieur à {{MAX_FILE_SIZE_TO_UPLOAD_IN_MB}} Mo.",
|
|
38
|
+
"Message Reactions": "Réactions aux messages",
|
|
39
|
+
"Message deleted": "Message supprimé",
|
|
40
|
+
"Message flagged": "Message signalé",
|
|
41
|
+
"Mute User": "Utilisateur muet",
|
|
42
42
|
"Not supported": "Non pris en charge",
|
|
43
|
-
"Nothing yet...": "",
|
|
44
|
-
"Ok": "",
|
|
45
|
-
"Only visible to you": "",
|
|
43
|
+
"Nothing yet...": "Aucun message...",
|
|
44
|
+
"Ok": "Ok",
|
|
45
|
+
"Only visible to you": "Seulement visible par vous",
|
|
46
46
|
"Open Settings": "Ouvrir les paramètres",
|
|
47
|
-
"Photo": "",
|
|
47
|
+
"Photo": "Photo",
|
|
48
48
|
"Photos and Videos": "Photos et vidéos",
|
|
49
|
-
"Pin to Conversation": "",
|
|
50
|
-
"Pinned by": "",
|
|
49
|
+
"Pin to Conversation": "Épingler à la conversation",
|
|
50
|
+
"Pinned by": "Épinglé par",
|
|
51
51
|
"Please enable access to your photos and videos so you can share them.": "Veuillez autoriser l'accès à vos photos et vidéos afin de pouvoir les partager.",
|
|
52
52
|
"Please select a channel first": "Veuillez d'abord selectionnez un canal",
|
|
53
|
-
"Reconnecting...": "",
|
|
54
|
-
"Reply": "",
|
|
53
|
+
"Reconnecting...": "Se Reconnecter...",
|
|
54
|
+
"Reply": "Répondre",
|
|
55
55
|
"Reply to Message": "Répondre au message",
|
|
56
|
-
"Resend": "",
|
|
56
|
+
"Resend": "Renvoyer",
|
|
57
57
|
"Search GIFs": "Rechercher des GIF",
|
|
58
58
|
"Select More Photos": "Sélectionner plus de photos",
|
|
59
|
-
"Send Anyway": "",
|
|
59
|
+
"Send Anyway": "Envoyer quand même",
|
|
60
60
|
"Send a message": "Envoyer un message",
|
|
61
|
-
"Sending links is not allowed in this conversation": "",
|
|
61
|
+
"Sending links is not allowed in this conversation": "Sending links is not allowed in this conversation",
|
|
62
62
|
"Slow mode ON": "Mode lent activé",
|
|
63
|
-
"The message has been reported to a moderator.": "",
|
|
64
|
-
"Thread Reply": "",
|
|
65
|
-
"Unblock User": "",
|
|
63
|
+
"The message has been reported to a moderator.": "Le message a été signalé à un modérateur.",
|
|
64
|
+
"Thread Reply": "Réponse à la discussion",
|
|
65
|
+
"Unblock User": "Débloquer Utilisateur",
|
|
66
66
|
"Unknown User": "Utilisateur inconnu",
|
|
67
|
-
"Unmute User": "",
|
|
68
|
-
"Unpin from Conversation": "",
|
|
69
|
-
"Unread Messages": "",
|
|
70
|
-
"Video": "",
|
|
71
|
-
"You": "",
|
|
72
|
-
"You can't send messages in this channel": "",
|
|
73
|
-
"{{ firstUser }} and {{ nonSelfUserLength }} more are typing": "",
|
|
67
|
+
"Unmute User": "Activer le son de Utilisateur",
|
|
68
|
+
"Unpin from Conversation": "Décrocher de la conversation",
|
|
69
|
+
"Unread Messages": "Messages non lus",
|
|
70
|
+
"Video": "Vidéo",
|
|
71
|
+
"You": "Toi",
|
|
72
|
+
"You can't send messages in this channel": "You can't send messages in this channel",
|
|
73
|
+
"{{ firstUser }} and {{ nonSelfUserLength }} more are typing": "{{ firstUser }} et {{ nonSelfUserLength }} autres sont en train d'écrire",
|
|
74
74
|
"{{ index }} of {{ photoLength }}": "{{ index }} sur {{ photoLength }}",
|
|
75
75
|
"{{ replyCount }} Replies": "{{ replyCount }} Réponses",
|
|
76
|
-
"{{ replyCount }} Thread Replies": "",
|
|
77
|
-
"{{ user }} is typing": "",
|
|
78
|
-
"🏙 Attachment...": ""
|
|
76
|
+
"{{ replyCount }} Thread Replies": "{{replyCount}} Réponses à la discussion",
|
|
77
|
+
"{{ user }} is typing": "{{ user }} est en train d'écrire",
|
|
78
|
+
"🏙 Attachment...": "🏙 Pièce jointe..."
|
|
79
79
|
}
|