Skip to content

Commit de3fa98

Browse files
authored
Merge pull request #125 from sendbird/feat/use-thumbnails
feat(CLNP-733): use thumbnails if available
2 parents 756edd1 + 62f3ca0 commit de3fa98

File tree

7 files changed

+23
-14
lines changed

7 files changed

+23
-14
lines changed

packages/uikit-react-native-foundation/src/ui/GroupChannelMessage/Message.file.image.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import React from 'react';
22

33
import type { SendbirdFileMessage } from '@sendbird/uikit-utils';
4-
import { getAvailableUriFromFileMessage } from '@sendbird/uikit-utils';
4+
import { getThumbnailUriFromFileMessage } from '@sendbird/uikit-utils';
55

66
import Box from '../../components/Box';
77
import ImageWithPlaceholder from '../../components/ImageWithPlaceholder';
@@ -20,7 +20,7 @@ const ImageFileMessage = (props: GroupChannelMessageProps<SendbirdFileMessage>)
2020
<MessageContainer {...props}>
2121
<Box style={styles.container} backgroundColor={colors.ui.groupChannelMessage[variant].enabled.background}>
2222
<PressBox activeOpacity={0.8} onPress={onPress} onLongPress={onLongPress}>
23-
<ImageWithPlaceholder source={{ uri: getAvailableUriFromFileMessage(props.message) }} style={styles.image} />
23+
<ImageWithPlaceholder source={{ uri: getThumbnailUriFromFileMessage(props.message) }} style={styles.image} />
2424
</PressBox>
2525
{props.children}
2626
</Box>

packages/uikit-react-native-foundation/src/ui/GroupChannelMessage/Message.file.video.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import React from 'react';
22

33
import type { SendbirdFileMessage } from '@sendbird/uikit-utils';
4-
import { getAvailableUriFromFileMessage } from '@sendbird/uikit-utils';
4+
import { getThumbnailUriFromFileMessage } from '@sendbird/uikit-utils';
55

66
import Box from '../../components/Box';
77
import PressBox from '../../components/PressBox';
@@ -20,7 +20,7 @@ const VideoFileMessage = (props: Props) => {
2020
const { onPress, onLongPress, variant = 'incoming' } = props;
2121

2222
const { colors } = useUIKitTheme();
23-
const uri = getAvailableUriFromFileMessage(props.message);
23+
const uri = getThumbnailUriFromFileMessage(props.message);
2424

2525
return (
2626
<MessageContainer {...props}>

packages/uikit-react-native-foundation/src/ui/OpenChannelMessage/Message.file.image.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import React from 'react';
22

33
import type { SendbirdFileMessage } from '@sendbird/uikit-utils';
4-
import { getAvailableUriFromFileMessage } from '@sendbird/uikit-utils';
4+
import { getThumbnailUriFromFileMessage } from '@sendbird/uikit-utils';
55

66
import Box from '../../components/Box';
77
import ImageWithPlaceholder from '../../components/ImageWithPlaceholder';
@@ -12,7 +12,7 @@ import type { OpenChannelMessageProps } from './index';
1212

1313
const ImageFileMessage = (props: OpenChannelMessageProps<SendbirdFileMessage>) => {
1414
const { onPress, onLongPress, ...rest } = props;
15-
const uri = getAvailableUriFromFileMessage(props.message);
15+
const uri = getThumbnailUriFromFileMessage(props.message);
1616
return (
1717
<MessageContainer {...rest}>
1818
<Box borderRadius={8} overflow={'hidden'} style={styles.container}>

packages/uikit-react-native-foundation/src/ui/OpenChannelMessage/Message.file.video.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import React from 'react';
22

33
import type { SendbirdFileMessage } from '@sendbird/uikit-utils';
4-
import { getAvailableUriFromFileMessage } from '@sendbird/uikit-utils';
4+
import { getThumbnailUriFromFileMessage } from '@sendbird/uikit-utils';
55

66
import PressBox from '../../components/PressBox';
77
import { VideoThumbnail } from '../../components/VideoThumbnail';
@@ -15,7 +15,7 @@ type Props = {
1515

1616
const VideoFileMessage = (props: OpenChannelMessageProps<SendbirdFileMessage, Props>) => {
1717
const { onPress, onLongPress, ...rest } = props;
18-
const uri = getAvailableUriFromFileMessage(props.message);
18+
const uri = getThumbnailUriFromFileMessage(props.message);
1919

2020
return (
2121
<MessageContainer {...rest}>

packages/uikit-react-native/src/components/ChannelInput/SendInput.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -27,9 +27,9 @@ import {
2727
Logger,
2828
SendbirdBaseMessage,
2929
SendbirdChannel,
30-
getAvailableUriFromFileMessage,
3130
getFileIconFromMessageType,
3231
getMessageType,
32+
getThumbnailUriFromFileMessage,
3333
isImage,
3434
shouldCompressImage,
3535
useIIFE,
@@ -175,9 +175,9 @@ const SendInput = forwardRef<RNTextInput, SendInputProps>(function SendInput(
175175
const messageType = getMessageType(messageToReply);
176176
switch (messageType) {
177177
case 'file.image':
178-
return getFileIconAsImage(getAvailableUriFromFileMessage(messageToReply));
178+
return getFileIconAsImage(getThumbnailUriFromFileMessage(messageToReply));
179179
case 'file.video':
180-
return getFileIconAsVideoThumbnail(getAvailableUriFromFileMessage(messageToReply));
180+
return getFileIconAsVideoThumbnail(getThumbnailUriFromFileMessage(messageToReply));
181181
default:
182182
return getFileIconAsSymbol(getFileIconFromMessageType(messageType));
183183
}

packages/uikit-react-native/src/components/GroupChannelMessageRenderer/GroupChannelMessageParentMessage.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,9 @@ import {
1414
SendbirdFileMessage,
1515
SendbirdMessage,
1616
SendbirdUserMessage,
17-
getAvailableUriFromFileMessage,
1817
getFileIconFromMessageType,
1918
getMessageType,
19+
getThumbnailUriFromFileMessage,
2020
truncate,
2121
useIIFE,
2222
} from '@sendbird/uikit-utils';
@@ -104,10 +104,10 @@ const GroupChannelMessageParentMessage = ({ variant, message, childMessage, onPr
104104
return renderFileMessageAsDownloadable((parentMessage as SendbirdFileMessage).name);
105105
}
106106
case 'file.video': {
107-
return renderFileMessageAsVideoThumbnail(getAvailableUriFromFileMessage(parentMessage as SendbirdFileMessage));
107+
return renderFileMessageAsVideoThumbnail(getThumbnailUriFromFileMessage(parentMessage as SendbirdFileMessage));
108108
}
109109
case 'file.image': {
110-
return renderFileMessageAsPreview(getAvailableUriFromFileMessage(parentMessage as SendbirdFileMessage));
110+
return renderFileMessageAsPreview(getThumbnailUriFromFileMessage(parentMessage as SendbirdFileMessage));
111111
}
112112
default: {
113113
return null;

packages/uikit-utils/src/sendbird/message.ts

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -97,10 +97,19 @@ export function getMessageUniqId(msg: SendbirdBaseMessage) {
9797
return String(msg.messageId);
9898
}
9999

100+
export function getThumbnailUriFromFileMessage(message: SendbirdFileMessage) {
101+
if (message.thumbnails && message.thumbnails.length > 0) {
102+
return message.thumbnails[0].url;
103+
}
104+
105+
return getAvailableUriFromFileMessage(message);
106+
}
107+
100108
export function getAvailableUriFromFileMessage(message: SendbirdFileMessage) {
101109
if (!message.url && message.messageParams?.file && 'uri' in message.messageParams.file) {
102110
return message.messageParams.file.uri;
103111
}
112+
104113
return message.url;
105114
}
106115

0 commit comments

Comments
 (0)