Skip to main content
Version: v4

Gallery

Component to render image attachments within the MessageList.

Basic Usage#

You can customize the Gallery component and provide it back to the SDK via the Gallery prop on Channel if desired.

import { Channel, Gallery } from 'stream-chat-react-native';

<Channel Gallery={() => <Gallery preventPress />}

Props#

overrides the value from MessagesContext
additionalTouchableProps#

Additional props provided to the underlying TouchableOpacity used by components within a message such as MessageContent.

Type
object

overrides the value from MessageContext
alignment#

Sets if the message should be aligned to right or left side of list.

TypeDefault
enum('right', 'left')'right'

overrides the value from MessageContext
groupStyles#

Position of message in the group. A message group is a group of consecutive messages from the same user. groupStyles can be used to style the message as per their position in message group.

e.g. user avatar (to which message belongs to) is only showed for last (bottom) message in group.

Type
array of enum('top', 'bottom', 'middle', 'single')

hasThreadReplies#

Weather current message has any thread replies or not. This boolean is used for setting borderBottomLeftRadius for left aligned messages and borderBottomRightRadius for right aligned messages.

TypeDefault
boolean!!message.reply_count

overrides the value from MessageContext
images#

Array of image type attachments on message.

const images = message.attachments.filter(a => a.type === 'image');
Type
array

overrides the value from MessagesContext
legacyImageViewerSwipeBehaviour#

Note: This prop is available only in SDK version >= v3.9.0

Enables/disables the legacy image viewer behavior.

When true, within the image viewer you can keep swiping left to scroll through all the images that have been loaded within a channel so far. Beaware that this creates quite a lot of extra work for the JS thread to keep track of image attachments loaded in a channel and pre-populating them in the viewer for smooth transitions.

TypeDefault
booleanfalse

messageId#

Id of the current message.

Type
string

messageText#

Text content of current message - message.text. This prop gets used for styling purpose of gallery.

Type
string

overrides the value from MessageContext
onLongPress#

Default long press handler for message UI.

Type
function

overrides the value from MessageContext
onPress#

Default press handler for message UI.

Type
function

overrides the value from MessageContext
onPressIn#

Default pressIn handler for message UI.

Type
function

preventPress#

If true, onPress handler will be disabled.

TypeDefault
booleanfalse

overrides the value from ImageGalleryContext
setImage#

Setter for value image.

Type
(image: {messageId?: string; url?: string;}) => void

overrides the value from ImageGalleryContext
setImages#

Setter for value images.

Type
(messageWithImages: [MessageType](https://github.com/GetStream/stream-chat-react-native/blob/main/package/src/components/MessageList/hooks/useMessageList.ts)[]) => void

overrides the value from OverlayContext
setOverlay#

Setter for overlay. You can use this setter to show the overlay.

Type
(overlay) => void

overrides the value from MessageContext
threadList#

True if current message is part of a message thread.

Type
boolean

overrides the value from MessageContext
videos#

Array of video file attachments.

const videos = message.attachments.filter(a => a.type === 'video' && !a.og_scrape_url);
Type
array

overrides the value from MessageContext
VideoThumbnail#

Component to render the video thumbnail for video attachments in MessageList.

TypeDefault
componentVideoThumbnail

Did you find this page helpful?