stream-chat-react-native-core 5.22.0-beta.1 → 5.22.0-beta.10
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/README.md +10 -5
- package/lib/commonjs/components/Attachment/AudioAttachment.js +12 -12
- package/lib/commonjs/components/Attachment/AudioAttachment.js.map +1 -1
- package/lib/commonjs/components/Attachment/FileAttachment.js +10 -7
- package/lib/commonjs/components/Attachment/FileAttachment.js.map +1 -1
- package/lib/commonjs/components/AttachmentPicker/AttachmentPicker.js +8 -6
- package/lib/commonjs/components/AttachmentPicker/AttachmentPicker.js.map +1 -1
- package/lib/commonjs/components/AttachmentPicker/components/AttachmentPickerItem.js +24 -20
- package/lib/commonjs/components/AttachmentPicker/components/AttachmentPickerItem.js.map +1 -1
- package/lib/commonjs/components/AttachmentPicker/components/AttachmentSelectionBar.js +26 -11
- package/lib/commonjs/components/AttachmentPicker/components/AttachmentSelectionBar.js.map +1 -1
- package/lib/commonjs/components/Channel/Channel.js +65 -46
- package/lib/commonjs/components/Channel/Channel.js.map +1 -1
- package/lib/commonjs/components/Channel/hooks/useCreateChannelContext.js +2 -0
- package/lib/commonjs/components/Channel/hooks/useCreateChannelContext.js.map +1 -1
- package/lib/commonjs/components/Channel/hooks/useCreateInputMessageInputContext.js +2 -2
- package/lib/commonjs/components/Channel/hooks/useCreateInputMessageInputContext.js.map +1 -1
- package/lib/commonjs/components/ChannelPreview/ChannelPreviewMessenger.js +16 -14
- package/lib/commonjs/components/ChannelPreview/ChannelPreviewMessenger.js.map +1 -1
- package/lib/commonjs/components/ChannelPreview/hooks/useChannelPreviewDisplayName.js +4 -2
- package/lib/commonjs/components/ChannelPreview/hooks/useChannelPreviewDisplayName.js.map +1 -1
- package/lib/commonjs/components/ImageGallery/ImageGallery.js +29 -32
- package/lib/commonjs/components/ImageGallery/ImageGallery.js.map +1 -1
- package/lib/commonjs/components/ImageGallery/components/AnimatedGalleryImage.js +7 -5
- package/lib/commonjs/components/ImageGallery/components/AnimatedGalleryImage.js.map +1 -1
- package/lib/commonjs/components/ImageGallery/components/AnimatedGalleryVideo.js +10 -8
- package/lib/commonjs/components/ImageGallery/components/AnimatedGalleryVideo.js.map +1 -1
- package/lib/commonjs/components/ImageGallery/components/ImageGrid.js +10 -8
- package/lib/commonjs/components/ImageGallery/components/ImageGrid.js.map +1 -1
- package/lib/commonjs/components/Indicators/EmptyStateIndicator.js +17 -12
- package/lib/commonjs/components/Indicators/EmptyStateIndicator.js.map +1 -1
- package/lib/commonjs/components/Message/MessageSimple/MessageContent.js +20 -17
- package/lib/commonjs/components/Message/MessageSimple/MessageContent.js.map +1 -1
- package/lib/commonjs/components/Message/MessageSimple/ReactionList.js +18 -17
- package/lib/commonjs/components/Message/MessageSimple/ReactionList.js.map +1 -1
- package/lib/commonjs/components/Message/MessageSimple/utils/generateMarkdownText.js +7 -5
- package/lib/commonjs/components/Message/MessageSimple/utils/generateMarkdownText.js.map +1 -1
- package/lib/commonjs/components/Message/MessageSimple/utils/generateMarkdownText.test.js +8 -0
- package/lib/commonjs/components/Message/MessageSimple/utils/generateMarkdownText.test.js.map +1 -0
- package/lib/commonjs/components/Message/MessageSimple/utils/renderText.js +25 -17
- package/lib/commonjs/components/Message/MessageSimple/utils/renderText.js.map +1 -1
- package/lib/commonjs/components/MessageInput/FileUploadPreview.js +30 -20
- package/lib/commonjs/components/MessageInput/FileUploadPreview.js.map +1 -1
- package/lib/commonjs/components/MessageInput/ImageUploadPreview.js +13 -13
- package/lib/commonjs/components/MessageInput/ImageUploadPreview.js.map +1 -1
- package/lib/commonjs/components/MessageInput/MessageInput.js +1 -1
- package/lib/commonjs/components/MessageInput/MessageInput.js.map +1 -1
- package/lib/commonjs/components/MessageInput/UploadProgressIndicator.js.map +1 -1
- package/lib/commonjs/components/MessageList/InlineUnreadIndicator.js +13 -11
- package/lib/commonjs/components/MessageList/InlineUnreadIndicator.js.map +1 -1
- package/lib/commonjs/components/MessageOverlay/MessageActionList.js +8 -14
- package/lib/commonjs/components/MessageOverlay/MessageActionList.js.map +1 -1
- package/lib/commonjs/components/MessageOverlay/MessageActionListItem.js +11 -8
- package/lib/commonjs/components/MessageOverlay/MessageActionListItem.js.map +1 -1
- package/lib/commonjs/components/MessageOverlay/MessageOverlay.js +32 -29
- package/lib/commonjs/components/MessageOverlay/MessageOverlay.js.map +1 -1
- package/lib/commonjs/components/Thread/components/ThreadFooterComponent.js +17 -15
- package/lib/commonjs/components/Thread/components/ThreadFooterComponent.js.map +1 -1
- package/lib/commonjs/contexts/channelContext/ChannelContext.js +2 -2
- package/lib/commonjs/contexts/channelContext/ChannelContext.js.map +1 -1
- package/lib/commonjs/contexts/messageInputContext/MessageInputContext.js +66 -45
- package/lib/commonjs/contexts/messageInputContext/MessageInputContext.js.map +1 -1
- package/lib/commonjs/contexts/messageInputContext/hooks/useCreateMessageInputContext.js +2 -2
- package/lib/commonjs/contexts/messageInputContext/hooks/useCreateMessageInputContext.js.map +1 -1
- package/lib/commonjs/contexts/messageInputContext/hooks/useMessageDetailsForState.js.map +1 -1
- package/lib/commonjs/contexts/messagesContext/MessagesContext.js.map +1 -1
- package/lib/commonjs/contexts/themeContext/utils/theme.js +1 -4
- package/lib/commonjs/contexts/themeContext/utils/theme.js.map +1 -1
- package/lib/commonjs/hooks/index.js +11 -0
- package/lib/commonjs/hooks/index.js.map +1 -1
- package/lib/commonjs/hooks/useViewport.js +47 -0
- package/lib/commonjs/hooks/useViewport.js.map +1 -0
- package/lib/commonjs/i18n/en.json +5 -0
- package/lib/commonjs/i18n/es.json +6 -1
- package/lib/commonjs/i18n/fr.json +20 -15
- package/lib/commonjs/i18n/he.json +6 -1
- package/lib/commonjs/i18n/hi.json +20 -15
- package/lib/commonjs/i18n/it.json +20 -15
- package/lib/commonjs/i18n/ja.json +6 -1
- package/lib/commonjs/i18n/ko.json +6 -1
- package/lib/commonjs/i18n/nl.json +20 -15
- package/lib/commonjs/i18n/ru.json +20 -15
- package/lib/commonjs/i18n/tr.json +20 -15
- package/lib/commonjs/native.js.map +1 -1
- package/lib/commonjs/types/types.js.map +1 -1
- package/lib/commonjs/utils/compressImage.js +37 -0
- package/lib/commonjs/utils/compressImage.js.map +1 -0
- package/lib/commonjs/utils/utils.js +1 -15
- package/lib/commonjs/utils/utils.js.map +1 -1
- package/lib/commonjs/version.json +1 -1
- package/lib/module/components/Attachment/AudioAttachment.js +12 -12
- package/lib/module/components/Attachment/AudioAttachment.js.map +1 -1
- package/lib/module/components/Attachment/FileAttachment.js +10 -7
- package/lib/module/components/Attachment/FileAttachment.js.map +1 -1
- package/lib/module/components/AttachmentPicker/AttachmentPicker.js +8 -6
- package/lib/module/components/AttachmentPicker/AttachmentPicker.js.map +1 -1
- package/lib/module/components/AttachmentPicker/components/AttachmentPickerItem.js +24 -20
- package/lib/module/components/AttachmentPicker/components/AttachmentPickerItem.js.map +1 -1
- package/lib/module/components/AttachmentPicker/components/AttachmentSelectionBar.js +26 -11
- package/lib/module/components/AttachmentPicker/components/AttachmentSelectionBar.js.map +1 -1
- package/lib/module/components/Channel/Channel.js +65 -46
- package/lib/module/components/Channel/Channel.js.map +1 -1
- package/lib/module/components/Channel/hooks/useCreateChannelContext.js +2 -0
- package/lib/module/components/Channel/hooks/useCreateChannelContext.js.map +1 -1
- package/lib/module/components/Channel/hooks/useCreateInputMessageInputContext.js +2 -2
- package/lib/module/components/Channel/hooks/useCreateInputMessageInputContext.js.map +1 -1
- package/lib/module/components/ChannelPreview/ChannelPreviewMessenger.js +16 -14
- package/lib/module/components/ChannelPreview/ChannelPreviewMessenger.js.map +1 -1
- package/lib/module/components/ChannelPreview/hooks/useChannelPreviewDisplayName.js +4 -2
- package/lib/module/components/ChannelPreview/hooks/useChannelPreviewDisplayName.js.map +1 -1
- package/lib/module/components/ImageGallery/ImageGallery.js +29 -32
- package/lib/module/components/ImageGallery/ImageGallery.js.map +1 -1
- package/lib/module/components/ImageGallery/components/AnimatedGalleryImage.js +7 -5
- package/lib/module/components/ImageGallery/components/AnimatedGalleryImage.js.map +1 -1
- package/lib/module/components/ImageGallery/components/AnimatedGalleryVideo.js +10 -8
- package/lib/module/components/ImageGallery/components/AnimatedGalleryVideo.js.map +1 -1
- package/lib/module/components/ImageGallery/components/ImageGrid.js +10 -8
- package/lib/module/components/ImageGallery/components/ImageGrid.js.map +1 -1
- package/lib/module/components/Indicators/EmptyStateIndicator.js +17 -12
- package/lib/module/components/Indicators/EmptyStateIndicator.js.map +1 -1
- package/lib/module/components/Message/MessageSimple/MessageContent.js +20 -17
- package/lib/module/components/Message/MessageSimple/MessageContent.js.map +1 -1
- package/lib/module/components/Message/MessageSimple/ReactionList.js +18 -17
- package/lib/module/components/Message/MessageSimple/ReactionList.js.map +1 -1
- package/lib/module/components/Message/MessageSimple/utils/generateMarkdownText.js +7 -5
- package/lib/module/components/Message/MessageSimple/utils/generateMarkdownText.js.map +1 -1
- package/lib/module/components/Message/MessageSimple/utils/generateMarkdownText.test.js +8 -0
- package/lib/module/components/Message/MessageSimple/utils/generateMarkdownText.test.js.map +1 -0
- package/lib/module/components/Message/MessageSimple/utils/renderText.js +25 -17
- package/lib/module/components/Message/MessageSimple/utils/renderText.js.map +1 -1
- package/lib/module/components/MessageInput/FileUploadPreview.js +30 -20
- package/lib/module/components/MessageInput/FileUploadPreview.js.map +1 -1
- package/lib/module/components/MessageInput/ImageUploadPreview.js +13 -13
- package/lib/module/components/MessageInput/ImageUploadPreview.js.map +1 -1
- package/lib/module/components/MessageInput/MessageInput.js +1 -1
- package/lib/module/components/MessageInput/MessageInput.js.map +1 -1
- package/lib/module/components/MessageInput/UploadProgressIndicator.js.map +1 -1
- package/lib/module/components/MessageList/InlineUnreadIndicator.js +13 -11
- package/lib/module/components/MessageList/InlineUnreadIndicator.js.map +1 -1
- package/lib/module/components/MessageOverlay/MessageActionList.js +8 -14
- package/lib/module/components/MessageOverlay/MessageActionList.js.map +1 -1
- package/lib/module/components/MessageOverlay/MessageActionListItem.js +11 -8
- package/lib/module/components/MessageOverlay/MessageActionListItem.js.map +1 -1
- package/lib/module/components/MessageOverlay/MessageOverlay.js +32 -29
- package/lib/module/components/MessageOverlay/MessageOverlay.js.map +1 -1
- package/lib/module/components/Thread/components/ThreadFooterComponent.js +17 -15
- package/lib/module/components/Thread/components/ThreadFooterComponent.js.map +1 -1
- package/lib/module/contexts/channelContext/ChannelContext.js +2 -2
- package/lib/module/contexts/channelContext/ChannelContext.js.map +1 -1
- package/lib/module/contexts/messageInputContext/MessageInputContext.js +66 -45
- package/lib/module/contexts/messageInputContext/MessageInputContext.js.map +1 -1
- package/lib/module/contexts/messageInputContext/hooks/useCreateMessageInputContext.js +2 -2
- package/lib/module/contexts/messageInputContext/hooks/useCreateMessageInputContext.js.map +1 -1
- package/lib/module/contexts/messageInputContext/hooks/useMessageDetailsForState.js.map +1 -1
- package/lib/module/contexts/messagesContext/MessagesContext.js.map +1 -1
- package/lib/module/contexts/themeContext/utils/theme.js +1 -4
- package/lib/module/contexts/themeContext/utils/theme.js.map +1 -1
- package/lib/module/hooks/index.js +11 -0
- package/lib/module/hooks/index.js.map +1 -1
- package/lib/module/hooks/useViewport.js +47 -0
- package/lib/module/hooks/useViewport.js.map +1 -0
- package/lib/module/i18n/en.json +5 -0
- package/lib/module/i18n/es.json +6 -1
- package/lib/module/i18n/fr.json +20 -15
- package/lib/module/i18n/he.json +6 -1
- package/lib/module/i18n/hi.json +20 -15
- package/lib/module/i18n/it.json +20 -15
- package/lib/module/i18n/ja.json +6 -1
- package/lib/module/i18n/ko.json +6 -1
- package/lib/module/i18n/nl.json +20 -15
- package/lib/module/i18n/ru.json +20 -15
- package/lib/module/i18n/tr.json +20 -15
- package/lib/module/native.js.map +1 -1
- package/lib/module/types/types.js.map +1 -1
- package/lib/module/utils/compressImage.js +37 -0
- package/lib/module/utils/compressImage.js.map +1 -0
- package/lib/module/utils/utils.js +1 -15
- package/lib/module/utils/utils.js.map +1 -1
- package/lib/module/version.json +1 -1
- package/lib/typescript/components/Attachment/AudioAttachment.d.ts +1 -1
- package/lib/typescript/components/Channel/hooks/useCreateChannelContext.d.ts +1 -1
- package/lib/typescript/components/Message/MessageSimple/utils/generateMarkdownText.d.ts +1 -3
- package/lib/typescript/components/Message/MessageSimple/utils/generateMarkdownText.test.d.ts +1 -0
- package/lib/typescript/components/Message/hooks/useMessageActionHandlers.d.ts +1 -1
- package/lib/typescript/components/Message/hooks/useMessageActions.d.ts +1 -1
- package/lib/typescript/components/MessageInput/UploadProgressIndicator.d.ts +5 -2
- package/lib/typescript/contexts/channelContext/ChannelContext.d.ts +5 -0
- package/lib/typescript/contexts/messageContext/MessageContext.d.ts +1 -1
- package/lib/typescript/contexts/messageInputContext/MessageInputContext.d.ts +3 -23
- package/lib/typescript/contexts/messageInputContext/hooks/useMessageDetailsForState.d.ts +2 -2
- package/lib/typescript/contexts/messagesContext/MessagesContext.d.ts +2 -2
- package/lib/typescript/contexts/themeContext/utils/theme.d.ts +1 -3
- package/lib/typescript/hooks/index.d.ts +1 -0
- package/lib/typescript/hooks/useViewport.d.ts +11 -0
- package/lib/typescript/i18n/en.json +5 -0
- package/lib/typescript/i18n/es.json +6 -1
- package/lib/typescript/i18n/fr.json +20 -15
- package/lib/typescript/i18n/he.json +6 -1
- package/lib/typescript/i18n/hi.json +20 -15
- package/lib/typescript/i18n/it.json +20 -15
- package/lib/typescript/i18n/ja.json +6 -1
- package/lib/typescript/i18n/ko.json +6 -1
- package/lib/typescript/i18n/nl.json +20 -15
- package/lib/typescript/i18n/ru.json +20 -15
- package/lib/typescript/i18n/tr.json +20 -15
- package/lib/typescript/native.d.ts +2 -0
- package/lib/typescript/store/mappers/mapStorableToChannel.d.ts +1 -1
- package/lib/typescript/types/types.d.ts +27 -10
- package/lib/typescript/utils/Streami18n.d.ts +5 -5
- package/lib/typescript/utils/compressImage.d.ts +8 -0
- package/lib/typescript/utils/utils.d.ts +0 -2
- package/package.json +2 -2
- package/src/components/Attachment/AudioAttachment.tsx +2 -1
- package/src/components/Attachment/FileAttachment.tsx +12 -3
- package/src/components/AttachmentPicker/AttachmentPicker.tsx +4 -2
- package/src/components/AttachmentPicker/components/AttachmentPickerItem.tsx +7 -5
- package/src/components/AttachmentPicker/components/AttachmentSelectionBar.tsx +13 -1
- package/src/components/Channel/Channel.tsx +32 -8
- package/src/components/Channel/hooks/useCreateChannelContext.ts +2 -0
- package/src/components/Channel/hooks/useCreateInputMessageInputContext.ts +2 -9
- package/src/components/ChannelPreview/ChannelPreviewMessenger.tsx +4 -3
- package/src/components/ChannelPreview/hooks/useChannelPreviewDisplayName.ts +4 -3
- package/src/components/ImageGallery/ImageGallery.tsx +9 -19
- package/src/components/ImageGallery/components/AnimatedGalleryImage.tsx +5 -3
- package/src/components/ImageGallery/components/AnimatedGalleryVideo.tsx +5 -3
- package/src/components/ImageGallery/components/ImageGrid.tsx +2 -1
- package/src/components/Indicators/EmptyStateIndicator.tsx +8 -7
- package/src/components/Message/MessageSimple/MessageContent.tsx +3 -1
- package/src/components/Message/MessageSimple/ReactionList.tsx +2 -1
- package/src/components/Message/MessageSimple/utils/generateMarkdownText.test.ts +23 -0
- package/src/components/Message/MessageSimple/utils/generateMarkdownText.ts +12 -13
- package/src/components/Message/MessageSimple/utils/renderText.tsx +12 -2
- package/src/components/MessageInput/FileUploadPreview.tsx +17 -3
- package/src/components/MessageInput/ImageUploadPreview.tsx +1 -2
- package/src/components/MessageInput/MessageInput.tsx +1 -1
- package/src/components/MessageInput/UploadProgressIndicator.tsx +2 -2
- package/src/components/MessageInput/__tests__/AudioAttachmentUploadPreviewExpo.test.tsx +1 -1
- package/src/components/MessageInput/__tests__/AudioAttachmentUploadPreviewNative.test.tsx +1 -1
- package/src/components/MessageInput/__tests__/MessageInput.test.js +2 -2
- package/src/components/MessageList/InlineUnreadIndicator.tsx +2 -1
- package/src/components/MessageOverlay/MessageActionList.tsx +3 -11
- package/src/components/MessageOverlay/MessageActionListItem.tsx +5 -2
- package/src/components/MessageOverlay/MessageOverlay.tsx +5 -3
- package/src/components/Thread/components/ThreadFooterComponent.tsx +2 -1
- package/src/contexts/channelContext/ChannelContext.tsx +5 -0
- package/src/contexts/messageInputContext/MessageInputContext.tsx +81 -69
- package/src/contexts/messageInputContext/__tests__/__snapshots__/sendMessage.test.tsx.snap +3 -3
- package/src/contexts/messageInputContext/hooks/useCreateMessageInputContext.ts +2 -2
- package/src/contexts/messageInputContext/hooks/useMessageDetailsForState.ts +2 -2
- package/src/contexts/messagesContext/MessagesContext.tsx +2 -2
- package/src/contexts/themeContext/utils/theme.ts +2 -7
- package/src/hooks/index.ts +1 -0
- package/src/hooks/useViewport.ts +41 -0
- package/src/i18n/en.json +5 -0
- package/src/i18n/es.json +6 -1
- package/src/i18n/fr.json +20 -15
- package/src/i18n/he.json +6 -1
- package/src/i18n/hi.json +20 -15
- package/src/i18n/it.json +20 -15
- package/src/i18n/ja.json +6 -1
- package/src/i18n/ko.json +6 -1
- package/src/i18n/nl.json +20 -15
- package/src/i18n/ru.json +20 -15
- package/src/i18n/tr.json +20 -15
- package/src/native.ts +5 -1
- package/src/types/types.ts +29 -10
- package/src/utils/compressImage.ts +32 -0
- package/src/utils/utils.ts +0 -13
- package/src/version.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_reactNativeMarkdownPackage","_simpleMarkdown","_generateMarkdownText","_this","_jsxFileName","defaultMarkdownStyles","inlineCode","fontSize","padding","paddingHorizontal","list","marginBottom","marginTop","listItemNumber","fontWeight","listItemText","flex","listRow","flexDirection","mentions","paragraph","paragraphCenter","paragraphWithImage","mentionsParseFunction","capture","parse","state","content","parseInline","renderText","params","colors","markdownRules","markdownStyles","message","messageOverlay","messageTextNumberOfLines","onLinkParams","onLink","onLongPressParam","onLongPress","onlyEmojis","onPressParam","onPress","preventPress","markdownText","generateMarkdownText","styles","_extends2","autolink","color","accent_blue","backgroundColor","white_smoke","borderColor","grey_gainsboro","accent_red","text","black","url","pattern","RegExp","test","Linking","canOpenURL","then","canOpenUrl","openURL","linkReact","node","output","_ref","_objectDestructuringEmpty2","target","event","additionalInfo","defaultHandler","emitter","createElement","Text","key","style","suppressHighlighting","__self","__source","fileName","lineNumber","columnNumber","withinLink","paragraphTextReact","_ref2","undefined","numberOfLines","mentioned_users","mentionedUsers","Array","isArray","reduce","acc","cur","userName","name","id","length","replace","match","regEx","mentionsMatchFunction","source","exec","mentionsReact","_ref3","_node$content$","_node$content$$conten","substring","user","find","current","listReact","ListOutput","customRules","image","link","react","reflink","sublist","order","defaultRules","JSON","stringify","rules","exports","_ref4","isSublist","withinList","parentTypes","View","items","map","item","index","_item$","indexAfterStart","start","ListRow","testID","Bullet","ordered","listItemBullet","type","isSublistWithinText","includes","ListItem","_ref5","_ref6","children","_ref7"],"sources":["renderText.tsx"],"sourcesContent":["import React, { PropsWithChildren } from 'react';\nimport { GestureResponderEvent, Linking, Text, TextProps, View, ViewProps } from 'react-native';\n\n// @ts-expect-error\nimport Markdown from 'react-native-markdown-package';\n\nimport {\n DefaultRules,\n defaultRules,\n MatchFunction,\n ParseFunction,\n parseInline,\n ReactNodeOutput,\n ReactOutput,\n SingleASTNode,\n State,\n} from 'simple-markdown';\n\nimport type { UserResponse } from 'stream-chat';\n\nimport { generateMarkdownText } from './generateMarkdownText';\n\nimport type { MessageContextValue } from '../../../../contexts/messageContext/MessageContext';\nimport type { Colors, MarkdownStyle } from '../../../../contexts/themeContext/utils/theme';\nimport type { DefaultStreamChatGenerics } from '../../../../types/types';\nimport type { MessageType } from '../../../MessageList/hooks/useMessageList';\n\nconst defaultMarkdownStyles: MarkdownStyle = {\n inlineCode: {\n fontSize: 13,\n padding: 3,\n paddingHorizontal: 5,\n },\n list: {\n marginBottom: 8,\n marginTop: 8,\n },\n listItemNumber: {\n fontWeight: 'bold',\n },\n listItemText: {\n flex: 0,\n },\n listRow: {\n flexDirection: 'row',\n },\n mentions: {\n fontWeight: '700',\n },\n paragraph: {\n marginBottom: 8,\n marginTop: 8,\n },\n paragraphCenter: {\n marginBottom: 8,\n marginTop: 8,\n },\n paragraphWithImage: {\n marginBottom: 8,\n marginTop: 8,\n },\n};\n\nconst mentionsParseFunction: ParseFunction = (capture, parse, state) => ({\n content: parseInline(parse, capture[0], state),\n});\n\nexport type MarkdownRules = Partial<DefaultRules>;\n\nexport type RenderTextParams<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Partial<\n Pick<MessageContextValue<StreamChatGenerics>, 'onLongPress' | 'onPress' | 'preventPress'>\n> & {\n colors: typeof Colors;\n message: MessageType<StreamChatGenerics>;\n markdownRules?: MarkdownRules;\n markdownStyles?: MarkdownStyle;\n messageOverlay?: boolean;\n messageTextNumberOfLines?: number;\n onLink?: (url: string) => Promise<void>;\n onlyEmojis?: boolean;\n};\n\nexport const renderText = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n params: RenderTextParams<StreamChatGenerics>,\n) => {\n const {\n colors,\n markdownRules,\n markdownStyles,\n message,\n messageOverlay,\n messageTextNumberOfLines,\n onLink: onLinkParams,\n onLongPress: onLongPressParam,\n onlyEmojis,\n onPress: onPressParam,\n preventPress,\n } = params;\n\n const markdownText = generateMarkdownText<StreamChatGenerics>(message);\n\n const styles: MarkdownStyle = {\n ...defaultMarkdownStyles,\n ...markdownStyles,\n autolink: {\n ...defaultMarkdownStyles.autolink,\n color: colors.accent_blue,\n ...markdownStyles?.autolink,\n },\n inlineCode: {\n ...defaultMarkdownStyles.inlineCode,\n backgroundColor: colors.white_smoke,\n borderColor: colors.grey_gainsboro,\n color: colors.accent_red,\n ...markdownStyles?.inlineCode,\n },\n mentions: {\n ...defaultMarkdownStyles.mentions,\n color: colors.accent_blue,\n ...markdownStyles?.mentions,\n },\n text: {\n ...defaultMarkdownStyles.text,\n color: colors.black,\n ...markdownStyles?.text,\n },\n };\n\n const onLink = (url: string) => {\n const pattern = new RegExp(/^\\S+:\\/\\//);\n if (!pattern.test(url)) {\n url = 'http://' + url;\n }\n\n return onLinkParams\n ? onLinkParams(url)\n : Linking.canOpenURL(url).then((canOpenUrl) => canOpenUrl && Linking.openURL(url));\n };\n\n const linkReact: ReactNodeOutput = (node, output, { ...state }) => {\n const url = node.target;\n const onPress = (event: GestureResponderEvent) => {\n if (!preventPress && onPressParam) {\n onPressParam({\n additionalInfo: { url },\n defaultHandler: () => {\n onLink(url);\n },\n emitter: 'textLink',\n event,\n });\n }\n };\n\n const onLongPress = (event: GestureResponderEvent) => {\n if (!preventPress && onLongPressParam) {\n onLongPressParam({\n additionalInfo: { url },\n emitter: 'textLink',\n event,\n });\n }\n };\n\n return (\n <Text\n key={state.key}\n onLongPress={onLongPress}\n onPress={onPress}\n style={styles.autolink}\n suppressHighlighting={true}\n >\n {output(node.content, { ...state, withinLink: true })}\n </Text>\n );\n };\n\n const paragraphTextReact: ReactNodeOutput = (node, output, { ...state }) => {\n if (messageTextNumberOfLines !== undefined) {\n // If we want to truncate the message text, lets only truncate the first paragraph\n // and simply not render rest of the paragraphs.\n if (state.key === '0' || state.key === 0) {\n return (\n <Text key={state.key} numberOfLines={messageTextNumberOfLines} style={styles.paragraph}>\n {output(node.content, state)}\n </Text>\n );\n } else {\n return null;\n }\n }\n\n return (\n <Text key={state.key} style={styles.paragraph}>\n {output(node.content, state)}\n </Text>\n );\n };\n\n // take the @ mentions and turn them into markdown?\n // translate links\n const { mentioned_users } = message;\n const mentionedUsers = Array.isArray(mentioned_users)\n ? mentioned_users.reduce((acc, cur) => {\n const userName = cur.name || cur.id || '';\n if (userName) {\n acc += `${acc.length ? '|' : ''}@${userName.replace(\n /[.*+?^${}()|[\\]\\\\]/g,\n function (match) {\n return '\\\\' + match;\n },\n )}`;\n }\n\n return acc;\n }, '')\n : '';\n\n const regEx = new RegExp(`^\\\\B(${mentionedUsers})`, 'g');\n const mentionsMatchFunction: MatchFunction = (source) => regEx.exec(source);\n\n const mentionsReact: ReactNodeOutput = (node, output, { ...state }) => {\n /**removes the @ prefix of username */\n const userName = node.content[0]?.content?.substring(1);\n const onPress = (event: GestureResponderEvent) => {\n if (!preventPress && onPressParam) {\n onPressParam({\n additionalInfo: {\n user: mentioned_users?.find(\n (user: UserResponse<StreamChatGenerics>) => userName === user.name,\n ),\n },\n emitter: 'textMention',\n event,\n });\n }\n };\n\n const onLongPress = (event: GestureResponderEvent) => {\n if (!preventPress && onLongPressParam) {\n onLongPressParam({\n emitter: 'textMention',\n event,\n });\n }\n };\n\n return (\n <Text key={state.key} onLongPress={onLongPress} onPress={onPress} style={styles.mentions}>\n {Array.isArray(node.content)\n ? node.content.reduce((acc, current) => acc + current.content, '') || ''\n : output(node.content, state)}\n </Text>\n );\n };\n\n const listReact: ReactNodeOutput = (node, output, state) => (\n <ListOutput\n key={`list-${state.key}`}\n node={node}\n output={output}\n state={state}\n styles={styles}\n />\n );\n\n const customRules = {\n // do not render images, we will scrape them out of the message and show on attachment card component\n image: { match: () => null },\n link: { react: linkReact },\n list: { react: listReact },\n // Truncate long text content in the message overlay\n paragraph: messageTextNumberOfLines ? { react: paragraphTextReact } : {},\n // we have no react rendering support for reflinks\n reflink: { match: () => null },\n sublist: { react: listReact },\n ...(mentionedUsers\n ? {\n mentions: {\n match: mentionsMatchFunction,\n order: defaultRules.text.order - 0.5,\n parse: mentionsParseFunction,\n react: mentionsReact,\n },\n }\n : {}),\n };\n\n return (\n <Markdown\n key={`${JSON.stringify(mentioned_users)}-${onlyEmojis}-${\n messageOverlay ? JSON.stringify(markdownStyles) : undefined\n }-${JSON.stringify(colors)}`}\n onLink={onLink}\n rules={{\n ...customRules,\n ...markdownRules,\n }}\n styles={styles}\n >\n {markdownText}\n </Markdown>\n );\n};\n\nexport interface ListOutputProps {\n node: SingleASTNode;\n output: ReactOutput;\n state: State;\n styles?: Partial<MarkdownStyle>;\n}\n\n/**\n * For lists and sublists, the default behavior of the markdown library we use is\n * to always renumber any list, so all ordered lists start from 1.\n *\n * This custom rule overrides this behavior both for top level lists and sublists,\n * in order to start the numbering from the number of the first list item provided.\n */\nexport const ListOutput = ({ node, output, state, styles }: ListOutputProps) => {\n let isSublist = state.withinList;\n const parentTypes = ['text', 'paragraph', 'strong'];\n\n return (\n <View key={state.key} style={isSublist ? styles?.sublist : styles?.list}>\n {node.items.map((item: SingleASTNode, index: number) => {\n const indexAfterStart = node.start + index;\n\n if (item === null) {\n return (\n <ListRow key={index} style={styles?.listRow} testID='list-item'>\n <Bullet\n index={node.ordered && indexAfterStart}\n style={node.ordered ? styles?.listItemNumber : styles?.listItemBullet}\n />\n </ListRow>\n );\n }\n\n isSublist = item.length > 1 && item[1].type === 'list';\n const isSublistWithinText = parentTypes.includes((item[0] ?? {}).type) && isSublist;\n const style = isSublistWithinText ? { marginBottom: 0 } : {};\n\n return (\n <ListRow key={index} style={styles?.listRow} testID='list-item'>\n <Bullet\n index={node.ordered && indexAfterStart}\n style={node.ordered ? styles?.listItemNumber : styles?.listItemBullet}\n />\n <ListItem key={1} style={[styles?.listItemText, style]}>\n {output(item, state)}\n </ListItem>\n </ListRow>\n );\n })}\n </View>\n );\n};\n\ninterface BulletProps extends TextProps {\n index?: number;\n}\n\nconst Bullet = ({ index, style }: BulletProps) => (\n <Text key={0} style={style}>\n {index ? `${index}. ` : '\\u2022 '}\n </Text>\n);\n\nconst ListRow = ({ children, style }: PropsWithChildren<ViewProps>) => (\n <Text style={style}>{children}</Text>\n);\n\nconst ListItem = ({ children, style }: PropsWithChildren<TextProps>) => (\n <Text style={style}>{children}</Text>\n);\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_reactNativeMarkdownPackage","_simpleMarkdown","_generateMarkdownText","_this","_jsxFileName","defaultMarkdownStyles","inlineCode","fontSize","padding","paddingHorizontal","list","marginBottom","marginTop","listItemNumber","fontWeight","listItemText","flex","listRow","flexDirection","mentions","paragraph","paragraphCenter","paragraphWithImage","mentionsParseFunction","capture","parse","state","content","parseInline","renderText","params","colors","markdownRules","markdownStyles","message","messageOverlay","messageTextNumberOfLines","onLinkParams","onLink","onLongPressParam","onLongPress","onlyEmojis","onPressParam","onPress","preventPress","text","markdownText","generateMarkdownText","styles","_extends2","autolink","color","accent_blue","backgroundColor","white_smoke","borderColor","grey_gainsboro","accent_red","black","url","pattern","RegExp","test","Linking","canOpenURL","then","canOpenUrl","openURL","previousLink","linkReact","node","output","_ref","_objectDestructuringEmpty2","withinLink","target","event","additionalInfo","defaultHandler","emitter","createElement","Text","key","style","suppressHighlighting","__self","__source","fileName","lineNumber","columnNumber","paragraphTextReact","_ref2","undefined","numberOfLines","mentioned_users","mentionedUsers","Array","isArray","reduce","acc","cur","userName","name","id","length","replace","match","regEx","mentionsMatchFunction","source","exec","mentionsReact","_ref3","_node$content$","_node$content$$conten","substring","user","find","current","listReact","ListOutput","customRules","image","link","react","reflink","sublist","order","defaultRules","JSON","stringify","rules","exports","_ref4","isSublist","withinList","parentTypes","View","items","map","item","index","_item$","indexAfterStart","start","ListRow","testID","Bullet","ordered","listItemBullet","type","isSublistWithinText","includes","ListItem","_ref5","_ref6","children","_ref7"],"sources":["renderText.tsx"],"sourcesContent":["import React, { PropsWithChildren } from 'react';\nimport { GestureResponderEvent, Linking, Text, TextProps, View, ViewProps } from 'react-native';\n\n// @ts-expect-error\nimport Markdown from 'react-native-markdown-package';\n\nimport {\n DefaultRules,\n defaultRules,\n MatchFunction,\n ParseFunction,\n parseInline,\n ReactNodeOutput,\n ReactOutput,\n SingleASTNode,\n State,\n} from 'simple-markdown';\n\nimport type { UserResponse } from 'stream-chat';\n\nimport { generateMarkdownText } from './generateMarkdownText';\n\nimport type { MessageContextValue } from '../../../../contexts/messageContext/MessageContext';\nimport type { Colors, MarkdownStyle } from '../../../../contexts/themeContext/utils/theme';\nimport type { DefaultStreamChatGenerics } from '../../../../types/types';\nimport type { MessageType } from '../../../MessageList/hooks/useMessageList';\n\nconst defaultMarkdownStyles: MarkdownStyle = {\n inlineCode: {\n fontSize: 13,\n padding: 3,\n paddingHorizontal: 5,\n },\n list: {\n marginBottom: 8,\n marginTop: 8,\n },\n listItemNumber: {\n fontWeight: 'bold',\n },\n listItemText: {\n flex: 0,\n },\n listRow: {\n flexDirection: 'row',\n },\n mentions: {\n fontWeight: '700',\n },\n paragraph: {\n marginBottom: 8,\n marginTop: 8,\n },\n paragraphCenter: {\n marginBottom: 8,\n marginTop: 8,\n },\n paragraphWithImage: {\n marginBottom: 8,\n marginTop: 8,\n },\n};\n\nconst mentionsParseFunction: ParseFunction = (capture, parse, state) => ({\n content: parseInline(parse, capture[0], state),\n});\n\nexport type MarkdownRules = Partial<DefaultRules>;\n\nexport type RenderTextParams<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Partial<\n Pick<MessageContextValue<StreamChatGenerics>, 'onLongPress' | 'onPress' | 'preventPress'>\n> & {\n colors: typeof Colors;\n message: MessageType<StreamChatGenerics>;\n markdownRules?: MarkdownRules;\n markdownStyles?: MarkdownStyle;\n messageOverlay?: boolean;\n messageTextNumberOfLines?: number;\n onLink?: (url: string) => Promise<void>;\n onlyEmojis?: boolean;\n};\n\nexport const renderText = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n params: RenderTextParams<StreamChatGenerics>,\n) => {\n const {\n colors,\n markdownRules,\n markdownStyles,\n message,\n messageOverlay,\n messageTextNumberOfLines,\n onLink: onLinkParams,\n onLongPress: onLongPressParam,\n onlyEmojis,\n onPress: onPressParam,\n preventPress,\n } = params;\n const { text } = message;\n\n const markdownText = generateMarkdownText(text);\n\n const styles: MarkdownStyle = {\n ...defaultMarkdownStyles,\n ...markdownStyles,\n autolink: {\n ...defaultMarkdownStyles.autolink,\n color: colors.accent_blue,\n ...markdownStyles?.autolink,\n },\n inlineCode: {\n ...defaultMarkdownStyles.inlineCode,\n backgroundColor: colors.white_smoke,\n borderColor: colors.grey_gainsboro,\n color: colors.accent_red,\n ...markdownStyles?.inlineCode,\n },\n mentions: {\n ...defaultMarkdownStyles.mentions,\n color: colors.accent_blue,\n ...markdownStyles?.mentions,\n },\n text: {\n ...defaultMarkdownStyles.text,\n color: colors.black,\n ...markdownStyles?.text,\n },\n };\n\n const onLink = (url: string) => {\n const pattern = new RegExp(/^\\S+:\\/\\//);\n if (!pattern.test(url)) {\n url = 'http://' + url;\n }\n\n return onLinkParams\n ? onLinkParams(url)\n : Linking.canOpenURL(url).then((canOpenUrl) => canOpenUrl && Linking.openURL(url));\n };\n\n let previousLink: string | undefined;\n const linkReact: ReactNodeOutput = (node, output, { ...state }) => {\n let url: string;\n // Some long URLs with `&` separated parameters are trimmed and the url only until first param is taken.\n // This is done because of internal link been taken from the original URL in react-native-markdown-package. So, we check for `withinLink` and take the previous full URL.\n if (state?.withinLink && previousLink) {\n url = previousLink;\n } else {\n url = node.target;\n previousLink = node.target;\n }\n const onPress = (event: GestureResponderEvent) => {\n if (!preventPress && onPressParam) {\n onPressParam({\n additionalInfo: { url },\n defaultHandler: () => {\n onLink(url);\n },\n emitter: 'textLink',\n event,\n });\n }\n };\n\n const onLongPress = (event: GestureResponderEvent) => {\n if (!preventPress && onLongPressParam) {\n onLongPressParam({\n additionalInfo: { url },\n emitter: 'textLink',\n event,\n });\n }\n };\n\n return (\n <Text\n key={state.key}\n onLongPress={onLongPress}\n onPress={onPress}\n style={styles.autolink}\n suppressHighlighting={true}\n >\n {output(node.content, { ...state, withinLink: true })}\n </Text>\n );\n };\n\n const paragraphTextReact: ReactNodeOutput = (node, output, { ...state }) => {\n if (messageTextNumberOfLines !== undefined) {\n // If we want to truncate the message text, lets only truncate the first paragraph\n // and simply not render rest of the paragraphs.\n if (state.key === '0' || state.key === 0) {\n return (\n <Text key={state.key} numberOfLines={messageTextNumberOfLines} style={styles.paragraph}>\n {output(node.content, state)}\n </Text>\n );\n } else {\n return null;\n }\n }\n\n return (\n <Text key={state.key} style={styles.paragraph}>\n {output(node.content, state)}\n </Text>\n );\n };\n\n // take the @ mentions and turn them into markdown?\n // translate links\n const { mentioned_users } = message;\n const mentionedUsers = Array.isArray(mentioned_users)\n ? mentioned_users.reduce((acc, cur) => {\n const userName = cur.name || cur.id || '';\n if (userName) {\n acc += `${acc.length ? '|' : ''}@${userName.replace(\n /[.*+?^${}()|[\\]\\\\]/g,\n function (match) {\n return '\\\\' + match;\n },\n )}`;\n }\n\n return acc;\n }, '')\n : '';\n\n const regEx = new RegExp(`^\\\\B(${mentionedUsers})`, 'g');\n const mentionsMatchFunction: MatchFunction = (source) => regEx.exec(source);\n\n const mentionsReact: ReactNodeOutput = (node, output, { ...state }) => {\n /**removes the @ prefix of username */\n const userName = node.content[0]?.content?.substring(1);\n const onPress = (event: GestureResponderEvent) => {\n if (!preventPress && onPressParam) {\n onPressParam({\n additionalInfo: {\n user: mentioned_users?.find(\n (user: UserResponse<StreamChatGenerics>) => userName === user.name,\n ),\n },\n emitter: 'textMention',\n event,\n });\n }\n };\n\n const onLongPress = (event: GestureResponderEvent) => {\n if (!preventPress && onLongPressParam) {\n onLongPressParam({\n emitter: 'textMention',\n event,\n });\n }\n };\n\n return (\n <Text key={state.key} onLongPress={onLongPress} onPress={onPress} style={styles.mentions}>\n {Array.isArray(node.content)\n ? node.content.reduce((acc, current) => acc + current.content, '') || ''\n : output(node.content, state)}\n </Text>\n );\n };\n\n const listReact: ReactNodeOutput = (node, output, state) => (\n <ListOutput\n key={`list-${state.key}`}\n node={node}\n output={output}\n state={state}\n styles={styles}\n />\n );\n\n const customRules = {\n // do not render images, we will scrape them out of the message and show on attachment card component\n image: { match: () => null },\n link: { react: linkReact },\n list: { react: listReact },\n // Truncate long text content in the message overlay\n paragraph: messageTextNumberOfLines ? { react: paragraphTextReact } : {},\n // we have no react rendering support for reflinks\n reflink: { match: () => null },\n sublist: { react: listReact },\n ...(mentionedUsers\n ? {\n mentions: {\n match: mentionsMatchFunction,\n order: defaultRules.text.order - 0.5,\n parse: mentionsParseFunction,\n react: mentionsReact,\n },\n }\n : {}),\n };\n\n return (\n <Markdown\n key={`${JSON.stringify(mentioned_users)}-${onlyEmojis}-${\n messageOverlay ? JSON.stringify(markdownStyles) : undefined\n }-${JSON.stringify(colors)}`}\n onLink={onLink}\n rules={{\n ...customRules,\n ...markdownRules,\n }}\n styles={styles}\n >\n {markdownText}\n </Markdown>\n );\n};\n\nexport interface ListOutputProps {\n node: SingleASTNode;\n output: ReactOutput;\n state: State;\n styles?: Partial<MarkdownStyle>;\n}\n\n/**\n * For lists and sublists, the default behavior of the markdown library we use is\n * to always renumber any list, so all ordered lists start from 1.\n *\n * This custom rule overrides this behavior both for top level lists and sublists,\n * in order to start the numbering from the number of the first list item provided.\n */\nexport const ListOutput = ({ node, output, state, styles }: ListOutputProps) => {\n let isSublist = state.withinList;\n const parentTypes = ['text', 'paragraph', 'strong'];\n\n return (\n <View key={state.key} style={isSublist ? styles?.sublist : styles?.list}>\n {node.items.map((item: SingleASTNode, index: number) => {\n const indexAfterStart = node.start + index;\n\n if (item === null) {\n return (\n <ListRow key={index} style={styles?.listRow} testID='list-item'>\n <Bullet\n index={node.ordered && indexAfterStart}\n style={node.ordered ? styles?.listItemNumber : styles?.listItemBullet}\n />\n </ListRow>\n );\n }\n\n isSublist = item.length > 1 && item[1].type === 'list';\n const isSublistWithinText = parentTypes.includes((item[0] ?? {}).type) && isSublist;\n const style = isSublistWithinText ? { marginBottom: 0 } : {};\n\n return (\n <ListRow key={index} style={styles?.listRow} testID='list-item'>\n <Bullet\n index={node.ordered && indexAfterStart}\n style={node.ordered ? styles?.listItemNumber : styles?.listItemBullet}\n />\n <ListItem key={1} style={[styles?.listItemText, style]}>\n {output(item, state)}\n </ListItem>\n </ListRow>\n );\n })}\n </View>\n );\n};\n\ninterface BulletProps extends TextProps {\n index?: number;\n}\n\nconst Bullet = ({ index, style }: BulletProps) => (\n <Text key={0} style={style}>\n {index ? `${index}. ` : '\\u2022 '}\n </Text>\n);\n\nconst ListRow = ({ children, style }: PropsWithChildren<ViewProps>) => (\n <Text style={style}>{children}</Text>\n);\n\nconst ListItem = ({ children, style }: PropsWithChildren<TextProps>) => (\n <Text style={style}>{children}</Text>\n);\n"],"mappings":"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"}
|
|
@@ -8,6 +8,7 @@ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")
|
|
|
8
8
|
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
9
9
|
var _react = _interopRequireWildcard(require("react"));
|
|
10
10
|
var _reactNative = require("react-native");
|
|
11
|
+
var _dayjs = _interopRequireDefault(require("dayjs"));
|
|
11
12
|
var _UploadProgressIndicator = require("./UploadProgressIndicator");
|
|
12
13
|
var _contexts = require("../../contexts");
|
|
13
14
|
var _MessageInputContext = require("../../contexts/messageInputContext/MessageInputContext");
|
|
@@ -99,6 +100,15 @@ var UnsupportedFileTypeOrFileSizeIndicator = function UnsupportedFileTypeOrFileS
|
|
|
99
100
|
grey = _useTheme$theme$color.grey,
|
|
100
101
|
grey_dark = _useTheme$theme$color.grey_dark,
|
|
101
102
|
fileSizeText = _useTheme$theme.messageInput.fileUploadPreview.fileSizeText;
|
|
103
|
+
var ONE_HOUR_IN_SECONDS = 3600;
|
|
104
|
+
var durationLabel = '00:00';
|
|
105
|
+
var videoDuration = item.file.duration;
|
|
106
|
+
if (videoDuration) {
|
|
107
|
+
var isDurationLongerThanHour = videoDuration / ONE_HOUR_IN_SECONDS >= 1;
|
|
108
|
+
var formattedDurationParam = isDurationLongerThanHour ? 'HH:mm:ss' : 'mm:ss';
|
|
109
|
+
var formattedVideoDuration = _dayjs["default"].duration(videoDuration, 'second').format(formattedDurationParam);
|
|
110
|
+
durationLabel = formattedVideoDuration;
|
|
111
|
+
}
|
|
102
112
|
var _useTranslationContex = (0, _TranslationContext.useTranslationContext)(),
|
|
103
113
|
t = _useTranslationContex.t;
|
|
104
114
|
return indicatorType === _utils.ProgressIndicatorTypes.NOT_SUPPORTED ? _react["default"].createElement(_reactNative.View, {
|
|
@@ -106,7 +116,7 @@ var UnsupportedFileTypeOrFileSizeIndicator = function UnsupportedFileTypeOrFileS
|
|
|
106
116
|
__self: _this,
|
|
107
117
|
__source: {
|
|
108
118
|
fileName: _jsxFileName,
|
|
109
|
-
lineNumber:
|
|
119
|
+
lineNumber: 121,
|
|
110
120
|
columnNumber: 5
|
|
111
121
|
}
|
|
112
122
|
}, _react["default"].createElement(_Warning.Warning, {
|
|
@@ -117,7 +127,7 @@ var UnsupportedFileTypeOrFileSizeIndicator = function UnsupportedFileTypeOrFileS
|
|
|
117
127
|
__self: _this,
|
|
118
128
|
__source: {
|
|
119
129
|
fileName: _jsxFileName,
|
|
120
|
-
lineNumber:
|
|
130
|
+
lineNumber: 122,
|
|
121
131
|
columnNumber: 7
|
|
122
132
|
}
|
|
123
133
|
}), _react["default"].createElement(_reactNative.Text, {
|
|
@@ -127,7 +137,7 @@ var UnsupportedFileTypeOrFileSizeIndicator = function UnsupportedFileTypeOrFileS
|
|
|
127
137
|
__self: _this,
|
|
128
138
|
__source: {
|
|
129
139
|
fileName: _jsxFileName,
|
|
130
|
-
lineNumber:
|
|
140
|
+
lineNumber: 128,
|
|
131
141
|
columnNumber: 7
|
|
132
142
|
}
|
|
133
143
|
}, t('File type not supported'))) : _react["default"].createElement(_WritingDirectionAwareText.WritingDirectionAwareText, {
|
|
@@ -137,10 +147,10 @@ var UnsupportedFileTypeOrFileSizeIndicator = function UnsupportedFileTypeOrFileS
|
|
|
137
147
|
__self: _this,
|
|
138
148
|
__source: {
|
|
139
149
|
fileName: _jsxFileName,
|
|
140
|
-
lineNumber:
|
|
150
|
+
lineNumber: 133,
|
|
141
151
|
columnNumber: 5
|
|
142
152
|
}
|
|
143
|
-
},
|
|
153
|
+
}, videoDuration ? durationLabel : (0, _FileAttachment.getFileSizeDisplayText)(item.file.size));
|
|
144
154
|
};
|
|
145
155
|
var FileUploadPreviewWithContext = function FileUploadPreviewWithContext(props) {
|
|
146
156
|
var AudioAttachment = props.AudioAttachment,
|
|
@@ -225,7 +235,7 @@ var FileUploadPreviewWithContext = function FileUploadPreviewWithContext(props)
|
|
|
225
235
|
__self: _this,
|
|
226
236
|
__source: {
|
|
227
237
|
fileName: _jsxFileName,
|
|
228
|
-
lineNumber:
|
|
238
|
+
lineNumber: 238,
|
|
229
239
|
columnNumber: 9
|
|
230
240
|
}
|
|
231
241
|
}, (_item$file$mimeType = item.file.mimeType) != null && _item$file$mimeType.startsWith('audio/') && (0, _native.isAudioPackageAvailable)() ? _react["default"].createElement(_reactNative.View, {
|
|
@@ -235,7 +245,7 @@ var FileUploadPreviewWithContext = function FileUploadPreviewWithContext(props)
|
|
|
235
245
|
__self: _this,
|
|
236
246
|
__source: {
|
|
237
247
|
fileName: _jsxFileName,
|
|
238
|
-
lineNumber:
|
|
248
|
+
lineNumber: 246,
|
|
239
249
|
columnNumber: 13
|
|
240
250
|
}
|
|
241
251
|
}, _react["default"].createElement(_reactNative.View, {
|
|
@@ -250,7 +260,7 @@ var FileUploadPreviewWithContext = function FileUploadPreviewWithContext(props)
|
|
|
250
260
|
__self: _this,
|
|
251
261
|
__source: {
|
|
252
262
|
fileName: _jsxFileName,
|
|
253
|
-
lineNumber:
|
|
263
|
+
lineNumber: 252,
|
|
254
264
|
columnNumber: 15
|
|
255
265
|
}
|
|
256
266
|
}, _react["default"].createElement(AudioAttachment, {
|
|
@@ -262,7 +272,7 @@ var FileUploadPreviewWithContext = function FileUploadPreviewWithContext(props)
|
|
|
262
272
|
__self: _this,
|
|
263
273
|
__source: {
|
|
264
274
|
fileName: _jsxFileName,
|
|
265
|
-
lineNumber:
|
|
275
|
+
lineNumber: 269,
|
|
266
276
|
columnNumber: 17
|
|
267
277
|
}
|
|
268
278
|
}))) : _react["default"].createElement(_reactNative.View, {
|
|
@@ -275,7 +285,7 @@ var FileUploadPreviewWithContext = function FileUploadPreviewWithContext(props)
|
|
|
275
285
|
__self: _this,
|
|
276
286
|
__source: {
|
|
277
287
|
fileName: _jsxFileName,
|
|
278
|
-
lineNumber:
|
|
288
|
+
lineNumber: 279,
|
|
279
289
|
columnNumber: 13
|
|
280
290
|
}
|
|
281
291
|
}, _react["default"].createElement(_reactNative.View, {
|
|
@@ -283,7 +293,7 @@ var FileUploadPreviewWithContext = function FileUploadPreviewWithContext(props)
|
|
|
283
293
|
__self: _this,
|
|
284
294
|
__source: {
|
|
285
295
|
fileName: _jsxFileName,
|
|
286
|
-
lineNumber:
|
|
296
|
+
lineNumber: 294,
|
|
287
297
|
columnNumber: 15
|
|
288
298
|
}
|
|
289
299
|
}, _react["default"].createElement(_reactNative.View, {
|
|
@@ -291,7 +301,7 @@ var FileUploadPreviewWithContext = function FileUploadPreviewWithContext(props)
|
|
|
291
301
|
__self: _this,
|
|
292
302
|
__source: {
|
|
293
303
|
fileName: _jsxFileName,
|
|
294
|
-
lineNumber:
|
|
304
|
+
lineNumber: 295,
|
|
295
305
|
columnNumber: 17
|
|
296
306
|
}
|
|
297
307
|
}, _react["default"].createElement(FileAttachmentIcon, {
|
|
@@ -299,7 +309,7 @@ var FileUploadPreviewWithContext = function FileUploadPreviewWithContext(props)
|
|
|
299
309
|
__self: _this,
|
|
300
310
|
__source: {
|
|
301
311
|
fileName: _jsxFileName,
|
|
302
|
-
lineNumber:
|
|
312
|
+
lineNumber: 296,
|
|
303
313
|
columnNumber: 19
|
|
304
314
|
}
|
|
305
315
|
})), _react["default"].createElement(_reactNative.View, {
|
|
@@ -307,7 +317,7 @@ var FileUploadPreviewWithContext = function FileUploadPreviewWithContext(props)
|
|
|
307
317
|
__self: _this,
|
|
308
318
|
__source: {
|
|
309
319
|
fileName: _jsxFileName,
|
|
310
|
-
lineNumber:
|
|
320
|
+
lineNumber: 298,
|
|
311
321
|
columnNumber: 17
|
|
312
322
|
}
|
|
313
323
|
}, _react["default"].createElement(_reactNative.Text, {
|
|
@@ -323,7 +333,7 @@ var FileUploadPreviewWithContext = function FileUploadPreviewWithContext(props)
|
|
|
323
333
|
__self: _this,
|
|
324
334
|
__source: {
|
|
325
335
|
fileName: _jsxFileName,
|
|
326
|
-
lineNumber:
|
|
336
|
+
lineNumber: 299,
|
|
327
337
|
columnNumber: 19
|
|
328
338
|
}
|
|
329
339
|
}, item.file.name.slice(0, 12) + '...' + item.file.name.slice(lastIndexOfDot)), indicatorType !== null && _react["default"].createElement(UnsupportedFileTypeOrFileSizeIndicator, {
|
|
@@ -332,7 +342,7 @@ var FileUploadPreviewWithContext = function FileUploadPreviewWithContext(props)
|
|
|
332
342
|
__self: _this,
|
|
333
343
|
__source: {
|
|
334
344
|
fileName: _jsxFileName,
|
|
335
|
-
lineNumber:
|
|
345
|
+
lineNumber: 319,
|
|
336
346
|
columnNumber: 21
|
|
337
347
|
}
|
|
338
348
|
})))), _react["default"].createElement(_reactNative.TouchableOpacity, {
|
|
@@ -346,7 +356,7 @@ var FileUploadPreviewWithContext = function FileUploadPreviewWithContext(props)
|
|
|
346
356
|
__self: _this,
|
|
347
357
|
__source: {
|
|
348
358
|
fileName: _jsxFileName,
|
|
349
|
-
lineNumber:
|
|
359
|
+
lineNumber: 328,
|
|
350
360
|
columnNumber: 11
|
|
351
361
|
}
|
|
352
362
|
}, _react["default"].createElement(_Close.Close, {
|
|
@@ -354,7 +364,7 @@ var FileUploadPreviewWithContext = function FileUploadPreviewWithContext(props)
|
|
|
354
364
|
__self: _this,
|
|
355
365
|
__source: {
|
|
356
366
|
fileName: _jsxFileName,
|
|
357
|
-
lineNumber:
|
|
367
|
+
lineNumber: 335,
|
|
358
368
|
columnNumber: 13
|
|
359
369
|
}
|
|
360
370
|
}))));
|
|
@@ -390,7 +400,7 @@ var FileUploadPreviewWithContext = function FileUploadPreviewWithContext(props)
|
|
|
390
400
|
__self: _this,
|
|
391
401
|
__source: {
|
|
392
402
|
fileName: _jsxFileName,
|
|
393
|
-
lineNumber:
|
|
403
|
+
lineNumber: 351,
|
|
394
404
|
columnNumber: 5
|
|
395
405
|
}
|
|
396
406
|
}) : null;
|
|
@@ -426,7 +436,7 @@ var FileUploadPreview = function FileUploadPreview(props) {
|
|
|
426
436
|
__self: _this,
|
|
427
437
|
__source: {
|
|
428
438
|
fileName: _jsxFileName,
|
|
429
|
-
lineNumber:
|
|
439
|
+
lineNumber: 416,
|
|
430
440
|
columnNumber: 5
|
|
431
441
|
}
|
|
432
442
|
}));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_UploadProgressIndicator","_contexts","_MessageInputContext","_MessagesContext","_ThemeContext","_TranslationContext","_Close","_Warning","_native","_utils","_FileAttachment","_WritingDirectionAwareText","_this","_jsxFileName","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","_typeof","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","FILE_PREVIEW_HEIGHT","WARNING_ICON_SIZE","styles","StyleSheet","create","dismiss","borderRadius","height","position","right","top","width","fileContainer","borderWidth","flexDirection","justifyContent","marginBottom","paddingLeft","paddingRight","fileContentContainer","fileIcon","alignItems","alignSelf","filenameText","fontSize","fontWeight","paddingHorizontal","fileSizeText","fileTextContainer","flatList","maxHeight","overlay","marginLeft","marginRight","marginTop","unsupportedFile","unsupportedFileText","marginHorizontal","warningIconStyle","UnsupportedFileTypeOrFileSizeIndicator","_ref","indicatorType","item","_useTheme","useTheme","_useTheme$theme","theme","_useTheme$theme$color","colors","accent_red","grey","grey_dark","messageInput","fileUploadPreview","_useTranslationContex","useTranslationContext","t","ProgressIndicatorTypes","NOT_SUPPORTED","createElement","View","style","__self","__source","fileName","lineNumber","columnNumber","Warning","pathFill","Text","color","WritingDirectionAwareText","file","duration","getFileSizeDisplayText","size","FileUploadPreviewWithContext","props","AudioAttachment","enableOfflineSupport","FileAttachmentIcon","fileUploads","removeFile","setFileUploads","uploadFile","flatListRef","useRef","_useState","useState","_useState2","_slicedToArray2","flatListWidth","setFlatListWidth","onLoad","index","prevFileUploads","map","fileUpload","_extends2","id","onProgress","currentTime","hasEnd","progress","onPlayPause","pausedStatus","paused","_useTheme2","_useTheme2$theme","_useTheme2$theme$colo","black","grey_gainsboro","grey_whisper","white","_useTheme2$theme$mess","audioAttachmentFileContainer","renderItem","_ref2","_item$file$mimeType","getIndicatorTypeForFileState","state","lastIndexOfDot","name","lastIndexOf","Fragment","UploadProgressIndicator","action","newFile","type","mimeType","startsWith","isAudioPackageAvailable","FileState","UPLOADED","length","backgroundColor","borderColor","testID","numberOfLines","I18nManager","isRTL","writingDirection","slice","TouchableOpacity","onPress","Close","fileUploadsLength","useEffect","current","setTimeout","_flatListRef$current","scrollToEnd","FlatList","data","getItemLayout","_","offset","keyExtractor","onLayout","_ref3","nativeEvent","layout","ref","areEqual","prevProps","nextProps","nextFileUploads","every","prevFileUpload","MemoizedFileUploadPreview","React","memo","FileUploadPreview","_useChatContext","useChatContext","_useMessageInputConte","useMessageInputContext","_useMessagesContext","useMessagesContext","exports","displayName"],"sources":["FileUploadPreview.tsx"],"sourcesContent":["import React, { useEffect, useRef, useState } from 'react';\nimport { FlatList, I18nManager, StyleSheet, Text, TouchableOpacity, View } from 'react-native';\n\nimport { UploadProgressIndicator } from './UploadProgressIndicator';\n\nimport { ChatContextValue, useChatContext } from '../../contexts';\nimport {\n FileUpload,\n MessageInputContextValue,\n useMessageInputContext,\n} from '../../contexts/messageInputContext/MessageInputContext';\nimport {\n MessagesContextValue,\n useMessagesContext,\n} from '../../contexts/messagesContext/MessagesContext';\nimport { useTheme } from '../../contexts/themeContext/ThemeContext';\nimport { useTranslationContext } from '../../contexts/translationContext/TranslationContext';\nimport { Close } from '../../icons/Close';\nimport { Warning } from '../../icons/Warning';\nimport { isAudioPackageAvailable } from '../../native';\nimport type { DefaultStreamChatGenerics } from '../../types/types';\nimport { FileState, getIndicatorTypeForFileState, ProgressIndicatorTypes } from '../../utils/utils';\nimport { getFileSizeDisplayText } from '../Attachment/FileAttachment';\nimport { WritingDirectionAwareText } from '../RTLComponents/WritingDirectionAwareText';\n\nconst FILE_PREVIEW_HEIGHT = 60;\nconst WARNING_ICON_SIZE = 16;\n\nconst styles = StyleSheet.create({\n dismiss: {\n borderRadius: 24,\n height: 24,\n position: 'absolute',\n right: 8,\n top: 8,\n width: 24,\n },\n fileContainer: {\n borderRadius: 12,\n borderWidth: 1,\n flexDirection: 'row',\n height: FILE_PREVIEW_HEIGHT,\n justifyContent: 'space-between',\n marginBottom: 8,\n paddingLeft: 8,\n paddingRight: 8,\n },\n fileContentContainer: { flexDirection: 'row' },\n fileIcon: {\n alignItems: 'center',\n alignSelf: 'center',\n justifyContent: 'center',\n },\n filenameText: {\n fontSize: 14,\n fontWeight: 'bold',\n paddingHorizontal: 10,\n },\n fileSizeText: {\n fontSize: 12,\n paddingHorizontal: 10,\n },\n fileTextContainer: {\n height: '100%',\n justifyContent: 'space-around',\n },\n flatList: { marginBottom: 12, maxHeight: FILE_PREVIEW_HEIGHT * 2.5 + 16 },\n overlay: {\n borderRadius: 12,\n marginLeft: 8,\n marginRight: 8,\n marginTop: 2,\n },\n unsupportedFile: {\n flexDirection: 'row',\n paddingLeft: 10,\n },\n unsupportedFileText: {\n fontSize: 12,\n marginHorizontal: 4,\n },\n warningIconStyle: {\n borderRadius: 24,\n marginTop: 2,\n },\n});\n\nconst UnsupportedFileTypeOrFileSizeIndicator = ({\n indicatorType,\n item,\n}: {\n indicatorType: typeof ProgressIndicatorTypes[keyof typeof ProgressIndicatorTypes];\n item: FileUpload;\n}) => {\n const {\n theme: {\n colors: { accent_red, grey, grey_dark },\n messageInput: {\n fileUploadPreview: { fileSizeText },\n },\n },\n } = useTheme();\n\n const { t } = useTranslationContext();\n\n return indicatorType === ProgressIndicatorTypes.NOT_SUPPORTED ? (\n <View style={styles.unsupportedFile}>\n <Warning\n height={WARNING_ICON_SIZE}\n pathFill={accent_red}\n style={styles.warningIconStyle}\n width={WARNING_ICON_SIZE}\n />\n <Text style={[styles.unsupportedFileText, { color: grey_dark }]}>\n {t('File type not supported')}\n </Text>\n </View>\n ) : (\n <WritingDirectionAwareText style={[styles.fileSizeText, { color: grey }, fileSizeText]}>\n {item.file.duration || getFileSizeDisplayText(item.file.size)}\n </WritingDirectionAwareText>\n );\n};\n\ntype FileUploadPreviewPropsWithContext<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Pick<\n MessageInputContextValue<StreamChatGenerics>,\n 'fileUploads' | 'removeFile' | 'uploadFile' | 'setFileUploads'\n> &\n Pick<MessagesContextValue<StreamChatGenerics>, 'AudioAttachment' | 'FileAttachmentIcon'> &\n Pick<ChatContextValue<StreamChatGenerics>, 'enableOfflineSupport'>;\n\nconst FileUploadPreviewWithContext = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: FileUploadPreviewPropsWithContext<StreamChatGenerics>,\n) => {\n const {\n AudioAttachment,\n enableOfflineSupport,\n FileAttachmentIcon,\n fileUploads,\n removeFile,\n setFileUploads,\n uploadFile,\n } = props;\n\n const flatListRef = useRef<FlatList<FileUpload> | null>(null);\n const [flatListWidth, setFlatListWidth] = useState(0);\n\n // Handler triggered when an audio is loaded in the message input. The initial state is defined for the audio here and the duration is set.\n const onLoad = (index: string, duration: number) => {\n setFileUploads((prevFileUploads) =>\n prevFileUploads.map((fileUpload) => ({\n ...fileUpload,\n duration: fileUpload.id === index ? duration : fileUpload.duration,\n })),\n );\n };\n\n // The handler which is triggered when the audio progresses/ the thumb is dragged in the progress control. The progressed duration is set here.\n const onProgress = (index: string, currentTime?: number, hasEnd?: boolean) => {\n setFileUploads((prevFileUploads) =>\n prevFileUploads.map((fileUpload) => ({\n ...fileUpload,\n progress:\n fileUpload.id === index\n ? hasEnd\n ? 1\n : currentTime\n ? currentTime / (fileUpload.duration as number)\n : 0\n : fileUpload.progress,\n })),\n );\n };\n\n // The handler which controls or sets the paused/played state of the audio.\n const onPlayPause = (index: string, pausedStatus?: boolean) => {\n if (pausedStatus === false) {\n // If the status is false we set the audio with the index as playing and the others as paused.\n setFileUploads((prevFileUploads) =>\n prevFileUploads.map((fileUpload) => ({\n ...fileUpload,\n paused: fileUpload.id !== index,\n })),\n );\n } else {\n // If the status is true we simply set all the audio's paused state as true.\n setFileUploads((prevFileUploads) =>\n prevFileUploads.map((fileUpload) => ({\n ...fileUpload,\n paused: true,\n })),\n );\n }\n };\n\n const {\n theme: {\n colors: { black, grey_dark, grey_gainsboro, grey_whisper, white },\n messageInput: {\n fileUploadPreview: {\n audioAttachmentFileContainer,\n dismiss,\n fileContainer,\n fileContentContainer,\n filenameText,\n fileTextContainer,\n flatList,\n },\n },\n },\n } = useTheme();\n\n const renderItem = ({ index, item }: { index: number; item: FileUpload }) => {\n const indicatorType = getIndicatorTypeForFileState(item.state, enableOfflineSupport);\n\n const lastIndexOfDot = item.file.name.lastIndexOf('.');\n\n return (\n <>\n <UploadProgressIndicator\n action={() => {\n uploadFile({ newFile: item });\n }}\n style={styles.overlay}\n type={indicatorType}\n >\n {item.file.mimeType?.startsWith('audio/') && isAudioPackageAvailable() ? (\n <View\n style={[\n { marginBottom: item.state === FileState.UPLOADED ? 8 : 0 },\n audioAttachmentFileContainer,\n ]}\n >\n <View\n style={[\n styles.fileContainer,\n index === fileUploads.length - 1\n ? {\n marginBottom: 0,\n }\n : {},\n {\n backgroundColor: white,\n borderColor: grey_whisper,\n width: -16,\n },\n fileContainer,\n ]}\n testID='audio-attachment-upload-preview'\n >\n <AudioAttachment\n item={item}\n onLoad={onLoad}\n onPlayPause={onPlayPause}\n onProgress={onProgress}\n testID='audio-attachment-upload-preview'\n />\n </View>\n </View>\n ) : (\n <View\n style={[\n styles.fileContainer,\n index === fileUploads.length - 1\n ? {\n marginBottom: 0,\n }\n : {},\n {\n borderColor: grey_whisper,\n width: flatListWidth - 16,\n },\n fileContainer,\n ]}\n >\n <View style={[styles.fileContentContainer, fileContentContainer]}>\n <View style={styles.fileIcon}>\n <FileAttachmentIcon mimeType={item.file.mimeType} />\n </View>\n <View style={[styles.fileTextContainer, fileTextContainer]}>\n <Text\n numberOfLines={1}\n style={[\n styles.filenameText,\n {\n color: black,\n width:\n flatListWidth -\n 16 - // 16 = horizontal padding\n 40 - // 40 = file icon size\n 24 - // 24 = close icon size\n 24, // 24 = internal padding\n },\n I18nManager.isRTL ? { writingDirection: 'rtl' } : { writingDirection: 'ltr' },\n filenameText,\n ]}\n >\n {item.file.name.slice(0, 12) + '...' + item.file.name.slice(lastIndexOfDot)}\n </Text>\n {indicatorType !== null && (\n <UnsupportedFileTypeOrFileSizeIndicator\n indicatorType={indicatorType}\n item={item}\n />\n )}\n </View>\n </View>\n </View>\n )}\n <TouchableOpacity\n onPress={() => {\n removeFile(item.id);\n }}\n style={[styles.dismiss, { backgroundColor: grey_gainsboro }, dismiss]}\n testID='remove-file-upload-preview'\n >\n <Close pathFill={grey_dark} />\n </TouchableOpacity>\n </UploadProgressIndicator>\n </>\n );\n };\n\n const fileUploadsLength = fileUploads.length;\n\n useEffect(() => {\n if (fileUploadsLength && flatListRef.current) {\n setTimeout(() => flatListRef.current?.scrollToEnd(), 1);\n }\n }, [fileUploadsLength]);\n\n return fileUploadsLength ? (\n <FlatList\n data={fileUploads}\n getItemLayout={(_, index) => ({\n index,\n length: FILE_PREVIEW_HEIGHT + 8,\n offset: (FILE_PREVIEW_HEIGHT + 8) * index,\n })}\n keyExtractor={(item) => `${item.id}`}\n onLayout={({\n nativeEvent: {\n layout: { width },\n },\n }) => {\n setFlatListWidth(width);\n }}\n ref={flatListRef}\n renderItem={renderItem}\n style={[styles.flatList, flatList]}\n />\n ) : null;\n};\n\nconst areEqual = <StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>(\n prevProps: FileUploadPreviewPropsWithContext<StreamChatGenerics>,\n nextProps: FileUploadPreviewPropsWithContext<StreamChatGenerics>,\n) => {\n const { fileUploads: prevFileUploads } = prevProps;\n const { fileUploads: nextFileUploads } = nextProps;\n\n return (\n prevFileUploads.length === nextFileUploads.length &&\n prevFileUploads.every(\n (prevFileUpload, index) =>\n prevFileUpload.state === nextFileUploads[index].state &&\n prevFileUpload.paused === nextFileUploads[index].paused &&\n prevFileUpload.progress === nextFileUploads[index].progress &&\n prevFileUpload.duration === nextFileUploads[index].duration,\n )\n );\n};\n\nconst MemoizedFileUploadPreview = React.memo(\n FileUploadPreviewWithContext,\n areEqual,\n) as typeof FileUploadPreviewWithContext;\n\nexport type FileUploadPreviewProps<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Partial<FileUploadPreviewPropsWithContext<StreamChatGenerics>>;\n\n/**\n * FileUploadPreview\n * UI Component to preview the files set for upload\n */\nexport const FileUploadPreview = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: FileUploadPreviewProps<StreamChatGenerics>,\n) => {\n const { enableOfflineSupport } = useChatContext<StreamChatGenerics>();\n const { fileUploads, removeFile, setFileUploads, uploadFile } =\n useMessageInputContext<StreamChatGenerics>();\n const { AudioAttachment, FileAttachmentIcon } = useMessagesContext<StreamChatGenerics>();\n\n return (\n <MemoizedFileUploadPreview\n {...{\n AudioAttachment,\n FileAttachmentIcon,\n fileUploads,\n removeFile,\n setFileUploads,\n uploadFile,\n }}\n {...{ enableOfflineSupport }}\n {...props}\n />\n );\n};\n\nFileUploadPreview.displayName = 'FileUploadPreview{messageInput{fileUploadPreview}}';\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_dayjs","_interopRequireDefault","_UploadProgressIndicator","_contexts","_MessageInputContext","_MessagesContext","_ThemeContext","_TranslationContext","_Close","_Warning","_native","_utils","_FileAttachment","_WritingDirectionAwareText","_this","_jsxFileName","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","_typeof","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","FILE_PREVIEW_HEIGHT","WARNING_ICON_SIZE","styles","StyleSheet","create","dismiss","borderRadius","height","position","right","top","width","fileContainer","borderWidth","flexDirection","justifyContent","marginBottom","paddingLeft","paddingRight","fileContentContainer","fileIcon","alignItems","alignSelf","filenameText","fontSize","fontWeight","paddingHorizontal","fileSizeText","fileTextContainer","flatList","maxHeight","overlay","marginLeft","marginRight","marginTop","unsupportedFile","unsupportedFileText","marginHorizontal","warningIconStyle","UnsupportedFileTypeOrFileSizeIndicator","_ref","indicatorType","item","_useTheme","useTheme","_useTheme$theme","theme","_useTheme$theme$color","colors","accent_red","grey","grey_dark","messageInput","fileUploadPreview","ONE_HOUR_IN_SECONDS","durationLabel","videoDuration","file","duration","isDurationLongerThanHour","formattedDurationParam","formattedVideoDuration","dayjs","format","_useTranslationContex","useTranslationContext","t","ProgressIndicatorTypes","NOT_SUPPORTED","createElement","View","style","__self","__source","fileName","lineNumber","columnNumber","Warning","pathFill","Text","color","WritingDirectionAwareText","getFileSizeDisplayText","size","FileUploadPreviewWithContext","props","AudioAttachment","enableOfflineSupport","FileAttachmentIcon","fileUploads","removeFile","setFileUploads","uploadFile","flatListRef","useRef","_useState","useState","_useState2","_slicedToArray2","flatListWidth","setFlatListWidth","onLoad","index","prevFileUploads","map","fileUpload","_extends2","id","onProgress","currentTime","hasEnd","progress","onPlayPause","pausedStatus","paused","_useTheme2","_useTheme2$theme","_useTheme2$theme$colo","black","grey_gainsboro","grey_whisper","white","_useTheme2$theme$mess","audioAttachmentFileContainer","renderItem","_ref2","_item$file$mimeType","getIndicatorTypeForFileState","state","lastIndexOfDot","name","lastIndexOf","Fragment","UploadProgressIndicator","action","newFile","type","mimeType","startsWith","isAudioPackageAvailable","FileState","UPLOADED","length","backgroundColor","borderColor","testID","numberOfLines","I18nManager","isRTL","writingDirection","slice","TouchableOpacity","onPress","Close","fileUploadsLength","useEffect","current","setTimeout","_flatListRef$current","scrollToEnd","FlatList","data","getItemLayout","_","offset","keyExtractor","onLayout","_ref3","nativeEvent","layout","ref","areEqual","prevProps","nextProps","nextFileUploads","every","prevFileUpload","MemoizedFileUploadPreview","React","memo","FileUploadPreview","_useChatContext","useChatContext","_useMessageInputConte","useMessageInputContext","_useMessagesContext","useMessagesContext","exports","displayName"],"sources":["FileUploadPreview.tsx"],"sourcesContent":["import React, { useEffect, useRef, useState } from 'react';\nimport { FlatList, I18nManager, StyleSheet, Text, TouchableOpacity, View } from 'react-native';\n\nimport dayjs from 'dayjs';\n\nimport { UploadProgressIndicator } from './UploadProgressIndicator';\n\nimport { ChatContextValue, useChatContext } from '../../contexts';\nimport {\n MessageInputContextValue,\n useMessageInputContext,\n} from '../../contexts/messageInputContext/MessageInputContext';\nimport {\n MessagesContextValue,\n useMessagesContext,\n} from '../../contexts/messagesContext/MessagesContext';\nimport { useTheme } from '../../contexts/themeContext/ThemeContext';\nimport { useTranslationContext } from '../../contexts/translationContext/TranslationContext';\nimport { Close } from '../../icons/Close';\nimport { Warning } from '../../icons/Warning';\nimport { isAudioPackageAvailable } from '../../native';\nimport type { DefaultStreamChatGenerics, FileUpload } from '../../types/types';\nimport { FileState, getIndicatorTypeForFileState, ProgressIndicatorTypes } from '../../utils/utils';\nimport { getFileSizeDisplayText } from '../Attachment/FileAttachment';\nimport { WritingDirectionAwareText } from '../RTLComponents/WritingDirectionAwareText';\n\nconst FILE_PREVIEW_HEIGHT = 60;\nconst WARNING_ICON_SIZE = 16;\n\nconst styles = StyleSheet.create({\n dismiss: {\n borderRadius: 24,\n height: 24,\n position: 'absolute',\n right: 8,\n top: 8,\n width: 24,\n },\n fileContainer: {\n borderRadius: 12,\n borderWidth: 1,\n flexDirection: 'row',\n height: FILE_PREVIEW_HEIGHT,\n justifyContent: 'space-between',\n marginBottom: 8,\n paddingLeft: 8,\n paddingRight: 8,\n },\n fileContentContainer: { flexDirection: 'row' },\n fileIcon: {\n alignItems: 'center',\n alignSelf: 'center',\n justifyContent: 'center',\n },\n filenameText: {\n fontSize: 14,\n fontWeight: 'bold',\n paddingHorizontal: 10,\n },\n fileSizeText: {\n fontSize: 12,\n paddingHorizontal: 10,\n },\n fileTextContainer: {\n height: '100%',\n justifyContent: 'space-around',\n },\n flatList: { marginBottom: 12, maxHeight: FILE_PREVIEW_HEIGHT * 2.5 + 16 },\n overlay: {\n borderRadius: 12,\n marginLeft: 8,\n marginRight: 8,\n marginTop: 2,\n },\n unsupportedFile: {\n flexDirection: 'row',\n paddingLeft: 10,\n },\n unsupportedFileText: {\n fontSize: 12,\n marginHorizontal: 4,\n },\n warningIconStyle: {\n borderRadius: 24,\n marginTop: 2,\n },\n});\n\nconst UnsupportedFileTypeOrFileSizeIndicator = ({\n indicatorType,\n item,\n}: {\n indicatorType: typeof ProgressIndicatorTypes[keyof typeof ProgressIndicatorTypes];\n item: FileUpload;\n}) => {\n const {\n theme: {\n colors: { accent_red, grey, grey_dark },\n messageInput: {\n fileUploadPreview: { fileSizeText },\n },\n },\n } = useTheme();\n\n const ONE_HOUR_IN_SECONDS = 3600;\n let durationLabel = '00:00';\n const videoDuration = item.file.duration;\n\n if (videoDuration) {\n const isDurationLongerThanHour = videoDuration / ONE_HOUR_IN_SECONDS >= 1;\n const formattedDurationParam = isDurationLongerThanHour ? 'HH:mm:ss' : 'mm:ss';\n const formattedVideoDuration = dayjs\n .duration(videoDuration, 'second')\n .format(formattedDurationParam);\n durationLabel = formattedVideoDuration;\n }\n\n const { t } = useTranslationContext();\n\n return indicatorType === ProgressIndicatorTypes.NOT_SUPPORTED ? (\n <View style={styles.unsupportedFile}>\n <Warning\n height={WARNING_ICON_SIZE}\n pathFill={accent_red}\n style={styles.warningIconStyle}\n width={WARNING_ICON_SIZE}\n />\n <Text style={[styles.unsupportedFileText, { color: grey_dark }]}>\n {t('File type not supported')}\n </Text>\n </View>\n ) : (\n <WritingDirectionAwareText style={[styles.fileSizeText, { color: grey }, fileSizeText]}>\n {videoDuration ? durationLabel : getFileSizeDisplayText(item.file.size)}\n </WritingDirectionAwareText>\n );\n};\n\ntype FileUploadPreviewPropsWithContext<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Pick<\n MessageInputContextValue<StreamChatGenerics>,\n 'fileUploads' | 'removeFile' | 'uploadFile' | 'setFileUploads'\n> &\n Pick<MessagesContextValue<StreamChatGenerics>, 'AudioAttachment' | 'FileAttachmentIcon'> &\n Pick<ChatContextValue<StreamChatGenerics>, 'enableOfflineSupport'>;\n\nconst FileUploadPreviewWithContext = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: FileUploadPreviewPropsWithContext<StreamChatGenerics>,\n) => {\n const {\n AudioAttachment,\n enableOfflineSupport,\n FileAttachmentIcon,\n fileUploads,\n removeFile,\n setFileUploads,\n uploadFile,\n } = props;\n\n const flatListRef = useRef<FlatList<FileUpload> | null>(null);\n const [flatListWidth, setFlatListWidth] = useState(0);\n\n // Handler triggered when an audio is loaded in the message input. The initial state is defined for the audio here and the duration is set.\n const onLoad = (index: string, duration: number) => {\n setFileUploads((prevFileUploads) =>\n prevFileUploads.map((fileUpload) => ({\n ...fileUpload,\n duration: fileUpload.id === index ? duration : fileUpload.duration,\n })),\n );\n };\n\n // The handler which is triggered when the audio progresses/ the thumb is dragged in the progress control. The progressed duration is set here.\n const onProgress = (index: string, currentTime?: number, hasEnd?: boolean) => {\n setFileUploads((prevFileUploads) =>\n prevFileUploads.map((fileUpload) => ({\n ...fileUpload,\n progress:\n fileUpload.id === index\n ? hasEnd\n ? 1\n : currentTime\n ? currentTime / (fileUpload.duration as number)\n : 0\n : fileUpload.progress,\n })),\n );\n };\n\n // The handler which controls or sets the paused/played state of the audio.\n const onPlayPause = (index: string, pausedStatus?: boolean) => {\n if (pausedStatus === false) {\n // If the status is false we set the audio with the index as playing and the others as paused.\n setFileUploads((prevFileUploads) =>\n prevFileUploads.map((fileUpload) => ({\n ...fileUpload,\n paused: fileUpload.id !== index,\n })),\n );\n } else {\n // If the status is true we simply set all the audio's paused state as true.\n setFileUploads((prevFileUploads) =>\n prevFileUploads.map((fileUpload) => ({\n ...fileUpload,\n paused: true,\n })),\n );\n }\n };\n\n const {\n theme: {\n colors: { black, grey_dark, grey_gainsboro, grey_whisper, white },\n messageInput: {\n fileUploadPreview: {\n audioAttachmentFileContainer,\n dismiss,\n fileContainer,\n fileContentContainer,\n filenameText,\n fileTextContainer,\n flatList,\n },\n },\n },\n } = useTheme();\n\n const renderItem = ({ index, item }: { index: number; item: FileUpload }) => {\n const indicatorType = getIndicatorTypeForFileState(item.state, enableOfflineSupport);\n\n const lastIndexOfDot = item.file.name.lastIndexOf('.');\n\n return (\n <>\n <UploadProgressIndicator\n action={() => {\n uploadFile({ newFile: item });\n }}\n style={styles.overlay}\n type={indicatorType}\n >\n {item.file.mimeType?.startsWith('audio/') && isAudioPackageAvailable() ? (\n <View\n style={[\n { marginBottom: item.state === FileState.UPLOADED ? 8 : 0 },\n audioAttachmentFileContainer,\n ]}\n >\n <View\n style={[\n styles.fileContainer,\n index === fileUploads.length - 1\n ? {\n marginBottom: 0,\n }\n : {},\n {\n backgroundColor: white,\n borderColor: grey_whisper,\n width: -16,\n },\n fileContainer,\n ]}\n testID='audio-attachment-upload-preview'\n >\n <AudioAttachment\n item={item}\n onLoad={onLoad}\n onPlayPause={onPlayPause}\n onProgress={onProgress}\n testID='audio-attachment-upload-preview'\n />\n </View>\n </View>\n ) : (\n <View\n style={[\n styles.fileContainer,\n index === fileUploads.length - 1\n ? {\n marginBottom: 0,\n }\n : {},\n {\n borderColor: grey_whisper,\n width: flatListWidth - 16,\n },\n fileContainer,\n ]}\n >\n <View style={[styles.fileContentContainer, fileContentContainer]}>\n <View style={styles.fileIcon}>\n <FileAttachmentIcon mimeType={item.file.mimeType} />\n </View>\n <View style={[styles.fileTextContainer, fileTextContainer]}>\n <Text\n numberOfLines={1}\n style={[\n styles.filenameText,\n {\n color: black,\n width:\n flatListWidth -\n 16 - // 16 = horizontal padding\n 40 - // 40 = file icon size\n 24 - // 24 = close icon size\n 24, // 24 = internal padding\n },\n I18nManager.isRTL ? { writingDirection: 'rtl' } : { writingDirection: 'ltr' },\n filenameText,\n ]}\n >\n {item.file.name.slice(0, 12) + '...' + item.file.name.slice(lastIndexOfDot)}\n </Text>\n {indicatorType !== null && (\n <UnsupportedFileTypeOrFileSizeIndicator\n indicatorType={indicatorType}\n item={item}\n />\n )}\n </View>\n </View>\n </View>\n )}\n <TouchableOpacity\n onPress={() => {\n removeFile(item.id);\n }}\n style={[styles.dismiss, { backgroundColor: grey_gainsboro }, dismiss]}\n testID='remove-file-upload-preview'\n >\n <Close pathFill={grey_dark} />\n </TouchableOpacity>\n </UploadProgressIndicator>\n </>\n );\n };\n\n const fileUploadsLength = fileUploads.length;\n\n useEffect(() => {\n if (fileUploadsLength && flatListRef.current) {\n setTimeout(() => flatListRef.current?.scrollToEnd(), 1);\n }\n }, [fileUploadsLength]);\n\n return fileUploadsLength ? (\n <FlatList\n data={fileUploads}\n getItemLayout={(_, index) => ({\n index,\n length: FILE_PREVIEW_HEIGHT + 8,\n offset: (FILE_PREVIEW_HEIGHT + 8) * index,\n })}\n keyExtractor={(item) => `${item.id}`}\n onLayout={({\n nativeEvent: {\n layout: { width },\n },\n }) => {\n setFlatListWidth(width);\n }}\n ref={flatListRef}\n renderItem={renderItem}\n style={[styles.flatList, flatList]}\n />\n ) : null;\n};\n\nconst areEqual = <StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>(\n prevProps: FileUploadPreviewPropsWithContext<StreamChatGenerics>,\n nextProps: FileUploadPreviewPropsWithContext<StreamChatGenerics>,\n) => {\n const { fileUploads: prevFileUploads } = prevProps;\n const { fileUploads: nextFileUploads } = nextProps;\n\n return (\n prevFileUploads.length === nextFileUploads.length &&\n prevFileUploads.every(\n (prevFileUpload, index) =>\n prevFileUpload.state === nextFileUploads[index].state &&\n prevFileUpload.paused === nextFileUploads[index].paused &&\n prevFileUpload.progress === nextFileUploads[index].progress &&\n prevFileUpload.duration === nextFileUploads[index].duration,\n )\n );\n};\n\nconst MemoizedFileUploadPreview = React.memo(\n FileUploadPreviewWithContext,\n areEqual,\n) as typeof FileUploadPreviewWithContext;\n\nexport type FileUploadPreviewProps<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Partial<FileUploadPreviewPropsWithContext<StreamChatGenerics>>;\n\n/**\n * FileUploadPreview\n * UI Component to preview the files set for upload\n */\nexport const FileUploadPreview = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: FileUploadPreviewProps<StreamChatGenerics>,\n) => {\n const { enableOfflineSupport } = useChatContext<StreamChatGenerics>();\n const { fileUploads, removeFile, setFileUploads, uploadFile } =\n useMessageInputContext<StreamChatGenerics>();\n const { AudioAttachment, FileAttachmentIcon } = useMessagesContext<StreamChatGenerics>();\n\n return (\n <MemoizedFileUploadPreview\n {...{\n AudioAttachment,\n FileAttachmentIcon,\n fileUploads,\n removeFile,\n setFileUploads,\n uploadFile,\n }}\n {...{ enableOfflineSupport }}\n {...props}\n />\n );\n};\n\nFileUploadPreview.displayName = 'FileUploadPreview{messageInput{fileUploadPreview}}';\n"],"mappings":"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"}
|
|
@@ -92,7 +92,7 @@ var ImageUploadPreviewWithContext = function ImageUploadPreviewWithContext(props
|
|
|
92
92
|
__self: _this,
|
|
93
93
|
__source: {
|
|
94
94
|
fileName: _jsxFileName,
|
|
95
|
-
lineNumber:
|
|
95
|
+
lineNumber: 118,
|
|
96
96
|
columnNumber: 7
|
|
97
97
|
}
|
|
98
98
|
}, _react["default"].createElement(_reactNative.View, {
|
|
@@ -100,7 +100,7 @@ var ImageUploadPreviewWithContext = function ImageUploadPreviewWithContext(props
|
|
|
100
100
|
__self: _this,
|
|
101
101
|
__source: {
|
|
102
102
|
fileName: _jsxFileName,
|
|
103
|
-
lineNumber:
|
|
103
|
+
lineNumber: 119,
|
|
104
104
|
columnNumber: 9
|
|
105
105
|
}
|
|
106
106
|
}, _react["default"].createElement(_Warning.Warning, {
|
|
@@ -111,7 +111,7 @@ var ImageUploadPreviewWithContext = function ImageUploadPreviewWithContext(props
|
|
|
111
111
|
__self: _this,
|
|
112
112
|
__source: {
|
|
113
113
|
fileName: _jsxFileName,
|
|
114
|
-
lineNumber:
|
|
114
|
+
lineNumber: 120,
|
|
115
115
|
columnNumber: 11
|
|
116
116
|
}
|
|
117
117
|
}), _react["default"].createElement(_reactNative.Text, {
|
|
@@ -121,7 +121,7 @@ var ImageUploadPreviewWithContext = function ImageUploadPreviewWithContext(props
|
|
|
121
121
|
__self: _this,
|
|
122
122
|
__source: {
|
|
123
123
|
fileName: _jsxFileName,
|
|
124
|
-
lineNumber:
|
|
124
|
+
lineNumber: 126,
|
|
125
125
|
columnNumber: 11
|
|
126
126
|
}
|
|
127
127
|
}, t('Not supported')))) : null;
|
|
@@ -138,7 +138,7 @@ var ImageUploadPreviewWithContext = function ImageUploadPreviewWithContext(props
|
|
|
138
138
|
__self: _this,
|
|
139
139
|
__source: {
|
|
140
140
|
fileName: _jsxFileName,
|
|
141
|
-
lineNumber:
|
|
141
|
+
lineNumber: 137,
|
|
142
142
|
columnNumber: 7
|
|
143
143
|
}
|
|
144
144
|
}, _react["default"].createElement(_UploadProgressIndicator.UploadProgressIndicator, {
|
|
@@ -152,7 +152,7 @@ var ImageUploadPreviewWithContext = function ImageUploadPreviewWithContext(props
|
|
|
152
152
|
__self: _this,
|
|
153
153
|
__source: {
|
|
154
154
|
fileName: _jsxFileName,
|
|
155
|
-
lineNumber:
|
|
155
|
+
lineNumber: 138,
|
|
156
156
|
columnNumber: 9
|
|
157
157
|
}
|
|
158
158
|
}, _react["default"].createElement(_reactNative.Image, {
|
|
@@ -164,7 +164,7 @@ var ImageUploadPreviewWithContext = function ImageUploadPreviewWithContext(props
|
|
|
164
164
|
__self: _this,
|
|
165
165
|
__source: {
|
|
166
166
|
fileName: _jsxFileName,
|
|
167
|
-
lineNumber:
|
|
167
|
+
lineNumber: 145,
|
|
168
168
|
columnNumber: 11
|
|
169
169
|
}
|
|
170
170
|
})), _react["default"].createElement(DismissUpload, {
|
|
@@ -174,7 +174,7 @@ var ImageUploadPreviewWithContext = function ImageUploadPreviewWithContext(props
|
|
|
174
174
|
__self: _this,
|
|
175
175
|
__source: {
|
|
176
176
|
fileName: _jsxFileName,
|
|
177
|
-
lineNumber:
|
|
177
|
+
lineNumber: 151,
|
|
178
178
|
columnNumber: 9
|
|
179
179
|
}
|
|
180
180
|
}), _react["default"].createElement(UnsupportedImageTypeIndicator, {
|
|
@@ -182,7 +182,7 @@ var ImageUploadPreviewWithContext = function ImageUploadPreviewWithContext(props
|
|
|
182
182
|
__self: _this,
|
|
183
183
|
__source: {
|
|
184
184
|
fileName: _jsxFileName,
|
|
185
|
-
lineNumber:
|
|
185
|
+
lineNumber: 156,
|
|
186
186
|
columnNumber: 9
|
|
187
187
|
}
|
|
188
188
|
}));
|
|
@@ -205,7 +205,7 @@ var ImageUploadPreviewWithContext = function ImageUploadPreviewWithContext(props
|
|
|
205
205
|
__self: _this,
|
|
206
206
|
__source: {
|
|
207
207
|
fileName: _jsxFileName,
|
|
208
|
-
lineNumber:
|
|
208
|
+
lineNumber: 162,
|
|
209
209
|
columnNumber: 5
|
|
210
210
|
}
|
|
211
211
|
}) : null;
|
|
@@ -229,7 +229,7 @@ var DismissUpload = function DismissUpload(_ref3) {
|
|
|
229
229
|
__self: _this,
|
|
230
230
|
__source: {
|
|
231
231
|
fileName: _jsxFileName,
|
|
232
|
-
lineNumber:
|
|
232
|
+
lineNumber: 190,
|
|
233
233
|
columnNumber: 5
|
|
234
234
|
}
|
|
235
235
|
}, _react["default"].createElement(_Close.Close, {
|
|
@@ -237,7 +237,7 @@ var DismissUpload = function DismissUpload(_ref3) {
|
|
|
237
237
|
__self: _this,
|
|
238
238
|
__source: {
|
|
239
239
|
fileName: _jsxFileName,
|
|
240
|
-
lineNumber:
|
|
240
|
+
lineNumber: 195,
|
|
241
241
|
columnNumber: 7
|
|
242
242
|
}
|
|
243
243
|
}));
|
|
@@ -266,7 +266,7 @@ var ImageUploadPreview = function ImageUploadPreview(props) {
|
|
|
266
266
|
__self: _this,
|
|
267
267
|
__source: {
|
|
268
268
|
fileName: _jsxFileName,
|
|
269
|
-
lineNumber:
|
|
269
|
+
lineNumber: 232,
|
|
270
270
|
columnNumber: 5
|
|
271
271
|
}
|
|
272
272
|
}));
|