stream-chat-react-native-core 4.1.4-beta.1 → 4.2.0-beta.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/commonjs/components/Attachment/Attachment.js +16 -10
- package/lib/commonjs/components/Attachment/Attachment.js.map +1 -1
- package/lib/commonjs/components/Attachment/Giphy.js +61 -40
- package/lib/commonjs/components/Attachment/Giphy.js.map +1 -1
- package/lib/commonjs/components/Channel/Channel.js +16 -13
- package/lib/commonjs/components/Channel/Channel.js.map +1 -1
- package/lib/commonjs/components/Channel/hooks/useCreateMessagesContext.js +2 -0
- package/lib/commonjs/components/Channel/hooks/useCreateMessagesContext.js.map +1 -1
- package/lib/commonjs/components/ChannelList/ChannelListMessenger.js +3 -3
- package/lib/commonjs/components/ChannelList/ChannelListMessenger.js.map +1 -1
- package/lib/commonjs/components/Message/MessageSimple/MessageContent.js +42 -20
- package/lib/commonjs/components/Message/MessageSimple/MessageContent.js.map +1 -1
- package/lib/commonjs/contexts/messagesContext/MessagesContext.js +2 -2
- package/lib/commonjs/contexts/messagesContext/MessagesContext.js.map +1 -1
- package/lib/commonjs/contexts/themeContext/utils/theme.js +1 -0
- package/lib/commonjs/contexts/themeContext/utils/theme.js.map +1 -1
- package/lib/commonjs/version.json +1 -1
- package/lib/module/components/Attachment/Attachment.js +16 -10
- package/lib/module/components/Attachment/Attachment.js.map +1 -1
- package/lib/module/components/Attachment/Giphy.js +61 -40
- package/lib/module/components/Attachment/Giphy.js.map +1 -1
- package/lib/module/components/Channel/Channel.js +16 -13
- package/lib/module/components/Channel/Channel.js.map +1 -1
- package/lib/module/components/Channel/hooks/useCreateMessagesContext.js +2 -0
- package/lib/module/components/Channel/hooks/useCreateMessagesContext.js.map +1 -1
- package/lib/module/components/ChannelList/ChannelListMessenger.js +3 -3
- package/lib/module/components/ChannelList/ChannelListMessenger.js.map +1 -1
- package/lib/module/components/Message/MessageSimple/MessageContent.js +42 -20
- package/lib/module/components/Message/MessageSimple/MessageContent.js.map +1 -1
- package/lib/module/contexts/messagesContext/MessagesContext.js +2 -2
- package/lib/module/contexts/messagesContext/MessagesContext.js.map +1 -1
- package/lib/module/contexts/themeContext/utils/theme.js +1 -0
- package/lib/module/contexts/themeContext/utils/theme.js.map +1 -1
- package/lib/module/version.json +1 -1
- package/lib/typescript/components/Attachment/Attachment.d.ts +2 -2
- package/lib/typescript/components/Attachment/Giphy.d.ts +2 -2
- package/lib/typescript/components/Channel/Channel.d.ts +1 -1
- package/lib/typescript/components/Channel/hooks/useCreateMessagesContext.d.ts +1 -1
- package/lib/typescript/contexts/messagesContext/MessagesContext.d.ts +5 -1
- package/lib/typescript/contexts/themeContext/utils/theme.d.ts +1 -0
- package/package.json +3 -3
- package/src/components/Attachment/Attachment.tsx +29 -4
- package/src/components/Attachment/Giphy.tsx +55 -22
- package/src/components/Attachment/__tests__/Attachment.test.js +41 -0
- package/src/components/Channel/Channel.tsx +3 -0
- package/src/components/Channel/hooks/useCreateMessagesContext.ts +2 -0
- package/src/components/ChannelList/ChannelListMessenger.tsx +0 -1
- package/src/components/Message/MessageSimple/MessageContent.tsx +20 -13
- package/src/components/MessageInput/__tests__/AttachButton.test.js +8 -8
- package/src/components/MessageInput/__tests__/SendButton.test.js +12 -20
- package/src/components/MessageInput/__tests__/__snapshots__/AttachButton.test.js.snap +6 -0
- package/src/components/MessageInput/__tests__/__snapshots__/MessageInput.test.js.snap +9 -0
- package/src/components/MessageInput/__tests__/__snapshots__/SendButton.test.js.snap +12 -0
- package/src/contexts/messagesContext/MessagesContext.tsx +5 -2
- package/src/contexts/themeContext/utils/theme.ts +1 -0
- package/src/version.json +1 -1
|
@@ -33,16 +33,18 @@ var AttachmentWithContext = function AttachmentWithContext(props) {
|
|
|
33
33
|
FileAttachment = props.FileAttachment,
|
|
34
34
|
Gallery = props.Gallery,
|
|
35
35
|
Giphy = props.Giphy,
|
|
36
|
+
giphyVersion = props.giphyVersion,
|
|
36
37
|
UrlPreview = props.UrlPreview;
|
|
37
38
|
var hasAttachmentActions = !!((_attachment$actions = attachment.actions) != null && _attachment$actions.length);
|
|
38
39
|
|
|
39
40
|
if (attachment.type === 'giphy' || attachment.type === 'imgur') {
|
|
40
41
|
return _react["default"].createElement(Giphy, {
|
|
41
42
|
attachment: attachment,
|
|
43
|
+
giphyVersion: giphyVersion,
|
|
42
44
|
__self: _this,
|
|
43
45
|
__source: {
|
|
44
46
|
fileName: _jsxFileName,
|
|
45
|
-
lineNumber:
|
|
47
|
+
lineNumber: 56,
|
|
46
48
|
columnNumber: 12
|
|
47
49
|
}
|
|
48
50
|
});
|
|
@@ -53,7 +55,7 @@ var AttachmentWithContext = function AttachmentWithContext(props) {
|
|
|
53
55
|
__self: _this,
|
|
54
56
|
__source: {
|
|
55
57
|
fileName: _jsxFileName,
|
|
56
|
-
lineNumber:
|
|
58
|
+
lineNumber: 63,
|
|
57
59
|
columnNumber: 12
|
|
58
60
|
}
|
|
59
61
|
}));
|
|
@@ -65,7 +67,7 @@ var AttachmentWithContext = function AttachmentWithContext(props) {
|
|
|
65
67
|
__self: _this,
|
|
66
68
|
__source: {
|
|
67
69
|
fileName: _jsxFileName,
|
|
68
|
-
lineNumber:
|
|
70
|
+
lineNumber: 69,
|
|
69
71
|
columnNumber: 9
|
|
70
72
|
}
|
|
71
73
|
}), hasAttachmentActions && _react["default"].createElement(AttachmentActions, (0, _extends2["default"])({
|
|
@@ -74,7 +76,7 @@ var AttachmentWithContext = function AttachmentWithContext(props) {
|
|
|
74
76
|
__self: _this,
|
|
75
77
|
__source: {
|
|
76
78
|
fileName: _jsxFileName,
|
|
77
|
-
lineNumber:
|
|
79
|
+
lineNumber: 71,
|
|
78
80
|
columnNumber: 11
|
|
79
81
|
}
|
|
80
82
|
})));
|
|
@@ -86,7 +88,7 @@ var AttachmentWithContext = function AttachmentWithContext(props) {
|
|
|
86
88
|
__self: _this,
|
|
87
89
|
__source: {
|
|
88
90
|
fileName: _jsxFileName,
|
|
89
|
-
lineNumber:
|
|
91
|
+
lineNumber: 78,
|
|
90
92
|
columnNumber: 12
|
|
91
93
|
}
|
|
92
94
|
});
|
|
@@ -98,7 +100,7 @@ var AttachmentWithContext = function AttachmentWithContext(props) {
|
|
|
98
100
|
__self: _this,
|
|
99
101
|
__source: {
|
|
100
102
|
fileName: _jsxFileName,
|
|
101
|
-
lineNumber:
|
|
103
|
+
lineNumber: 84,
|
|
102
104
|
columnNumber: 7
|
|
103
105
|
}
|
|
104
106
|
});
|
|
@@ -109,7 +111,7 @@ var AttachmentWithContext = function AttachmentWithContext(props) {
|
|
|
109
111
|
__self: _this,
|
|
110
112
|
__source: {
|
|
111
113
|
fileName: _jsxFileName,
|
|
112
|
-
lineNumber:
|
|
114
|
+
lineNumber: 91,
|
|
113
115
|
columnNumber: 9
|
|
114
116
|
}
|
|
115
117
|
})), _react["default"].createElement(AttachmentActions, (0, _extends2["default"])({
|
|
@@ -118,7 +120,7 @@ var AttachmentWithContext = function AttachmentWithContext(props) {
|
|
|
118
120
|
__self: _this,
|
|
119
121
|
__source: {
|
|
120
122
|
fileName: _jsxFileName,
|
|
121
|
-
lineNumber:
|
|
123
|
+
lineNumber: 92,
|
|
122
124
|
columnNumber: 9
|
|
123
125
|
}
|
|
124
126
|
})));
|
|
@@ -127,7 +129,7 @@ var AttachmentWithContext = function AttachmentWithContext(props) {
|
|
|
127
129
|
__self: _this,
|
|
128
130
|
__source: {
|
|
129
131
|
fileName: _jsxFileName,
|
|
130
|
-
lineNumber:
|
|
132
|
+
lineNumber: 96,
|
|
131
133
|
columnNumber: 12
|
|
132
134
|
}
|
|
133
135
|
}));
|
|
@@ -152,6 +154,7 @@ var Attachment = function Attachment(props) {
|
|
|
152
154
|
PropFileAttachment = props.FileAttachment,
|
|
153
155
|
PropGallery = props.Gallery,
|
|
154
156
|
PropGiphy = props.Giphy,
|
|
157
|
+
PropGiphyVersion = props.giphyVersion,
|
|
155
158
|
PropUrlPreview = props.UrlPreview;
|
|
156
159
|
|
|
157
160
|
var _useMessagesContext = (0, _MessagesContext.useMessagesContext)(),
|
|
@@ -160,6 +163,7 @@ var Attachment = function Attachment(props) {
|
|
|
160
163
|
ContextFileAttachment = _useMessagesContext.FileAttachment,
|
|
161
164
|
ContextGallery = _useMessagesContext.Gallery,
|
|
162
165
|
ContextGiphy = _useMessagesContext.Giphy,
|
|
166
|
+
ContextGiphyVersion = _useMessagesContext.giphyVersion,
|
|
163
167
|
ContextUrlPreview = _useMessagesContext.UrlPreview;
|
|
164
168
|
|
|
165
169
|
if (!attachment) {
|
|
@@ -172,6 +176,7 @@ var Attachment = function Attachment(props) {
|
|
|
172
176
|
var Gallery = PropGallery || ContextGallery || _Gallery.Gallery;
|
|
173
177
|
var Giphy = PropGiphy || ContextGiphy || _Giphy.Giphy;
|
|
174
178
|
var UrlPreview = PropUrlPreview || ContextUrlPreview || _Card.Card;
|
|
179
|
+
var giphyVersion = PropGiphyVersion || ContextGiphyVersion;
|
|
175
180
|
return _react["default"].createElement(MemoizedAttachment, {
|
|
176
181
|
attachment: attachment,
|
|
177
182
|
AttachmentActions: AttachmentActions,
|
|
@@ -179,11 +184,12 @@ var Attachment = function Attachment(props) {
|
|
|
179
184
|
FileAttachment: FileAttachment,
|
|
180
185
|
Gallery: Gallery,
|
|
181
186
|
Giphy: Giphy,
|
|
187
|
+
giphyVersion: giphyVersion,
|
|
182
188
|
UrlPreview: UrlPreview,
|
|
183
189
|
__self: _this,
|
|
184
190
|
__source: {
|
|
185
191
|
fileName: _jsxFileName,
|
|
186
|
-
lineNumber:
|
|
192
|
+
lineNumber: 179,
|
|
187
193
|
columnNumber: 5
|
|
188
194
|
}
|
|
189
195
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["Attachment.tsx"],"names":["AttachmentWithContext","props","attachment","AttachmentActions","Card","FileAttachment","Gallery","Giphy","UrlPreview","hasAttachmentActions","actions","length","type","title_link","og_scrape_url","image_url","thumb_url","id","asset_url","areEqual","prevProps","nextProps","prevAttachment","nextAttachment","attachmentEqual","MemoizedAttachment","React","memo","Attachment","PropAttachmentActions","PropCard","PropFileAttachment","PropGallery","PropGiphy","PropUrlPreview","ContextAttachmentActions","ContextCard","ContextFileAttachment","ContextGallery","ContextGiphy","ContextUrlPreview","AttachmentActionsDefault","CardDefault","FileAttachmentDefault","GalleryDefault","GiphyDefault"],"mappings":"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","sourcesContent":["import React from 'react';\n\nimport type { Attachment as AttachmentType } from 'stream-chat';\n\nimport { AttachmentActions as AttachmentActionsDefault } from '../../components/Attachment/AttachmentActions';\nimport { Card as CardDefault } from '../../components/Attachment/Card';\nimport { FileAttachment as FileAttachmentDefault } from '../../components/Attachment/FileAttachment';\nimport { Gallery as GalleryDefault } from '../../components/Attachment/Gallery';\nimport { Giphy as GiphyDefault } from '../../components/Attachment/Giphy';\nimport {\n MessagesContextValue,\n useMessagesContext,\n} from '../../contexts/messagesContext/MessagesContext';\n\nimport type { DefaultStreamChatGenerics } from '../../types/types';\n\nexport type ActionHandler = (name: string, value: string) => void;\n\nexport type AttachmentPropsWithContext<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Pick<\n MessagesContextValue<StreamChatGenerics>,\n 'AttachmentActions' | 'Card' | 'FileAttachment' | 'Gallery' | 'Giphy' | 'UrlPreview'\n> & {\n /**\n * The attachment to render\n */\n attachment: AttachmentType<StreamChatGenerics>;\n};\n\nconst AttachmentWithContext = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: AttachmentPropsWithContext<StreamChatGenerics>,\n) => {\n const { attachment, AttachmentActions, Card, FileAttachment, Gallery, Giphy, UrlPreview } = props;\n\n const hasAttachmentActions = !!attachment.actions?.length;\n\n if (attachment.type === 'giphy' || attachment.type === 'imgur') {\n return <Giphy attachment={attachment} />;\n }\n\n if (\n (attachment.title_link || attachment.og_scrape_url) &&\n (attachment.image_url || attachment.thumb_url)\n ) {\n return <UrlPreview {...attachment} />;\n }\n\n if (attachment.type === 'image') {\n return (\n <>\n <Gallery images={[attachment]} />\n {hasAttachmentActions && (\n <AttachmentActions key={`key-actions-${attachment.id}`} {...attachment} />\n )}\n </>\n );\n }\n\n if (attachment.type === 'file' || attachment.type === 'audio') {\n return <FileAttachment attachment={attachment} />;\n }\n\n if (attachment.type === 'video' && attachment.asset_url) {\n return (\n // TODO: Put in video component\n <FileAttachment attachment={attachment} />\n );\n }\n\n if (hasAttachmentActions) {\n return (\n <>\n <Card {...attachment} />\n <AttachmentActions key={`key-actions-${attachment.id}`} {...attachment} />\n </>\n );\n } else {\n return <Card {...attachment} />;\n }\n};\n\nconst areEqual = <StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>(\n prevProps: AttachmentPropsWithContext<StreamChatGenerics>,\n nextProps: AttachmentPropsWithContext<StreamChatGenerics>,\n) => {\n const { attachment: prevAttachment } = prevProps;\n const { attachment: nextAttachment } = nextProps;\n\n const attachmentEqual =\n prevAttachment.actions?.length === nextAttachment.actions?.length &&\n prevAttachment.image_url === nextAttachment.image_url &&\n prevAttachment.thumb_url === nextAttachment.thumb_url;\n\n return attachmentEqual;\n};\n\nconst MemoizedAttachment = React.memo(\n AttachmentWithContext,\n areEqual,\n) as typeof AttachmentWithContext;\n\nexport type AttachmentProps<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Partial<\n Pick<\n MessagesContextValue<StreamChatGenerics>,\n 'AttachmentActions' | 'Card' | 'FileAttachment' | 'Gallery' | 'Giphy' | 'UrlPreview'\n >\n> &\n Pick<AttachmentPropsWithContext<StreamChatGenerics>, 'attachment'>;\n\n/**\n * Attachment - The message attachment\n */\nexport const Attachment = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: AttachmentProps<StreamChatGenerics>,\n) => {\n const {\n attachment,\n AttachmentActions: PropAttachmentActions,\n Card: PropCard,\n FileAttachment: PropFileAttachment,\n Gallery: PropGallery,\n Giphy: PropGiphy,\n UrlPreview: PropUrlPreview,\n } = props;\n\n const {\n AttachmentActions: ContextAttachmentActions,\n Card: ContextCard,\n FileAttachment: ContextFileAttachment,\n Gallery: ContextGallery,\n Giphy: ContextGiphy,\n UrlPreview: ContextUrlPreview,\n } = useMessagesContext<StreamChatGenerics>();\n\n if (!attachment) {\n return null;\n }\n\n const AttachmentActions =\n PropAttachmentActions || ContextAttachmentActions || AttachmentActionsDefault;\n const Card = PropCard || ContextCard || CardDefault;\n const FileAttachment = PropFileAttachment || ContextFileAttachment || FileAttachmentDefault;\n const Gallery = PropGallery || ContextGallery || GalleryDefault;\n const Giphy = PropGiphy || ContextGiphy || GiphyDefault;\n const UrlPreview = PropUrlPreview || ContextUrlPreview || CardDefault;\n\n return (\n <MemoizedAttachment\n {...{\n attachment,\n AttachmentActions,\n Card,\n FileAttachment,\n Gallery,\n Giphy,\n UrlPreview,\n }}\n />\n );\n};\n"]}
|
|
1
|
+
{"version":3,"sources":["Attachment.tsx"],"names":["AttachmentWithContext","props","attachment","AttachmentActions","Card","FileAttachment","Gallery","Giphy","giphyVersion","UrlPreview","hasAttachmentActions","actions","length","type","title_link","og_scrape_url","image_url","thumb_url","id","asset_url","areEqual","prevProps","nextProps","prevAttachment","nextAttachment","attachmentEqual","MemoizedAttachment","React","memo","Attachment","PropAttachmentActions","PropCard","PropFileAttachment","PropGallery","PropGiphy","PropGiphyVersion","PropUrlPreview","ContextAttachmentActions","ContextCard","ContextFileAttachment","ContextGallery","ContextGiphy","ContextGiphyVersion","ContextUrlPreview","AttachmentActionsDefault","CardDefault","FileAttachmentDefault","GalleryDefault","GiphyDefault"],"mappings":"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","sourcesContent":["import React from 'react';\n\nimport type { Attachment as AttachmentType } from 'stream-chat';\n\nimport { AttachmentActions as AttachmentActionsDefault } from '../../components/Attachment/AttachmentActions';\nimport { Card as CardDefault } from '../../components/Attachment/Card';\nimport { FileAttachment as FileAttachmentDefault } from '../../components/Attachment/FileAttachment';\nimport { Gallery as GalleryDefault } from '../../components/Attachment/Gallery';\nimport { Giphy as GiphyDefault } from '../../components/Attachment/Giphy';\nimport {\n MessagesContextValue,\n useMessagesContext,\n} from '../../contexts/messagesContext/MessagesContext';\n\nimport type { DefaultStreamChatGenerics } from '../../types/types';\n\nexport type ActionHandler = (name: string, value: string) => void;\n\nexport type AttachmentPropsWithContext<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Pick<\n MessagesContextValue<StreamChatGenerics>,\n | 'AttachmentActions'\n | 'Card'\n | 'FileAttachment'\n | 'Gallery'\n | 'giphyVersion'\n | 'Giphy'\n | 'UrlPreview'\n> & {\n /**\n * The attachment to render\n */\n attachment: AttachmentType<StreamChatGenerics>;\n};\n\nconst AttachmentWithContext = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: AttachmentPropsWithContext<StreamChatGenerics>,\n) => {\n const {\n attachment,\n AttachmentActions,\n Card,\n FileAttachment,\n Gallery,\n Giphy,\n giphyVersion,\n UrlPreview,\n } = props;\n\n const hasAttachmentActions = !!attachment.actions?.length;\n\n if (attachment.type === 'giphy' || attachment.type === 'imgur') {\n return <Giphy attachment={attachment} giphyVersion={giphyVersion} />;\n }\n\n if (\n (attachment.title_link || attachment.og_scrape_url) &&\n (attachment.image_url || attachment.thumb_url)\n ) {\n return <UrlPreview {...attachment} />;\n }\n\n if (attachment.type === 'image') {\n return (\n <>\n <Gallery images={[attachment]} />\n {hasAttachmentActions && (\n <AttachmentActions key={`key-actions-${attachment.id}`} {...attachment} />\n )}\n </>\n );\n }\n\n if (attachment.type === 'file' || attachment.type === 'audio') {\n return <FileAttachment attachment={attachment} />;\n }\n\n if (attachment.type === 'video' && attachment.asset_url) {\n return (\n // TODO: Put in video component\n <FileAttachment attachment={attachment} />\n );\n }\n\n if (hasAttachmentActions) {\n return (\n <>\n <Card {...attachment} />\n <AttachmentActions key={`key-actions-${attachment.id}`} {...attachment} />\n </>\n );\n } else {\n return <Card {...attachment} />;\n }\n};\n\nconst areEqual = <StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>(\n prevProps: AttachmentPropsWithContext<StreamChatGenerics>,\n nextProps: AttachmentPropsWithContext<StreamChatGenerics>,\n) => {\n const { attachment: prevAttachment } = prevProps;\n const { attachment: nextAttachment } = nextProps;\n\n const attachmentEqual =\n prevAttachment.actions?.length === nextAttachment.actions?.length &&\n prevAttachment.image_url === nextAttachment.image_url &&\n prevAttachment.thumb_url === nextAttachment.thumb_url;\n\n return attachmentEqual;\n};\n\nconst MemoizedAttachment = React.memo(\n AttachmentWithContext,\n areEqual,\n) as typeof AttachmentWithContext;\n\nexport type AttachmentProps<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Partial<\n Pick<\n MessagesContextValue<StreamChatGenerics>,\n | 'AttachmentActions'\n | 'Card'\n | 'FileAttachment'\n | 'Gallery'\n | 'Giphy'\n | 'giphyVersion'\n | 'UrlPreview'\n >\n> &\n Pick<AttachmentPropsWithContext<StreamChatGenerics>, 'attachment'>;\n\n/**\n * Attachment - The message attachment\n */\nexport const Attachment = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: AttachmentProps<StreamChatGenerics>,\n) => {\n const {\n attachment,\n AttachmentActions: PropAttachmentActions,\n Card: PropCard,\n FileAttachment: PropFileAttachment,\n Gallery: PropGallery,\n Giphy: PropGiphy,\n giphyVersion: PropGiphyVersion,\n UrlPreview: PropUrlPreview,\n } = props;\n\n const {\n AttachmentActions: ContextAttachmentActions,\n Card: ContextCard,\n FileAttachment: ContextFileAttachment,\n Gallery: ContextGallery,\n Giphy: ContextGiphy,\n giphyVersion: ContextGiphyVersion,\n UrlPreview: ContextUrlPreview,\n } = useMessagesContext<StreamChatGenerics>();\n\n if (!attachment) {\n return null;\n }\n\n const AttachmentActions =\n PropAttachmentActions || ContextAttachmentActions || AttachmentActionsDefault;\n const Card = PropCard || ContextCard || CardDefault;\n const FileAttachment = PropFileAttachment || ContextFileAttachment || FileAttachmentDefault;\n const Gallery = PropGallery || ContextGallery || GalleryDefault;\n const Giphy = PropGiphy || ContextGiphy || GiphyDefault;\n const UrlPreview = PropUrlPreview || ContextUrlPreview || CardDefault;\n const giphyVersion = PropGiphyVersion || ContextGiphyVersion;\n\n return (\n <MemoizedAttachment\n {...{\n attachment,\n AttachmentActions,\n Card,\n FileAttachment,\n Gallery,\n Giphy,\n giphyVersion,\n UrlPreview,\n }}\n />\n );\n};\n"]}
|
|
@@ -27,6 +27,9 @@ var _this = this,
|
|
|
27
27
|
_jsxFileName = "/home/runner/work/stream-chat-react-native/stream-chat-react-native/package/src/components/Attachment/Giphy.tsx";
|
|
28
28
|
|
|
29
29
|
var styles = _reactNative.StyleSheet.create({
|
|
30
|
+
actionsRow: {
|
|
31
|
+
flexDirection: 'row'
|
|
32
|
+
},
|
|
30
33
|
buttonContainer: {
|
|
31
34
|
alignItems: 'center',
|
|
32
35
|
borderTopWidth: 1,
|
|
@@ -43,8 +46,10 @@ var styles = _reactNative.StyleSheet.create({
|
|
|
43
46
|
width: 270
|
|
44
47
|
},
|
|
45
48
|
giphy: {
|
|
49
|
+
alignSelf: 'center',
|
|
46
50
|
borderRadius: 2,
|
|
47
51
|
height: 170,
|
|
52
|
+
maxWidth: 270,
|
|
48
53
|
width: 270
|
|
49
54
|
},
|
|
50
55
|
giphyContainer: {
|
|
@@ -79,18 +84,16 @@ var styles = _reactNative.StyleSheet.create({
|
|
|
79
84
|
padding: 8,
|
|
80
85
|
width: '60%'
|
|
81
86
|
},
|
|
82
|
-
margin: {
|
|
83
|
-
margin: 1
|
|
84
|
-
},
|
|
85
|
-
row: {
|
|
86
|
-
flexDirection: 'row'
|
|
87
|
-
},
|
|
88
87
|
selectionContainer: {
|
|
89
88
|
borderBottomLeftRadius: 8,
|
|
90
89
|
borderWidth: 1,
|
|
91
90
|
overflow: 'hidden',
|
|
92
91
|
width: 272
|
|
93
92
|
},
|
|
93
|
+
selectionImageContainer: {
|
|
94
|
+
alignSelf: 'center',
|
|
95
|
+
margin: 1
|
|
96
|
+
},
|
|
94
97
|
send: {
|
|
95
98
|
fontSize: 14,
|
|
96
99
|
fontWeight: '600',
|
|
@@ -120,6 +123,7 @@ var GiphyWithContext = function GiphyWithContext(props) {
|
|
|
120
123
|
_onPressIn = props.onPressIn,
|
|
121
124
|
preventPress = props.preventPress;
|
|
122
125
|
var actions = attachment.actions,
|
|
126
|
+
giphyData = attachment.giphy,
|
|
123
127
|
image_url = attachment.image_url,
|
|
124
128
|
thumb_url = attachment.thumb_url,
|
|
125
129
|
title = attachment.title,
|
|
@@ -133,6 +137,7 @@ var GiphyWithContext = function GiphyWithContext(props) {
|
|
|
133
137
|
grey = _useTheme$theme$color.grey,
|
|
134
138
|
grey_dark = _useTheme$theme$color.grey_dark,
|
|
135
139
|
grey_gainsboro = _useTheme$theme$color.grey_gainsboro,
|
|
140
|
+
label_bg_transparent = _useTheme$theme$color.label_bg_transparent,
|
|
136
141
|
white = _useTheme$theme$color.white,
|
|
137
142
|
_useTheme$theme$messa = _useTheme$theme.messageSimple.giphy,
|
|
138
143
|
buttonContainer = _useTheme$theme$messa.buttonContainer,
|
|
@@ -150,6 +155,15 @@ var GiphyWithContext = function GiphyWithContext(props) {
|
|
|
150
155
|
shuffle = _useTheme$theme$messa.shuffle;
|
|
151
156
|
|
|
152
157
|
var uri = image_url || thumb_url;
|
|
158
|
+
var giphyDimensions = {};
|
|
159
|
+
|
|
160
|
+
if (type === 'giphy' && giphyData) {
|
|
161
|
+
var giphyVersionInfo = giphyData[props.giphyVersion];
|
|
162
|
+
uri = giphyVersionInfo.url;
|
|
163
|
+
giphyDimensions.height = parseFloat(giphyVersionInfo.height);
|
|
164
|
+
giphyDimensions.width = parseFloat(giphyVersionInfo.width);
|
|
165
|
+
}
|
|
166
|
+
|
|
153
167
|
if (!uri) return null;
|
|
154
168
|
return actions ? _react["default"].createElement(_reactNative.View, {
|
|
155
169
|
style: [styles.selectionContainer, {
|
|
@@ -159,7 +173,7 @@ var GiphyWithContext = function GiphyWithContext(props) {
|
|
|
159
173
|
__self: _this,
|
|
160
174
|
__source: {
|
|
161
175
|
fileName: _jsxFileName,
|
|
162
|
-
lineNumber:
|
|
176
|
+
lineNumber: 171,
|
|
163
177
|
columnNumber: 5
|
|
164
178
|
}
|
|
165
179
|
}, _react["default"].createElement(_reactNative.View, {
|
|
@@ -167,14 +181,14 @@ var GiphyWithContext = function GiphyWithContext(props) {
|
|
|
167
181
|
__self: _this,
|
|
168
182
|
__source: {
|
|
169
183
|
fileName: _jsxFileName,
|
|
170
|
-
lineNumber:
|
|
184
|
+
lineNumber: 178,
|
|
171
185
|
columnNumber: 7
|
|
172
186
|
}
|
|
173
187
|
}, _react["default"].createElement(_icons.GiphyIcon, {
|
|
174
188
|
__self: _this,
|
|
175
189
|
__source: {
|
|
176
190
|
fileName: _jsxFileName,
|
|
177
|
-
lineNumber:
|
|
191
|
+
lineNumber: 179,
|
|
178
192
|
columnNumber: 9
|
|
179
193
|
}
|
|
180
194
|
}), _react["default"].createElement(_reactNative.Text, {
|
|
@@ -182,7 +196,7 @@ var GiphyWithContext = function GiphyWithContext(props) {
|
|
|
182
196
|
__self: _this,
|
|
183
197
|
__source: {
|
|
184
198
|
fileName: _jsxFileName,
|
|
185
|
-
lineNumber:
|
|
199
|
+
lineNumber: 180,
|
|
186
200
|
columnNumber: 9
|
|
187
201
|
}
|
|
188
202
|
}, "Giphy"), _react["default"].createElement(_reactNative.Text, {
|
|
@@ -192,42 +206,42 @@ var GiphyWithContext = function GiphyWithContext(props) {
|
|
|
192
206
|
__self: _this,
|
|
193
207
|
__source: {
|
|
194
208
|
fileName: _jsxFileName,
|
|
195
|
-
lineNumber:
|
|
209
|
+
lineNumber: 181,
|
|
196
210
|
columnNumber: 9
|
|
197
211
|
}
|
|
198
212
|
}, "/giphy " + title)), _react["default"].createElement(_reactNative.View, {
|
|
199
|
-
style: styles.
|
|
213
|
+
style: styles.selectionImageContainer,
|
|
200
214
|
__self: _this,
|
|
201
215
|
__source: {
|
|
202
216
|
fileName: _jsxFileName,
|
|
203
|
-
lineNumber:
|
|
217
|
+
lineNumber: 185,
|
|
204
218
|
columnNumber: 7
|
|
205
219
|
}
|
|
206
220
|
}, _react["default"].createElement(_reactNative.Image, {
|
|
207
|
-
resizeMode: "
|
|
221
|
+
resizeMode: "contain",
|
|
208
222
|
source: {
|
|
209
223
|
uri: (0, _utils.makeImageCompatibleUrl)(uri)
|
|
210
224
|
},
|
|
211
|
-
style: [styles.giphy, giphy],
|
|
225
|
+
style: [styles.giphy, giphyDimensions, giphy],
|
|
212
226
|
__self: _this,
|
|
213
227
|
__source: {
|
|
214
228
|
fileName: _jsxFileName,
|
|
215
|
-
lineNumber:
|
|
229
|
+
lineNumber: 186,
|
|
216
230
|
columnNumber: 9
|
|
217
231
|
}
|
|
218
232
|
})), _react["default"].createElement(_reactNative.View, {
|
|
219
233
|
__self: _this,
|
|
220
234
|
__source: {
|
|
221
235
|
fileName: _jsxFileName,
|
|
222
|
-
lineNumber:
|
|
236
|
+
lineNumber: 192,
|
|
223
237
|
columnNumber: 7
|
|
224
238
|
}
|
|
225
239
|
}, _react["default"].createElement(_reactNative.View, {
|
|
226
|
-
style: styles.
|
|
240
|
+
style: styles.actionsRow,
|
|
227
241
|
__self: _this,
|
|
228
242
|
__source: {
|
|
229
243
|
fileName: _jsxFileName,
|
|
230
|
-
lineNumber:
|
|
244
|
+
lineNumber: 193,
|
|
231
245
|
columnNumber: 9
|
|
232
246
|
}
|
|
233
247
|
}, _react["default"].createElement(_reactNative.TouchableOpacity, {
|
|
@@ -243,7 +257,7 @@ var GiphyWithContext = function GiphyWithContext(props) {
|
|
|
243
257
|
__self: _this,
|
|
244
258
|
__source: {
|
|
245
259
|
fileName: _jsxFileName,
|
|
246
|
-
lineNumber:
|
|
260
|
+
lineNumber: 194,
|
|
247
261
|
columnNumber: 11
|
|
248
262
|
}
|
|
249
263
|
}, _react["default"].createElement(_reactNative.Text, {
|
|
@@ -253,7 +267,7 @@ var GiphyWithContext = function GiphyWithContext(props) {
|
|
|
253
267
|
__self: _this,
|
|
254
268
|
__source: {
|
|
255
269
|
fileName: _jsxFileName,
|
|
256
|
-
lineNumber:
|
|
270
|
+
lineNumber: 206,
|
|
257
271
|
columnNumber: 13
|
|
258
272
|
}
|
|
259
273
|
}, actions == null ? void 0 : actions[2].text)), _react["default"].createElement(_reactNative.TouchableOpacity, {
|
|
@@ -269,7 +283,7 @@ var GiphyWithContext = function GiphyWithContext(props) {
|
|
|
269
283
|
__self: _this,
|
|
270
284
|
__source: {
|
|
271
285
|
fileName: _jsxFileName,
|
|
272
|
-
lineNumber:
|
|
286
|
+
lineNumber: 208,
|
|
273
287
|
columnNumber: 11
|
|
274
288
|
}
|
|
275
289
|
}, _react["default"].createElement(_reactNative.Text, {
|
|
@@ -279,7 +293,7 @@ var GiphyWithContext = function GiphyWithContext(props) {
|
|
|
279
293
|
__self: _this,
|
|
280
294
|
__source: {
|
|
281
295
|
fileName: _jsxFileName,
|
|
282
|
-
lineNumber:
|
|
296
|
+
lineNumber: 220,
|
|
283
297
|
columnNumber: 13
|
|
284
298
|
}
|
|
285
299
|
}, actions == null ? void 0 : actions[1].text)), _react["default"].createElement(_reactNative.TouchableOpacity, {
|
|
@@ -294,7 +308,7 @@ var GiphyWithContext = function GiphyWithContext(props) {
|
|
|
294
308
|
__self: _this,
|
|
295
309
|
__source: {
|
|
296
310
|
fileName: _jsxFileName,
|
|
297
|
-
lineNumber:
|
|
311
|
+
lineNumber: 222,
|
|
298
312
|
columnNumber: 11
|
|
299
313
|
}
|
|
300
314
|
}, _react["default"].createElement(_reactNative.Text, {
|
|
@@ -304,7 +318,7 @@ var GiphyWithContext = function GiphyWithContext(props) {
|
|
|
304
318
|
__self: _this,
|
|
305
319
|
__source: {
|
|
306
320
|
fileName: _jsxFileName,
|
|
307
|
-
lineNumber:
|
|
321
|
+
lineNumber: 230,
|
|
308
322
|
columnNumber: 13
|
|
309
323
|
}
|
|
310
324
|
}, actions == null ? void 0 : actions[0].text))))) : _react["default"].createElement(_reactNative.TouchableOpacity, (0, _extends2["default"])({
|
|
@@ -333,32 +347,33 @@ var GiphyWithContext = function GiphyWithContext(props) {
|
|
|
333
347
|
});
|
|
334
348
|
}
|
|
335
349
|
},
|
|
336
|
-
style: [styles.container, container],
|
|
337
350
|
testID: "giphy-attachment"
|
|
338
351
|
}, additionalTouchableProps, {
|
|
339
352
|
__self: _this,
|
|
340
353
|
__source: {
|
|
341
354
|
fileName: _jsxFileName,
|
|
342
|
-
lineNumber:
|
|
355
|
+
lineNumber: 236,
|
|
343
356
|
columnNumber: 5
|
|
344
357
|
}
|
|
345
358
|
}), _react["default"].createElement(_reactNative.View, {
|
|
359
|
+
style: [styles.container, container],
|
|
346
360
|
__self: _this,
|
|
347
361
|
__source: {
|
|
348
362
|
fileName: _jsxFileName,
|
|
349
|
-
lineNumber:
|
|
363
|
+
lineNumber: 265,
|
|
350
364
|
columnNumber: 7
|
|
351
365
|
}
|
|
352
366
|
}, _react["default"].createElement(_reactNative.Image, {
|
|
353
|
-
resizeMode: "
|
|
367
|
+
resizeMode: "contain",
|
|
354
368
|
source: {
|
|
355
369
|
uri: (0, _utils.makeImageCompatibleUrl)(uri)
|
|
356
370
|
},
|
|
357
|
-
style: [styles.giphy, giphy],
|
|
371
|
+
style: [styles.giphy, giphyDimensions, giphy],
|
|
372
|
+
testID: "giphy-attachment-image",
|
|
358
373
|
__self: _this,
|
|
359
374
|
__source: {
|
|
360
375
|
fileName: _jsxFileName,
|
|
361
|
-
lineNumber:
|
|
376
|
+
lineNumber: 266,
|
|
362
377
|
columnNumber: 9
|
|
363
378
|
}
|
|
364
379
|
}), _react["default"].createElement(_reactNative.View, {
|
|
@@ -366,17 +381,17 @@ var GiphyWithContext = function GiphyWithContext(props) {
|
|
|
366
381
|
__self: _this,
|
|
367
382
|
__source: {
|
|
368
383
|
fileName: _jsxFileName,
|
|
369
|
-
lineNumber:
|
|
384
|
+
lineNumber: 272,
|
|
370
385
|
columnNumber: 9
|
|
371
386
|
}
|
|
372
387
|
}, _react["default"].createElement(_reactNative.View, {
|
|
373
388
|
style: [styles.giphyContainer, {
|
|
374
|
-
backgroundColor:
|
|
389
|
+
backgroundColor: label_bg_transparent
|
|
375
390
|
}, giphyContainer],
|
|
376
391
|
__self: _this,
|
|
377
392
|
__source: {
|
|
378
393
|
fileName: _jsxFileName,
|
|
379
|
-
lineNumber:
|
|
394
|
+
lineNumber: 273,
|
|
380
395
|
columnNumber: 11
|
|
381
396
|
}
|
|
382
397
|
}, _react["default"].createElement(_Lightning.Lightning, {
|
|
@@ -386,7 +401,7 @@ var GiphyWithContext = function GiphyWithContext(props) {
|
|
|
386
401
|
__self: _this,
|
|
387
402
|
__source: {
|
|
388
403
|
fileName: _jsxFileName,
|
|
389
|
-
lineNumber:
|
|
404
|
+
lineNumber: 280,
|
|
390
405
|
columnNumber: 13
|
|
391
406
|
}
|
|
392
407
|
}), _react["default"].createElement(_reactNative.Text, {
|
|
@@ -396,7 +411,7 @@ var GiphyWithContext = function GiphyWithContext(props) {
|
|
|
396
411
|
__self: _this,
|
|
397
412
|
__source: {
|
|
398
413
|
fileName: _jsxFileName,
|
|
399
|
-
lineNumber:
|
|
414
|
+
lineNumber: 281,
|
|
400
415
|
columnNumber: 13
|
|
401
416
|
}
|
|
402
417
|
}, type == null ? void 0 : type.toUpperCase())))));
|
|
@@ -406,15 +421,19 @@ var areEqual = function areEqual(prevProps, nextProps) {
|
|
|
406
421
|
var _prevProps$attachment = prevProps.attachment,
|
|
407
422
|
prevActions = _prevProps$attachment.actions,
|
|
408
423
|
prevImageUrl = _prevProps$attachment.image_url,
|
|
409
|
-
prevThumbUrl = _prevProps$attachment.thumb_url
|
|
424
|
+
prevThumbUrl = _prevProps$attachment.thumb_url,
|
|
425
|
+
prevGiphyVersion = prevProps.giphyVersion;
|
|
410
426
|
var _nextProps$attachment = nextProps.attachment,
|
|
411
427
|
nextActions = _nextProps$attachment.actions,
|
|
412
428
|
nextImageUrl = _nextProps$attachment.image_url,
|
|
413
|
-
nextThumbUrl = _nextProps$attachment.thumb_url
|
|
429
|
+
nextThumbUrl = _nextProps$attachment.thumb_url,
|
|
430
|
+
nextGiphyVersion = nextProps.giphyVersion;
|
|
414
431
|
var imageUrlEqual = prevImageUrl === nextImageUrl;
|
|
415
432
|
if (!imageUrlEqual) return false;
|
|
416
433
|
var thumbUrlEqual = prevThumbUrl === nextThumbUrl;
|
|
417
434
|
if (!thumbUrlEqual) return false;
|
|
435
|
+
var giphyVersionEqual = prevGiphyVersion === nextGiphyVersion;
|
|
436
|
+
if (!giphyVersionEqual) return false;
|
|
418
437
|
var actionsEqual = Array.isArray(prevActions) === Array.isArray(nextActions) && (Array.isArray(prevActions) && Array.isArray(nextActions) && prevActions.length === nextActions.length || prevActions === nextActions);
|
|
419
438
|
if (!actionsEqual) return false;
|
|
420
439
|
return true;
|
|
@@ -431,10 +450,12 @@ var Giphy = function Giphy(props) {
|
|
|
431
450
|
preventPress = _useMessageContext.preventPress;
|
|
432
451
|
|
|
433
452
|
var _useMessagesContext = (0, _MessagesContext.useMessagesContext)(),
|
|
434
|
-
additionalTouchableProps = _useMessagesContext.additionalTouchableProps
|
|
453
|
+
additionalTouchableProps = _useMessagesContext.additionalTouchableProps,
|
|
454
|
+
giphyVersion = _useMessagesContext.giphyVersion;
|
|
435
455
|
|
|
436
456
|
return _react["default"].createElement(MemoizedGiphy, (0, _extends2["default"])({
|
|
437
457
|
additionalTouchableProps: additionalTouchableProps,
|
|
458
|
+
giphyVersion: giphyVersion,
|
|
438
459
|
handleAction: handleAction,
|
|
439
460
|
onLongPress: onLongPress,
|
|
440
461
|
onPress: onPress,
|
|
@@ -444,7 +465,7 @@ var Giphy = function Giphy(props) {
|
|
|
444
465
|
__self: _this,
|
|
445
466
|
__source: {
|
|
446
467
|
fileName: _jsxFileName,
|
|
447
|
-
lineNumber:
|
|
468
|
+
lineNumber: 348,
|
|
448
469
|
columnNumber: 5
|
|
449
470
|
}
|
|
450
471
|
}));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["Giphy.tsx"],"names":["styles","StyleSheet","create","buttonContainer","alignItems","borderTopWidth","flex","justifyContent","cancel","fontSize","fontWeight","paddingVertical","container","overflow","width","giphy","borderRadius","height","giphyContainer","flexDirection","giphyHeaderText","giphyHeaderTitle","giphyMask","bottom","left","position","giphyMaskText","header","display","padding","margin","row","selectionContainer","borderBottomLeftRadius","borderWidth","send","shuffle","shuffleButton","GiphyWithContext","props","additionalTouchableProps","attachment","handleAction","onLongPress","onPress","onPressIn","preventPress","actions","image_url","thumb_url","title","type","theme","colors","accent_blue","black","grey","grey_dark","grey_gainsboro","white","messageSimple","uri","backgroundColor","borderColor","color","name","value","borderRightWidth","text","event","emitter","toUpperCase","areEqual","prevProps","nextProps","prevActions","prevImageUrl","prevThumbUrl","nextActions","nextImageUrl","nextThumbUrl","imageUrlEqual","thumbUrlEqual","actionsEqual","Array","isArray","length","MemoizedGiphy","React","memo","Giphy","displayName"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { Image, StyleSheet, Text, TouchableOpacity, View } from 'react-native';\n\nimport type { Attachment } from 'stream-chat';\n\nimport {\n MessageContextValue,\n useMessageContext,\n} from '../../contexts/messageContext/MessageContext';\nimport {\n MessagesContextValue,\n useMessagesContext,\n} from '../../contexts/messagesContext/MessagesContext';\nimport { useTheme } from '../../contexts/themeContext/ThemeContext';\nimport { GiphyIcon } from '../../icons';\nimport { Lightning } from '../../icons/Lightning';\nimport type { DefaultStreamChatGenerics } from '../../types/types';\nimport { makeImageCompatibleUrl } from '../../utils/utils';\n\nconst styles = StyleSheet.create({\n buttonContainer: { alignItems: 'center', borderTopWidth: 1, flex: 1, justifyContent: 'center' },\n cancel: {\n fontSize: 14,\n fontWeight: '600',\n paddingVertical: 16,\n },\n container: {\n overflow: 'hidden',\n width: 270,\n },\n giphy: {\n borderRadius: 2,\n height: 170,\n width: 270,\n },\n giphyContainer: {\n alignItems: 'center',\n borderRadius: 12,\n flexDirection: 'row',\n height: 24,\n justifyContent: 'center',\n width: 68,\n },\n giphyHeaderText: {\n fontSize: 16,\n fontWeight: '600',\n },\n giphyHeaderTitle: {\n fontSize: 14,\n },\n giphyMask: {\n bottom: 8,\n left: 8,\n position: 'absolute',\n },\n giphyMaskText: { fontSize: 13, fontWeight: '600' },\n header: {\n alignItems: 'center',\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'space-between',\n padding: 8,\n width: '60%',\n },\n margin: {\n margin: 1,\n },\n row: { flexDirection: 'row' },\n selectionContainer: {\n borderBottomLeftRadius: 8,\n borderWidth: 1,\n overflow: 'hidden',\n width: 272,\n },\n send: {\n fontSize: 14,\n fontWeight: '600',\n paddingVertical: 16,\n },\n shuffle: {\n fontSize: 14,\n fontWeight: '600',\n paddingVertical: 16,\n },\n shuffleButton: {\n alignItems: 'center',\n borderRadius: 16,\n borderWidth: 1,\n height: 32,\n justifyContent: 'center',\n width: 32,\n },\n});\n\nexport type GiphyPropsWithContext<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Pick<\n MessageContextValue<StreamChatGenerics>,\n 'handleAction' | 'onLongPress' | 'onPress' | 'onPressIn' | 'preventPress'\n> &\n Pick<MessagesContextValue<StreamChatGenerics>, 'additionalTouchableProps'> & {\n attachment: Attachment<StreamChatGenerics>;\n };\n\nconst GiphyWithContext = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: GiphyPropsWithContext<StreamChatGenerics>,\n) => {\n const {\n additionalTouchableProps,\n attachment,\n handleAction,\n onLongPress,\n onPress,\n onPressIn,\n preventPress,\n } = props;\n\n const { actions, image_url, thumb_url, title, type } = attachment;\n\n const {\n theme: {\n colors: { accent_blue, black, grey, grey_dark, grey_gainsboro, white },\n messageSimple: {\n giphy: {\n buttonContainer,\n cancel,\n container,\n giphy,\n giphyContainer,\n giphyHeaderText,\n giphyHeaderTitle,\n giphyMask,\n giphyMaskText,\n header,\n selectionContainer,\n send,\n shuffle,\n },\n },\n },\n } = useTheme();\n\n const uri = image_url || thumb_url;\n\n if (!uri) return null;\n\n return actions ? (\n <View\n style={[\n styles.selectionContainer,\n { backgroundColor: white, borderColor: `${black}0D` },\n selectionContainer,\n ]}\n >\n <View style={[styles.header, header]}>\n <GiphyIcon />\n <Text style={[styles.giphyHeaderText, giphyHeaderText]}>Giphy</Text>\n <Text\n style={[styles.giphyHeaderTitle, giphyHeaderTitle, { color: grey_dark }]}\n >{`/giphy ${title}`}</Text>\n </View>\n <View style={styles.margin}>\n <Image\n resizeMode='cover'\n source={{ uri: makeImageCompatibleUrl(uri) }}\n style={[styles.giphy, giphy]}\n />\n </View>\n <View>\n <View style={styles.row}>\n <TouchableOpacity\n onPress={() => {\n if (actions?.[2].name && actions?.[2].value && handleAction) {\n handleAction(actions[2].name, actions[2].value);\n }\n }}\n style={[\n styles.buttonContainer,\n { borderColor: grey_gainsboro, borderRightWidth: 1 },\n buttonContainer,\n ]}\n >\n <Text style={[styles.cancel, { color: grey }, cancel]}>{actions?.[2].text}</Text>\n </TouchableOpacity>\n <TouchableOpacity\n onPress={() => {\n if (actions?.[1].name && actions?.[1].value && handleAction) {\n handleAction(actions[1].name, actions[1].value);\n }\n }}\n style={[\n styles.buttonContainer,\n { borderColor: grey_gainsboro, borderRightWidth: 1 },\n buttonContainer,\n ]}\n >\n <Text style={[styles.shuffle, { color: grey }, shuffle]}>{actions?.[1].text}</Text>\n </TouchableOpacity>\n <TouchableOpacity\n onPress={() => {\n if (actions?.[0].name && actions?.[0].value && handleAction) {\n handleAction(actions[0].name, actions[0].value);\n }\n }}\n style={[styles.buttonContainer, { borderColor: grey_gainsboro }, buttonContainer]}\n >\n <Text style={[styles.send, { color: accent_blue }, send]}>{actions?.[0].text}</Text>\n </TouchableOpacity>\n </View>\n </View>\n </View>\n ) : (\n <TouchableOpacity\n disabled={preventPress}\n onLongPress={(event) => {\n if (onLongPress) {\n onLongPress({\n emitter: 'giphy',\n event,\n });\n }\n }}\n onPress={(event) => {\n if (onPress) {\n onPress({\n emitter: 'giphy',\n event,\n });\n }\n }}\n onPressIn={(event) => {\n if (onPressIn) {\n onPressIn({\n emitter: 'giphy',\n event,\n });\n }\n }}\n style={[styles.container, container]}\n testID='giphy-attachment'\n {...additionalTouchableProps}\n >\n <View>\n <Image\n resizeMode='cover'\n source={{ uri: makeImageCompatibleUrl(uri) }}\n style={[styles.giphy, giphy]}\n />\n <View style={[styles.giphyMask, giphyMask]}>\n <View style={[styles.giphyContainer, { backgroundColor: grey_dark }, giphyContainer]}>\n <Lightning height={16} pathFill={white} width={16} />\n <Text style={[styles.giphyMaskText, { color: white }, giphyMaskText]}>\n {type?.toUpperCase()}\n </Text>\n </View>\n </View>\n </View>\n </TouchableOpacity>\n );\n};\n\nconst areEqual = <StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>(\n prevProps: GiphyPropsWithContext<StreamChatGenerics>,\n nextProps: GiphyPropsWithContext<StreamChatGenerics>,\n) => {\n const {\n attachment: { actions: prevActions, image_url: prevImageUrl, thumb_url: prevThumbUrl },\n } = prevProps;\n const {\n attachment: { actions: nextActions, image_url: nextImageUrl, thumb_url: nextThumbUrl },\n } = nextProps;\n\n const imageUrlEqual = prevImageUrl === nextImageUrl;\n if (!imageUrlEqual) return false;\n\n const thumbUrlEqual = prevThumbUrl === nextThumbUrl;\n if (!thumbUrlEqual) return false;\n\n const actionsEqual =\n Array.isArray(prevActions) === Array.isArray(nextActions) &&\n ((Array.isArray(prevActions) &&\n Array.isArray(nextActions) &&\n prevActions.length === nextActions.length) ||\n prevActions === nextActions);\n if (!actionsEqual) return false;\n\n return true;\n};\n\nconst MemoizedGiphy = React.memo(GiphyWithContext, areEqual) as typeof GiphyWithContext;\n\nexport type GiphyProps<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Partial<\n Pick<MessageContextValue<StreamChatGenerics>, 'onLongPress' | 'onPressIn'> &\n Pick<MessagesContextValue<StreamChatGenerics>, 'additionalTouchableProps'>\n> & {\n attachment: Attachment<StreamChatGenerics>;\n};\n\n/**\n * UI component for card in attachments.\n */\nexport const Giphy = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: GiphyProps<StreamChatGenerics>,\n) => {\n const { handleAction, onLongPress, onPress, onPressIn, preventPress } =\n useMessageContext<StreamChatGenerics>();\n const { additionalTouchableProps } = useMessagesContext<StreamChatGenerics>();\n\n return (\n <MemoizedGiphy\n {...{\n additionalTouchableProps,\n handleAction,\n onLongPress,\n onPress,\n onPressIn,\n preventPress,\n }}\n {...props}\n />\n );\n};\n\nGiphy.displayName = 'Giphy{messageSimple{giphy}}';\n"]}
|
|
1
|
+
{"version":3,"sources":["Giphy.tsx"],"names":["styles","StyleSheet","create","actionsRow","flexDirection","buttonContainer","alignItems","borderTopWidth","flex","justifyContent","cancel","fontSize","fontWeight","paddingVertical","container","overflow","width","giphy","alignSelf","borderRadius","height","maxWidth","giphyContainer","giphyHeaderText","giphyHeaderTitle","giphyMask","bottom","left","position","giphyMaskText","header","display","padding","selectionContainer","borderBottomLeftRadius","borderWidth","selectionImageContainer","margin","send","shuffle","shuffleButton","GiphyWithContext","props","additionalTouchableProps","attachment","handleAction","onLongPress","onPress","onPressIn","preventPress","actions","giphyData","image_url","thumb_url","title","type","theme","colors","accent_blue","black","grey","grey_dark","grey_gainsboro","label_bg_transparent","white","messageSimple","uri","giphyDimensions","giphyVersionInfo","giphyVersion","url","parseFloat","backgroundColor","borderColor","color","name","value","borderRightWidth","text","event","emitter","toUpperCase","areEqual","prevProps","nextProps","prevActions","prevImageUrl","prevThumbUrl","prevGiphyVersion","nextActions","nextImageUrl","nextThumbUrl","nextGiphyVersion","imageUrlEqual","thumbUrlEqual","giphyVersionEqual","actionsEqual","Array","isArray","length","MemoizedGiphy","React","memo","Giphy","displayName"],"mappings":";;;;;;;;;AAAA;;AACA;;AAIA;;AAIA;;AAIA;;AACA;;AACA;;AAEA;;;;;AAEA,IAAMA,MAAM,GAAGC,wBAAWC,MAAX,CAAkB;AAC/BC,EAAAA,UAAU,EAAE;AACVC,IAAAA,aAAa,EAAE;AADL,GADmB;AAI/BC,EAAAA,eAAe,EAAE;AACfC,IAAAA,UAAU,EAAE,QADG;AAEfC,IAAAA,cAAc,EAAE,CAFD;AAGfC,IAAAA,IAAI,EAAE,CAHS;AAIfC,IAAAA,cAAc,EAAE;AAJD,GAJc;AAU/BC,EAAAA,MAAM,EAAE;AACNC,IAAAA,QAAQ,EAAE,EADJ;AAENC,IAAAA,UAAU,EAAE,KAFN;AAGNC,IAAAA,eAAe,EAAE;AAHX,GAVuB;AAe/BC,EAAAA,SAAS,EAAE;AACTC,IAAAA,QAAQ,EAAE,QADD;AAETC,IAAAA,KAAK,EAAE;AAFE,GAfoB;AAmB/BC,EAAAA,KAAK,EAAE;AACLC,IAAAA,SAAS,EAAE,QADN;AAELC,IAAAA,YAAY,EAAE,CAFT;AAGLC,IAAAA,MAAM,EAAE,GAHH;AAILC,IAAAA,QAAQ,EAAE,GAJL;AAKLL,IAAAA,KAAK,EAAE;AALF,GAnBwB;AA0B/BM,EAAAA,cAAc,EAAE;AACdhB,IAAAA,UAAU,EAAE,QADE;AAEda,IAAAA,YAAY,EAAE,EAFA;AAGdf,IAAAA,aAAa,EAAE,KAHD;AAIdgB,IAAAA,MAAM,EAAE,EAJM;AAKdX,IAAAA,cAAc,EAAE,QALF;AAMdO,IAAAA,KAAK,EAAE;AANO,GA1Be;AAkC/BO,EAAAA,eAAe,EAAE;AACfZ,IAAAA,QAAQ,EAAE,EADK;AAEfC,IAAAA,UAAU,EAAE;AAFG,GAlCc;AAsC/BY,EAAAA,gBAAgB,EAAE;AAChBb,IAAAA,QAAQ,EAAE;AADM,GAtCa;AAyC/Bc,EAAAA,SAAS,EAAE;AACTC,IAAAA,MAAM,EAAE,CADC;AAETC,IAAAA,IAAI,EAAE,CAFG;AAGTC,IAAAA,QAAQ,EAAE;AAHD,GAzCoB;AA8C/BC,EAAAA,aAAa,EAAE;AACblB,IAAAA,QAAQ,EAAE,EADG;AAEbC,IAAAA,UAAU,EAAE;AAFC,GA9CgB;AAkD/BkB,EAAAA,MAAM,EAAE;AACNxB,IAAAA,UAAU,EAAE,QADN;AAENyB,IAAAA,OAAO,EAAE,MAFH;AAGN3B,IAAAA,aAAa,EAAE,KAHT;AAINK,IAAAA,cAAc,EAAE,eAJV;AAKNuB,IAAAA,OAAO,EAAE,CALH;AAMNhB,IAAAA,KAAK,EAAE;AAND,GAlDuB;AA0D/BiB,EAAAA,kBAAkB,EAAE;AAClBC,IAAAA,sBAAsB,EAAE,CADN;AAElBC,IAAAA,WAAW,EAAE,CAFK;AAGlBpB,IAAAA,QAAQ,EAAE,QAHQ;AAIlBC,IAAAA,KAAK,EAAE;AAJW,GA1DW;AAgE/BoB,EAAAA,uBAAuB,EAAE;AACvBlB,IAAAA,SAAS,EAAE,QADY;AAEvBmB,IAAAA,MAAM,EAAE;AAFe,GAhEM;AAoE/BC,EAAAA,IAAI,EAAE;AACJ3B,IAAAA,QAAQ,EAAE,EADN;AAEJC,IAAAA,UAAU,EAAE,KAFR;AAGJC,IAAAA,eAAe,EAAE;AAHb,GApEyB;AAyE/B0B,EAAAA,OAAO,EAAE;AACP5B,IAAAA,QAAQ,EAAE,EADH;AAEPC,IAAAA,UAAU,EAAE,KAFL;AAGPC,IAAAA,eAAe,EAAE;AAHV,GAzEsB;AA8E/B2B,EAAAA,aAAa,EAAE;AACblC,IAAAA,UAAU,EAAE,QADC;AAEba,IAAAA,YAAY,EAAE,EAFD;AAGbgB,IAAAA,WAAW,EAAE,CAHA;AAIbf,IAAAA,MAAM,EAAE,EAJK;AAKbX,IAAAA,cAAc,EAAE,QALH;AAMbO,IAAAA,KAAK,EAAE;AANM;AA9EgB,CAAlB,CAAf;;AAkGA,IAAMyB,gBAAgB,GAAG,SAAnBA,gBAAmB,CAGvBC,KAHuB,EAIpB;AACH,MACEC,wBADF,GAQID,KARJ,CACEC,wBADF;AAAA,MAEEC,UAFF,GAQIF,KARJ,CAEEE,UAFF;AAAA,MAGEC,YAHF,GAQIH,KARJ,CAGEG,YAHF;AAAA,MAIEC,YAJF,GAQIJ,KARJ,CAIEI,WAJF;AAAA,MAKEC,QALF,GAQIL,KARJ,CAKEK,OALF;AAAA,MAMEC,UANF,GAQIN,KARJ,CAMEM,SANF;AAAA,MAOEC,YAPF,GAQIP,KARJ,CAOEO,YAPF;AAUA,MAAQC,OAAR,GAAyEN,UAAzE,CAAQM,OAAR;AAAA,MAAwBC,SAAxB,GAAyEP,UAAzE,CAAiB3B,KAAjB;AAAA,MAAmCmC,SAAnC,GAAyER,UAAzE,CAAmCQ,SAAnC;AAAA,MAA8CC,SAA9C,GAAyET,UAAzE,CAA8CS,SAA9C;AAAA,MAAyDC,KAAzD,GAAyEV,UAAzE,CAAyDU,KAAzD;AAAA,MAAgEC,IAAhE,GAAyEX,UAAzE,CAAgEW,IAAhE;;AAEA,kBAqBI,6BArBJ;AAAA,kCACEC,KADF;AAAA,8CAEIC,MAFJ;AAAA,MAEcC,WAFd,yBAEcA,WAFd;AAAA,MAE2BC,KAF3B,yBAE2BA,KAF3B;AAAA,MAEkCC,IAFlC,yBAEkCA,IAFlC;AAAA,MAEwCC,SAFxC,yBAEwCA,SAFxC;AAAA,MAEmDC,cAFnD,yBAEmDA,cAFnD;AAAA,MAEmEC,oBAFnE,yBAEmEA,oBAFnE;AAAA,MAEyFC,KAFzF,yBAEyFA,KAFzF;AAAA,8CAGIC,aAHJ,CAIMhD,KAJN;AAAA,MAKQZ,eALR,yBAKQA,eALR;AAAA,MAMQK,MANR,yBAMQA,MANR;AAAA,MAOQI,SAPR,yBAOQA,SAPR;AAAA,MAQQG,KARR,yBAQQA,KARR;AAAA,MASQK,cATR,yBASQA,cATR;AAAA,MAUQC,eAVR,yBAUQA,eAVR;AAAA,MAWQC,gBAXR,yBAWQA,gBAXR;AAAA,MAYQC,SAZR,yBAYQA,SAZR;AAAA,MAaQI,aAbR,yBAaQA,aAbR;AAAA,MAcQC,MAdR,yBAcQA,MAdR;AAAA,MAeQG,kBAfR,yBAeQA,kBAfR;AAAA,MAgBQK,IAhBR,yBAgBQA,IAhBR;AAAA,MAiBQC,OAjBR,yBAiBQA,OAjBR;;AAuBA,MAAI2B,GAAG,GAAGd,SAAS,IAAIC,SAAvB;AACA,MAAMc,eAAoD,GAAG,EAA7D;;AAEA,MAAIZ,IAAI,KAAK,OAAT,IAAoBJ,SAAxB,EAAmC;AACjC,QAAMiB,gBAAgB,GAAGjB,SAAS,CAACT,KAAK,CAAC2B,YAAP,CAAlC;AACAH,IAAAA,GAAG,GAAGE,gBAAgB,CAACE,GAAvB;AACAH,IAAAA,eAAe,CAAC/C,MAAhB,GAAyBmD,UAAU,CAACH,gBAAgB,CAAChD,MAAlB,CAAnC;AACA+C,IAAAA,eAAe,CAACnD,KAAhB,GAAwBuD,UAAU,CAACH,gBAAgB,CAACpD,KAAlB,CAAlC;AACD;;AAED,MAAI,CAACkD,GAAL,EAAU,OAAO,IAAP;AAEV,SAAOhB,OAAO,GACZ,gCAAC,iBAAD;AACE,IAAA,KAAK,EAAE,CACLlD,MAAM,CAACiC,kBADF,EAEL;AAAEuC,MAAAA,eAAe,EAAER,KAAnB;AAA0BS,MAAAA,WAAW,EAAKd,KAAL;AAArC,KAFK,EAGL1B,kBAHK,CADT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KAOE,gCAAC,iBAAD;AAAM,IAAA,KAAK,EAAE,CAACjC,MAAM,CAAC8B,MAAR,EAAgBA,MAAhB,CAAb;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KACE,gCAAC,gBAAD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IADF,EAEE,gCAAC,iBAAD;AAAM,IAAA,KAAK,EAAE,CAAC9B,MAAM,CAACuB,eAAR,EAAyBA,eAAzB,CAAb;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,aAFF,EAGE,gCAAC,iBAAD;AACE,IAAA,KAAK,EAAE,CAACvB,MAAM,CAACwB,gBAAR,EAA0BA,gBAA1B,EAA4C;AAAEkD,MAAAA,KAAK,EAAEb;AAAT,KAA5C,CADT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,iBAEYP,KAFZ,CAHF,CAPF,EAcE,gCAAC,iBAAD;AAAM,IAAA,KAAK,EAAEtD,MAAM,CAACoC,uBAApB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KACE,gCAAC,kBAAD;AACE,IAAA,UAAU,EAAC,SADb;AAEE,IAAA,MAAM,EAAE;AAAE8B,MAAAA,GAAG,EAAE,mCAAuBA,GAAvB;AAAP,KAFV;AAGE,IAAA,KAAK,EAAE,CAAClE,MAAM,CAACiB,KAAR,EAAekD,eAAf,EAAgClD,KAAhC,CAHT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IADF,CAdF,EAqBE,gCAAC,iBAAD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KACE,gCAAC,iBAAD;AAAM,IAAA,KAAK,EAAEjB,MAAM,CAACG,UAApB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KACE,gCAAC,6BAAD;AACE,IAAA,OAAO,EAAE,mBAAM;AACb,UAAI+C,OAAO,QAAP,IAAAA,OAAO,CAAG,CAAH,CAAP,CAAayB,IAAb,IAAqBzB,OAArB,YAAqBA,OAAO,CAAG,CAAH,CAAP,CAAa0B,KAAlC,IAA2C/B,YAA/C,EAA6D;AAC3DA,QAAAA,YAAY,CAACK,OAAO,CAAC,CAAD,CAAP,CAAWyB,IAAZ,EAAkBzB,OAAO,CAAC,CAAD,CAAP,CAAW0B,KAA7B,CAAZ;AACD;AACF,KALH;AAME,IAAA,KAAK,EAAE,CACL5E,MAAM,CAACK,eADF,EAEL;AAAEoE,MAAAA,WAAW,EAAEX,cAAf;AAA+Be,MAAAA,gBAAgB,EAAE;AAAjD,KAFK,EAGLxE,eAHK,CANT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KAYE,gCAAC,iBAAD;AAAM,IAAA,KAAK,EAAE,CAACL,MAAM,CAACU,MAAR,EAAgB;AAAEgE,MAAAA,KAAK,EAAEd;AAAT,KAAhB,EAAiClD,MAAjC,CAAb;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KAAwDwC,OAAxD,oBAAwDA,OAAO,CAAG,CAAH,CAAP,CAAa4B,IAArE,CAZF,CADF,EAeE,gCAAC,6BAAD;AACE,IAAA,OAAO,EAAE,mBAAM;AACb,UAAI5B,OAAO,QAAP,IAAAA,OAAO,CAAG,CAAH,CAAP,CAAayB,IAAb,IAAqBzB,OAArB,YAAqBA,OAAO,CAAG,CAAH,CAAP,CAAa0B,KAAlC,IAA2C/B,YAA/C,EAA6D;AAC3DA,QAAAA,YAAY,CAACK,OAAO,CAAC,CAAD,CAAP,CAAWyB,IAAZ,EAAkBzB,OAAO,CAAC,CAAD,CAAP,CAAW0B,KAA7B,CAAZ;AACD;AACF,KALH;AAME,IAAA,KAAK,EAAE,CACL5E,MAAM,CAACK,eADF,EAEL;AAAEoE,MAAAA,WAAW,EAAEX,cAAf;AAA+Be,MAAAA,gBAAgB,EAAE;AAAjD,KAFK,EAGLxE,eAHK,CANT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KAYE,gCAAC,iBAAD;AAAM,IAAA,KAAK,EAAE,CAACL,MAAM,CAACuC,OAAR,EAAiB;AAAEmC,MAAAA,KAAK,EAAEd;AAAT,KAAjB,EAAkCrB,OAAlC,CAAb;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KAA0DW,OAA1D,oBAA0DA,OAAO,CAAG,CAAH,CAAP,CAAa4B,IAAvE,CAZF,CAfF,EA6BE,gCAAC,6BAAD;AACE,IAAA,OAAO,EAAE,mBAAM;AACb,UAAI5B,OAAO,QAAP,IAAAA,OAAO,CAAG,CAAH,CAAP,CAAayB,IAAb,IAAqBzB,OAArB,YAAqBA,OAAO,CAAG,CAAH,CAAP,CAAa0B,KAAlC,IAA2C/B,YAA/C,EAA6D;AAC3DA,QAAAA,YAAY,CAACK,OAAO,CAAC,CAAD,CAAP,CAAWyB,IAAZ,EAAkBzB,OAAO,CAAC,CAAD,CAAP,CAAW0B,KAA7B,CAAZ;AACD;AACF,KALH;AAME,IAAA,KAAK,EAAE,CAAC5E,MAAM,CAACK,eAAR,EAAyB;AAAEoE,MAAAA,WAAW,EAAEX;AAAf,KAAzB,EAA0DzD,eAA1D,CANT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KAQE,gCAAC,iBAAD;AAAM,IAAA,KAAK,EAAE,CAACL,MAAM,CAACsC,IAAR,EAAc;AAAEoC,MAAAA,KAAK,EAAEhB;AAAT,KAAd,EAAsCpB,IAAtC,CAAb;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KAA2DY,OAA3D,oBAA2DA,OAAO,CAAG,CAAH,CAAP,CAAa4B,IAAxE,CARF,CA7BF,CADF,CArBF,CADY,GAkEZ,gCAAC,6BAAD;AACE,IAAA,QAAQ,EAAE7B,YADZ;AAEE,IAAA,WAAW,EAAE,qBAAC8B,KAAD,EAAW;AACtB,UAAIjC,YAAJ,EAAiB;AACfA,QAAAA,YAAW,CAAC;AACVkC,UAAAA,OAAO,EAAE,OADC;AAEVD,UAAAA,KAAK,EAALA;AAFU,SAAD,CAAX;AAID;AACF,KATH;AAUE,IAAA,OAAO,EAAE,iBAACA,KAAD,EAAW;AAClB,UAAIhC,QAAJ,EAAa;AACXA,QAAAA,QAAO,CAAC;AACNiC,UAAAA,OAAO,EAAE,OADH;AAEND,UAAAA,KAAK,EAALA;AAFM,SAAD,CAAP;AAID;AACF,KAjBH;AAkBE,IAAA,SAAS,EAAE,mBAACA,KAAD,EAAW;AACpB,UAAI/B,UAAJ,EAAe;AACbA,QAAAA,UAAS,CAAC;AACRgC,UAAAA,OAAO,EAAE,OADD;AAERD,UAAAA,KAAK,EAALA;AAFQ,SAAD,CAAT;AAID;AACF,KAzBH;AA0BE,IAAA,MAAM,EAAC;AA1BT,KA2BMpC,wBA3BN;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MA6BE,gCAAC,iBAAD;AAAM,IAAA,KAAK,EAAE,CAAC3C,MAAM,CAACc,SAAR,EAAmBA,SAAnB,CAAb;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KACE,gCAAC,kBAAD;AACE,IAAA,UAAU,EAAC,SADb;AAEE,IAAA,MAAM,EAAE;AAAEoD,MAAAA,GAAG,EAAE,mCAAuBA,GAAvB;AAAP,KAFV;AAGE,IAAA,KAAK,EAAE,CAAClE,MAAM,CAACiB,KAAR,EAAekD,eAAf,EAAgClD,KAAhC,CAHT;AAIE,IAAA,MAAM,EAAC,wBAJT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IADF,EAOE,gCAAC,iBAAD;AAAM,IAAA,KAAK,EAAE,CAACjB,MAAM,CAACyB,SAAR,EAAmBA,SAAnB,CAAb;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KACE,gCAAC,iBAAD;AACE,IAAA,KAAK,EAAE,CACLzB,MAAM,CAACsB,cADF,EAEL;AAAEkD,MAAAA,eAAe,EAAET;AAAnB,KAFK,EAGLzC,cAHK,CADT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KAOE,gCAAC,oBAAD;AAAW,IAAA,MAAM,EAAE,EAAnB;AAAuB,IAAA,QAAQ,EAAE0C,KAAjC;AAAwC,IAAA,KAAK,EAAE,EAA/C;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAPF,EAQE,gCAAC,iBAAD;AAAM,IAAA,KAAK,EAAE,CAAChE,MAAM,CAAC6B,aAAR,EAAuB;AAAE6C,MAAAA,KAAK,EAAEV;AAAT,KAAvB,EAAyCnC,aAAzC,CAAb;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KACG0B,IADH,oBACGA,IAAI,CAAE0B,WAAN,EADH,CARF,CADF,CAPF,CA7BF,CAlEF;AAuHD,CA3KD;;AA6KA,IAAMC,QAAQ,GAAG,SAAXA,QAAW,CACfC,SADe,EAEfC,SAFe,EAGZ;AACH,8BAGID,SAHJ,CACEvC,UADF;AAAA,MACyByC,WADzB,yBACgBnC,OADhB;AAAA,MACiDoC,YADjD,yBACsClC,SADtC;AAAA,MAC0EmC,YAD1E,yBAC+DlC,SAD/D;AAAA,MAEgBmC,gBAFhB,GAGIL,SAHJ,CAEEd,YAFF;AAIA,8BAGIe,SAHJ,CACExC,UADF;AAAA,MACyB6C,WADzB,yBACgBvC,OADhB;AAAA,MACiDwC,YADjD,yBACsCtC,SADtC;AAAA,MAC0EuC,YAD1E,yBAC+DtC,SAD/D;AAAA,MAEgBuC,gBAFhB,GAGIR,SAHJ,CAEEf,YAFF;AAKA,MAAMwB,aAAa,GAAGP,YAAY,KAAKI,YAAvC;AACA,MAAI,CAACG,aAAL,EAAoB,OAAO,KAAP;AAEpB,MAAMC,aAAa,GAAGP,YAAY,KAAKI,YAAvC;AACA,MAAI,CAACG,aAAL,EAAoB,OAAO,KAAP;AAEpB,MAAMC,iBAAiB,GAAGP,gBAAgB,KAAKI,gBAA/C;AACA,MAAI,CAACG,iBAAL,EAAwB,OAAO,KAAP;AAExB,MAAMC,YAAY,GAChBC,KAAK,CAACC,OAAN,CAAcb,WAAd,MAA+BY,KAAK,CAACC,OAAN,CAAcT,WAAd,CAA/B,KACEQ,KAAK,CAACC,OAAN,CAAcb,WAAd,KACAY,KAAK,CAACC,OAAN,CAAcT,WAAd,CADA,IAEAJ,WAAW,CAACc,MAAZ,KAAuBV,WAAW,CAACU,MAFpC,IAGCd,WAAW,KAAKI,WAJlB,CADF;AAMA,MAAI,CAACO,YAAL,EAAmB,OAAO,KAAP;AAEnB,SAAO,IAAP;AACD,CA/BD;;AAiCA,IAAMI,aAAa,GAAGC,kBAAMC,IAAN,CAAW7D,gBAAX,EAA6ByC,QAA7B,CAAtB;;AAcO,IAAMqB,KAAK,GAAG,SAARA,KAAQ,CAGnB7D,KAHmB,EAIhB;AACH,2BACE,wCADF;AAAA,MAAQG,YAAR,sBAAQA,YAAR;AAAA,MAAsBC,WAAtB,sBAAsBA,WAAtB;AAAA,MAAmCC,OAAnC,sBAAmCA,OAAnC;AAAA,MAA4CC,SAA5C,sBAA4CA,SAA5C;AAAA,MAAuDC,YAAvD,sBAAuDA,YAAvD;;AAEA,4BAAmD,0CAAnD;AAAA,MAAQN,wBAAR,uBAAQA,wBAAR;AAAA,MAAkC0B,YAAlC,uBAAkCA,YAAlC;;AAEA,SACE,gCAAC,aAAD;AAEI1B,IAAAA,wBAAwB,EAAxBA,wBAFJ;AAGI0B,IAAAA,YAAY,EAAZA,YAHJ;AAIIxB,IAAAA,YAAY,EAAZA,YAJJ;AAKIC,IAAAA,WAAW,EAAXA,WALJ;AAMIC,IAAAA,OAAO,EAAPA,OANJ;AAOIC,IAAAA,SAAS,EAATA,SAPJ;AAQIC,IAAAA,YAAY,EAAZA;AARJ,KAUMP,KAVN;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KADF;AAcD,CAvBM;;;AAyBP6D,KAAK,CAACC,WAAN,GAAoB,6BAApB","sourcesContent":["import React from 'react';\nimport { Image, StyleSheet, Text, TouchableOpacity, View } from 'react-native';\n\nimport type { Attachment } from 'stream-chat';\n\nimport {\n MessageContextValue,\n useMessageContext,\n} from '../../contexts/messageContext/MessageContext';\nimport {\n MessagesContextValue,\n useMessagesContext,\n} from '../../contexts/messagesContext/MessagesContext';\nimport { useTheme } from '../../contexts/themeContext/ThemeContext';\nimport { GiphyIcon } from '../../icons';\nimport { Lightning } from '../../icons/Lightning';\nimport type { DefaultStreamChatGenerics } from '../../types/types';\nimport { makeImageCompatibleUrl } from '../../utils/utils';\n\nconst styles = StyleSheet.create({\n actionsRow: {\n flexDirection: 'row',\n },\n buttonContainer: {\n alignItems: 'center',\n borderTopWidth: 1,\n flex: 1,\n justifyContent: 'center',\n },\n cancel: {\n fontSize: 14,\n fontWeight: '600',\n paddingVertical: 16,\n },\n container: {\n overflow: 'hidden',\n width: 270,\n },\n giphy: {\n alignSelf: 'center',\n borderRadius: 2,\n height: 170,\n maxWidth: 270,\n width: 270,\n },\n giphyContainer: {\n alignItems: 'center',\n borderRadius: 12,\n flexDirection: 'row',\n height: 24,\n justifyContent: 'center',\n width: 68,\n },\n giphyHeaderText: {\n fontSize: 16,\n fontWeight: '600',\n },\n giphyHeaderTitle: {\n fontSize: 14,\n },\n giphyMask: {\n bottom: 8,\n left: 8,\n position: 'absolute',\n },\n giphyMaskText: {\n fontSize: 13,\n fontWeight: '600',\n },\n header: {\n alignItems: 'center',\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'space-between',\n padding: 8,\n width: '60%',\n },\n selectionContainer: {\n borderBottomLeftRadius: 8,\n borderWidth: 1,\n overflow: 'hidden',\n width: 272,\n },\n selectionImageContainer: {\n alignSelf: 'center',\n margin: 1,\n },\n send: {\n fontSize: 14,\n fontWeight: '600',\n paddingVertical: 16,\n },\n shuffle: {\n fontSize: 14,\n fontWeight: '600',\n paddingVertical: 16,\n },\n shuffleButton: {\n alignItems: 'center',\n borderRadius: 16,\n borderWidth: 1,\n height: 32,\n justifyContent: 'center',\n width: 32,\n },\n});\n\nexport type GiphyPropsWithContext<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Pick<\n MessageContextValue<StreamChatGenerics>,\n 'handleAction' | 'onLongPress' | 'onPress' | 'onPressIn' | 'preventPress'\n> &\n Pick<MessagesContextValue<StreamChatGenerics>, 'giphyVersion' | 'additionalTouchableProps'> & {\n attachment: Attachment<StreamChatGenerics>;\n };\n\nconst GiphyWithContext = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: GiphyPropsWithContext<StreamChatGenerics>,\n) => {\n const {\n additionalTouchableProps,\n attachment,\n handleAction,\n onLongPress,\n onPress,\n onPressIn,\n preventPress,\n } = props;\n\n const { actions, giphy: giphyData, image_url, thumb_url, title, type } = attachment;\n\n const {\n theme: {\n colors: { accent_blue, black, grey, grey_dark, grey_gainsboro, label_bg_transparent, white },\n messageSimple: {\n giphy: {\n buttonContainer,\n cancel,\n container,\n giphy,\n giphyContainer,\n giphyHeaderText,\n giphyHeaderTitle,\n giphyMask,\n giphyMaskText,\n header,\n selectionContainer,\n send,\n shuffle,\n },\n },\n },\n } = useTheme();\n\n let uri = image_url || thumb_url;\n const giphyDimensions: { height?: number; width?: number } = {};\n\n if (type === 'giphy' && giphyData) {\n const giphyVersionInfo = giphyData[props.giphyVersion];\n uri = giphyVersionInfo.url;\n giphyDimensions.height = parseFloat(giphyVersionInfo.height);\n giphyDimensions.width = parseFloat(giphyVersionInfo.width);\n }\n\n if (!uri) return null;\n\n return actions ? (\n <View\n style={[\n styles.selectionContainer,\n { backgroundColor: white, borderColor: `${black}0D` },\n selectionContainer,\n ]}\n >\n <View style={[styles.header, header]}>\n <GiphyIcon />\n <Text style={[styles.giphyHeaderText, giphyHeaderText]}>Giphy</Text>\n <Text\n style={[styles.giphyHeaderTitle, giphyHeaderTitle, { color: grey_dark }]}\n >{`/giphy ${title}`}</Text>\n </View>\n <View style={styles.selectionImageContainer}>\n <Image\n resizeMode='contain'\n source={{ uri: makeImageCompatibleUrl(uri) }}\n style={[styles.giphy, giphyDimensions, giphy]}\n />\n </View>\n <View>\n <View style={styles.actionsRow}>\n <TouchableOpacity\n onPress={() => {\n if (actions?.[2].name && actions?.[2].value && handleAction) {\n handleAction(actions[2].name, actions[2].value);\n }\n }}\n style={[\n styles.buttonContainer,\n { borderColor: grey_gainsboro, borderRightWidth: 1 },\n buttonContainer,\n ]}\n >\n <Text style={[styles.cancel, { color: grey }, cancel]}>{actions?.[2].text}</Text>\n </TouchableOpacity>\n <TouchableOpacity\n onPress={() => {\n if (actions?.[1].name && actions?.[1].value && handleAction) {\n handleAction(actions[1].name, actions[1].value);\n }\n }}\n style={[\n styles.buttonContainer,\n { borderColor: grey_gainsboro, borderRightWidth: 1 },\n buttonContainer,\n ]}\n >\n <Text style={[styles.shuffle, { color: grey }, shuffle]}>{actions?.[1].text}</Text>\n </TouchableOpacity>\n <TouchableOpacity\n onPress={() => {\n if (actions?.[0].name && actions?.[0].value && handleAction) {\n handleAction(actions[0].name, actions[0].value);\n }\n }}\n style={[styles.buttonContainer, { borderColor: grey_gainsboro }, buttonContainer]}\n >\n <Text style={[styles.send, { color: accent_blue }, send]}>{actions?.[0].text}</Text>\n </TouchableOpacity>\n </View>\n </View>\n </View>\n ) : (\n <TouchableOpacity\n disabled={preventPress}\n onLongPress={(event) => {\n if (onLongPress) {\n onLongPress({\n emitter: 'giphy',\n event,\n });\n }\n }}\n onPress={(event) => {\n if (onPress) {\n onPress({\n emitter: 'giphy',\n event,\n });\n }\n }}\n onPressIn={(event) => {\n if (onPressIn) {\n onPressIn({\n emitter: 'giphy',\n event,\n });\n }\n }}\n testID='giphy-attachment'\n {...additionalTouchableProps}\n >\n <View style={[styles.container, container]}>\n <Image\n resizeMode='contain'\n source={{ uri: makeImageCompatibleUrl(uri) }}\n style={[styles.giphy, giphyDimensions, giphy]}\n testID='giphy-attachment-image'\n />\n <View style={[styles.giphyMask, giphyMask]}>\n <View\n style={[\n styles.giphyContainer,\n { backgroundColor: label_bg_transparent },\n giphyContainer,\n ]}\n >\n <Lightning height={16} pathFill={white} width={16} />\n <Text style={[styles.giphyMaskText, { color: white }, giphyMaskText]}>\n {type?.toUpperCase()}\n </Text>\n </View>\n </View>\n </View>\n </TouchableOpacity>\n );\n};\n\nconst areEqual = <StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>(\n prevProps: GiphyPropsWithContext<StreamChatGenerics>,\n nextProps: GiphyPropsWithContext<StreamChatGenerics>,\n) => {\n const {\n attachment: { actions: prevActions, image_url: prevImageUrl, thumb_url: prevThumbUrl },\n giphyVersion: prevGiphyVersion,\n } = prevProps;\n const {\n attachment: { actions: nextActions, image_url: nextImageUrl, thumb_url: nextThumbUrl },\n giphyVersion: nextGiphyVersion,\n } = nextProps;\n\n const imageUrlEqual = prevImageUrl === nextImageUrl;\n if (!imageUrlEqual) return false;\n\n const thumbUrlEqual = prevThumbUrl === nextThumbUrl;\n if (!thumbUrlEqual) return false;\n\n const giphyVersionEqual = prevGiphyVersion === nextGiphyVersion;\n if (!giphyVersionEqual) return false;\n\n const actionsEqual =\n Array.isArray(prevActions) === Array.isArray(nextActions) &&\n ((Array.isArray(prevActions) &&\n Array.isArray(nextActions) &&\n prevActions.length === nextActions.length) ||\n prevActions === nextActions);\n if (!actionsEqual) return false;\n\n return true;\n};\n\nconst MemoizedGiphy = React.memo(GiphyWithContext, areEqual) as typeof GiphyWithContext;\n\nexport type GiphyProps<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Partial<\n Pick<MessageContextValue<StreamChatGenerics>, 'isMyMessage' | 'onLongPress' | 'onPressIn'> &\n Pick<MessagesContextValue<StreamChatGenerics>, 'giphyVersion' | 'additionalTouchableProps'>\n> & {\n attachment: Attachment<StreamChatGenerics>;\n};\n\n/**\n * UI component for card in attachments.\n */\nexport const Giphy = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: GiphyProps<StreamChatGenerics>,\n) => {\n const { handleAction, onLongPress, onPress, onPressIn, preventPress } =\n useMessageContext<StreamChatGenerics>();\n const { additionalTouchableProps, giphyVersion } = useMessagesContext<StreamChatGenerics>();\n\n return (\n <MemoizedGiphy\n {...{\n additionalTouchableProps,\n giphyVersion,\n handleAction,\n onLongPress,\n onPress,\n onPressIn,\n preventPress,\n }}\n {...props}\n />\n );\n};\n\nGiphy.displayName = 'Giphy{messageSimple{giphy}}';\n"]}
|