1
1
import classNames from 'classnames' ;
2
2
import React from 'react' ;
3
3
import { isImageAttachment } from '../../../../types/Attachment' ;
4
- import { ImageGrid } from '../../ImageGrid' ;
5
4
import { Image } from '../../Image' ;
6
5
import { MessageRenderingProps } from '../../../../models/messageType' ;
7
6
import { useDispatch , useSelector } from 'react-redux' ;
8
- import { getMessageLinkPreviewProps } from '../../../../state/selectors/conversations' ;
7
+ import {
8
+ getIsMessageSelectionMode ,
9
+ getMessageLinkPreviewProps ,
10
+ } from '../../../../state/selectors/conversations' ;
9
11
import { SessionIcon } from '../../../icon' ;
10
- import { MINIMUM_LINK_PREVIEW_IMAGE_WIDTH } from '../message-item/Message' ;
11
12
import { showLinkVisitWarningDialog } from '../../../dialog/SessionConfirm' ;
12
13
13
14
export type MessageLinkPreviewSelectorProps = Pick <
@@ -20,9 +21,12 @@ type Props = {
20
21
messageId : string ;
21
22
} ;
22
23
24
+ const linkPreviewsImageSize = 100 ;
25
+
23
26
export const MessageLinkPreview = ( props : Props ) => {
24
27
const selected = useSelector ( state => getMessageLinkPreviewProps ( state as any , props . messageId ) ) ;
25
28
const dispatch = useDispatch ( ) ;
29
+ const isMessageSelectionMode = useSelector ( getIsMessageSelectionMode ) ;
26
30
27
31
if ( ! selected ) {
28
32
return null ;
@@ -44,10 +48,11 @@ export const MessageLinkPreview = (props: Props) => {
44
48
}
45
49
46
50
const previewHasImage = first . image && isImageAttachment ( first . image ) ;
47
- const width = first . image && first . image . width ;
48
- const isFullSizeImage = width && width >= MINIMUM_LINK_PREVIEW_IMAGE_WIDTH ;
49
51
50
52
function openLinkFromPreview ( ) {
53
+ if ( isMessageSelectionMode ) {
54
+ return ;
55
+ }
51
56
if ( previews ?. length && previews [ 0 ] . url ) {
52
57
showLinkVisitWarningDialog ( previews [ 0 ] . url , dispatch ) ;
53
58
}
@@ -59,31 +64,28 @@ export const MessageLinkPreview = (props: Props) => {
59
64
className = { classNames ( 'module-message__link-preview' ) }
60
65
onClick = { openLinkFromPreview }
61
66
>
62
- { first . image && previewHasImage && isFullSizeImage ? (
63
- < ImageGrid attachments = { [ first . image ] } onError = { props . handleImageError } />
64
- ) : null }
65
67
< div className = { classNames ( 'module-message__link-preview__content' ) } >
66
- { first . image && previewHasImage && ! isFullSizeImage ? (
68
+ { previewHasImage ? (
67
69
< div className = "module-message__link-preview__image_container" >
68
70
< Image
69
71
softCorners = { true }
70
72
alt = { window . i18n ( 'previewThumbnail' , [ first . domain ] ) }
71
- height = { 72 }
72
- width = { 72 }
73
+ height = { linkPreviewsImageSize }
74
+ width = { linkPreviewsImageSize }
73
75
url = { first . image . url }
74
76
attachment = { first . image }
75
77
onError = { props . handleImageError }
76
78
/>
77
79
</ div >
78
- ) : ! first . image || ! previewHasImage ? (
80
+ ) : (
79
81
< div className = "module-message__link-preview__icon_container" >
80
82
< div className = "module-message__link-preview__icon_container__inner" >
81
83
< div className = "module-message__link-preview__icon-container__circle-background" >
82
84
< SessionIcon iconType = "link" iconSize = "small" />
83
85
</ div >
84
86
</ div >
85
87
</ div >
86
- ) : null }
88
+ ) }
87
89
< div className = { classNames ( 'module-message__link-preview__text' ) } >
88
90
< div className = "module-message__link-preview__title" > { first . title } </ div >
89
91
< div className = "module-message__link-preview__location" > { first . domain } </ div >
0 commit comments