Skip to content

Commit e24710a

Browse files
authored
Merge pull request #2700 from daostack/CW-placeholder-for-images
Placeholder appears instead of images upon discussion creation
2 parents 02ea17e + 81c8f5c commit e24710a

File tree

4 files changed

+40
-8
lines changed

4 files changed

+40
-8
lines changed

src/shared/ui-kit/ImageGallery/ChatImageGallery.tsx

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,14 +24,26 @@ const ChatImageGallery: FC<ChatImageGalleryProps> = (props) => {
2424
const isTabletView = useIsTabletView();
2525
const { isShowing, onOpen, onClose } = useModal(false);
2626
const [initialSlide, setInitialSlide] = useState(0);
27-
const images = (gallery || []).map(({ value }) =>
27+
const images = (gallery || []).map(({ value }) => value);
28+
29+
const imagesWithSrcSets = (gallery || []).map(({ value }) =>
2830
useResizedFile
29-
? getResizedFileUrl(value, ResizeType.Images, FilePrefix.Image)
31+
? `${getResizedFileUrl(
32+
value,
33+
ResizeType.Images,
34+
FilePrefix.Image,
35+
)} 1x, ${value} 2x`
3036
: value,
3137
);
3238

3339
const [leftImage, rightImage, secondRowLeftImage, secondRowRightImage] =
3440
images;
41+
const [
42+
leftImageSrcSet,
43+
rightImageSrcSet,
44+
secondRowLeftImageSrcSet,
45+
secondRowRightImageSrcSet,
46+
] = imagesWithSrcSets;
3547

3648
const hasOneImage = Boolean(leftImage && !rightImage);
3749
const singleImageWithoutVideo = hasOneImage && !videoSrc;
@@ -61,6 +73,7 @@ const ChatImageGallery: FC<ChatImageGalleryProps> = (props) => {
6173
<GalleryMainContent
6274
videoSrc={videoSrc}
6375
mainImage={secondRowLeftImage}
76+
srcSet={secondRowLeftImageSrcSet}
6477
hasOneImage={hasOneImage}
6578
/>
6679
</div>
@@ -79,6 +92,7 @@ const ChatImageGallery: FC<ChatImageGalleryProps> = (props) => {
7992
[styles.leftItem]: !hasOneImage,
8093
})}
8194
src={leftImage}
95+
srcSet={leftImageSrcSet}
8296
imageOverlayClassName={styles.imageOverlay}
8397
alt="1st Image"
8498
onClick={() => handleOpenSlide(0)}
@@ -88,6 +102,7 @@ const ChatImageGallery: FC<ChatImageGalleryProps> = (props) => {
88102
<Image
89103
className={styles.image}
90104
src={rightImage}
105+
srcSet={rightImageSrcSet}
91106
imageContainerClassName={styles.rightItem}
92107
imageOverlayClassName={styles.imageOverlay}
93108
alt="2nd Image"
@@ -113,13 +128,15 @@ const ChatImageGallery: FC<ChatImageGalleryProps> = (props) => {
113128
})}
114129
imageOverlayClassName={styles.imageOverlay}
115130
src={secondRowLeftImage}
131+
srcSet={secondRowLeftImageSrcSet}
116132
alt="3st Image"
117133
onClick={() => handleOpenSlide(2)}
118134
/>
119135
<Image
120136
className={styles.image}
121137
imageContainerClassName={styles.rightItem}
122138
src={secondRowRightImage}
139+
srcSet={secondRowRightImageSrcSet}
123140
imageOverlayClassName={styles.imageOverlay}
124141
alt="4nd Image"
125142
onClick={() => handleOpenSlide(3)}

src/shared/ui-kit/ImageGallery/ImageGallery.tsx

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,13 +18,21 @@ const ImageGallery: FC<ImageGalleryProps> = (props) => {
1818
const { gallery, videoSrc, useResizedFile = true } = props;
1919
const [videoContainerRef, { width: videoContainerWidth }] = useMeasure();
2020
const { isShowing, onOpen, onClose } = useModal(false);
21-
const images = (gallery || []).map(({ value }) =>
21+
const images = (gallery || []).map(({ value }) => value);
22+
23+
const imagesWithSrcSets = (gallery || []).map(({ value }) =>
2224
useResizedFile
23-
? getResizedFileUrl(value, ResizeType.Images, FilePrefix.Image)
25+
? `${getResizedFileUrl(
26+
value,
27+
ResizeType.Images,
28+
FilePrefix.Image,
29+
)} 1x, ${value} 2x`
2430
: value,
2531
);
2632

2733
const [leftImage, rightImage, mainImage] = images;
34+
const [leftImageSrcSet, rightImageSrcSet, mainImageSrcSet] =
35+
imagesWithSrcSets;
2836

2937
const hasOneImage = Boolean(leftImage && !rightImage);
3038
const singleImageWithoutVideo = hasOneImage && !videoSrc;
@@ -56,6 +64,7 @@ const ImageGallery: FC<ImageGalleryProps> = (props) => {
5664
<GalleryMainContent
5765
videoSrc={videoSrc}
5866
mainImage={mainImage}
67+
srcSet={mainImageSrcSet}
5968
hasOneImage={hasOneImage}
6069
imagePreviewStyle={imagePreviewStyle}
6170
/>
@@ -73,6 +82,7 @@ const ImageGallery: FC<ImageGalleryProps> = (props) => {
7382
})}
7483
style={singleImageWithoutVideo ? {} : imagePreviewStyle}
7584
src={leftImage}
85+
srcSet={leftImageSrcSet}
7686
alt="1st Image"
7787
/>
7888
)}
@@ -81,6 +91,7 @@ const ImageGallery: FC<ImageGalleryProps> = (props) => {
8191
className={classNames(styles.image, styles.rightItem)}
8292
style={imagePreviewStyle}
8393
src={rightImage}
94+
srcSet={rightImageSrcSet}
8495
alt="2nd Image"
8596
/>
8697
)}

src/shared/ui-kit/ImageGallery/components/GalleryMainContent/GalleryMainContent.tsx

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,13 @@ import styles from "./GalleryMainContent.module.scss";
77
interface GalleryMainContentProps {
88
videoSrc?: string;
99
mainImage: string;
10+
srcSet?: string;
1011
hasOneImage: boolean;
1112
imagePreviewStyle?: React.CSSProperties;
1213
}
1314

1415
const GalleryMainContent: FC<GalleryMainContentProps> = (props) => {
15-
const { mainImage, videoSrc, hasOneImage, imagePreviewStyle } = props;
16+
const { mainImage, srcSet, videoSrc, hasOneImage, imagePreviewStyle } = props;
1617

1718
if (!videoSrc && !mainImage) {
1819
return null;
@@ -34,6 +35,7 @@ const GalleryMainContent: FC<GalleryMainContentProps> = (props) => {
3435
<Image
3536
className={styles.mainContent}
3637
src={mainImage}
38+
srcSet={srcSet}
3739
imageContainerClassName={styles.imageContainer}
3840
imageOverlayClassName={styles.imageOverlay}
3941
alt="3rd Image"

src/shared/ui-kit/ImageGallery/components/ImageGalleryModal/ImageGalleryModal.scss

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -48,9 +48,11 @@
4848

4949
.arrow-wrapper {
5050
position: absolute;
51-
bottom: 2.125rem;
51+
top: 50%;
52+
transform: translate(0%, -50%);
5253
z-index: 2;
5354
color: var(--primary-text);
55+
height: 10rem;
5456

5557
&:disabled {
5658
color: $gray;
@@ -59,7 +61,7 @@
5961

6062
.arrow-wrapper-left {
6163
@extend .arrow-wrapper;
62-
left: 19rem;
64+
left: 1rem;
6365

6466
@include tablet {
6567
left: 18rem;
@@ -69,7 +71,7 @@
6971
.arrow-wrapper-right {
7072
@extend .arrow-wrapper;
7173

72-
right: 19rem;
74+
right: 1rem;
7375

7476
@include tablet {
7577
right: 18rem;

0 commit comments

Comments
 (0)