Skip to content

Commit 83290ad

Browse files
committed
Introduce backgroundSize prop to ImageRenderer
1 parent ea0b55a commit 83290ad

File tree

2 files changed

+15
-3
lines changed

2 files changed

+15
-3
lines changed

src/ui/ImageRenderer/index.tsx

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ export interface ImageRendererProps {
2929
height?: string | number | null;
3030
circle?: boolean;
3131
fixedSize?: boolean;
32+
backgroundSize?: ImageRendererBackgroundSize;
3233
placeHolder?: ((props: { style: Record<string, string | number> }) => ReactElement) | ReactElement | null;
3334
defaultComponent?: (() => ReactElement) | ReactElement | null;
3435
borderRadius?: string | number | null;
@@ -38,6 +39,11 @@ export interface ImageRendererProps {
3839
isUploaded?: boolean;
3940
}
4041

42+
export enum ImageRendererBackgroundSize {
43+
CONTAIN = 'contain',
44+
COVER = 'cover',
45+
}
46+
4147
/*
4248
ImageRenderer displays image with url or source
4349
it checks if the source exist with img tag first
@@ -53,6 +59,7 @@ const ImageRenderer = ({
5359
height = null,
5460
circle = false,
5561
fixedSize = false,
62+
backgroundSize = ImageRendererBackgroundSize.COVER,
5663
placeHolder = null,
5764
defaultComponent = null,
5865
borderRadius = null,
@@ -100,7 +107,7 @@ const ImageRenderer = ({
100107
const backgroundStyle = internalUrl ? {
101108
backgroundRepeat: 'no-repeat',
102109
backgroundPosition: 'center',
103-
backgroundSize: 'contain',
110+
backgroundSize: backgroundSize ? backgroundSize : 'cover',
104111
backgroundImage: `url(${internalUrl})`,
105112
} : {};
106113

src/ui/MultipleFilesMessageItemBody/index.tsx

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,15 @@ import { MultipleFilesMessage, SendingStatus } from '@sendbird/chat/message';
44
import type { OnBeforeDownloadFileMessageType } from '../../modules/GroupChannel/context/GroupChannelProvider';
55
import useSendbirdStateContext from '../../hooks/useSendbirdStateContext';
66
import Icon, { IconColors, IconTypes } from '../Icon';
7-
import ImageRenderer, { getBorderRadiusForMultipleImageRenderer } from '../ImageRenderer';
7+
import ImageRenderer, { getBorderRadiusForMultipleImageRenderer, ImageRendererBackgroundSize } from '../ImageRenderer';
88
import ImageGrid from '../ImageGrid';
99
import FileViewer from '../FileViewer';
1010
import './index.scss';
11-
import { MULTIPLE_FILES_IMAGE_BORDER_RADIUS, MULTIPLE_FILES_IMAGE_SIDE_LENGTH, MULTIPLE_FILES_IMAGE_THUMBNAIL_SIDE_LENGTH } from './const';
11+
import {
12+
MULTIPLE_FILES_IMAGE_BORDER_RADIUS,
13+
MULTIPLE_FILES_IMAGE_SIDE_LENGTH,
14+
MULTIPLE_FILES_IMAGE_THUMBNAIL_SIDE_LENGTH,
15+
} from './const';
1216
import { isGif } from '../../utils';
1317
import { UploadedFileInfoWithUpload } from '../../types';
1418

@@ -91,6 +95,7 @@ export default function MultipleFilesMessageItemBody({
9195
<ImageRenderer
9296
url={fileInfo.thumbnails?.[0]?.url ?? fileInfo.url ?? ''}
9397
fixedSize={false}
98+
backgroundSize={ImageRendererBackgroundSize.CONTAIN}
9499
width={MULTIPLE_FILES_IMAGE_SIDE_LENGTH[threadMessageKindKey]}
95100
maxSideLength={MULTIPLE_FILES_IMAGE_SIDE_LENGTH.CHAT_WEB}
96101
height={MULTIPLE_FILES_IMAGE_SIDE_LENGTH[threadMessageKindKey]}

0 commit comments

Comments
 (0)