stream_chat_flutter library

Classes

AcceptInviteResponse
Model response for Channel.acceptInvite api call
Action
The class that contains the information about an action
AddMembersResponse
Model response for Channel.addMembers api call
AsyncCache<T>
Runs asynchronous functions and caches the result for a period of time.
AsyncMemoizer<T>
A class for running an asynchronous function exactly once and caching its result.
Attachment
The class that contains the information about an attachment
AttachmentAction
Class for custom attachment action
AttachmentActionsModal
Widget that shows the options in the gallery view
AttachmentError
Widget for building in case of error
AttachmentFile
The class that contains the information about an attachment file
AttachmentFileUploader
Class responsible for uploading images and files to a given channel
AttachmentUploadStateBuilder
Widget to display attachment upload state
AvatarThemeData
A style that overrides the default appearance of various avatar widgets.
BaseOptions
The common config for the Dio instance. dio.options is a instance of BaseOptions
BetterStreamBuilder<T extends Object>
A more efficient StreamBuilder It requires initialData and will rebuild only when the new data is different than the current data The comparator is used to check if the new data is different
CancelableCompleter<T>
A completer for a CancelableOperation.
CancelableOperation<T>
An asynchronous operation that can be cancelled.
Channel
Class that manages a specific channel.
ChannelAvatar
screenshot screenshot
ChannelClientState
The class that handles the state of the channel listening to the events.
ChannelConfig
The class that contains the information about the configuration of a channel
ChannelHeader
screenshot screenshot
ChannelHeaderTheme
Overrides the default style of ChannelHeader descendants.
ChannelHeaderThemeData
A style that overrides the default appearance of ChannelHeaders when used with ChannelHeaderTheme or with the overall StreamChatTheme's StreamChatThemeData.channelHeaderTheme.
ChannelListController
Controller used for loading more data and controlling pagination in ChannelListCore.
ChannelListCore
ChannelListCore is a simplified class that allows fetching a list of channels while exposing UI builders. A ChannelListController is used to reload and paginate data.
ChannelListHeader
It shows the current StreamChatClient status.
ChannelListHeaderTheme
Overrides the default style of ChannelListHeader descendants.
ChannelListHeaderThemeData
Theme dedicated to the ChannelListHeader
ChannelListView
screenshot screenshot
ChannelListViewTheme
Overrides the default style of ChannelListView descendants.
ChannelListViewThemeData
A style that overrides the default appearance of ChannelListViews when used with ChannelListViewTheme or with the overall StreamChatTheme's StreamChatThemeData.channelListViewTheme.
ChannelModel
The class that contains the information about a channel
ChannelName
It shows the current Channel name using a Text widget.
ChannelPreview
screenshot screenshot
ChannelPreviewTheme
Overrides the default style of ChannelPreview descendants.
ChannelPreviewThemeData
A style that overrides the default appearance of ChannelPreviews when used with ChannelPreviewTheme or with the overall StreamChatTheme's StreamChatThemeData.channelPreviewTheme.
ChannelsBloc
Widget dedicated to the management of a channel list with pagination ChannelsBloc is used together with ChannelListCore to manage a list of Channels with pagination, re-ordering, querying and other operations associated with Channels.
ChannelsBlocState
The current state of the ChannelsBloc.
ChannelState
The class that contains the information about a channel
ChannelStateResponse
Model response for Channel.query api call
ChatPersistenceClient
A simple client used for persisting chat data locally.
ChunkedStreamReader<T>
Utility class for reading elements from a chunked stream.
ClientState
The class that handles the state of the channel listening to the events
ColorTheme
Theme that holds colors
Command
The class that contains the information about a command
ConnectGuestUserResponse
Model response for StreamChatClient.connectGuestUser api call
ConnectionStatusBuilder
Widget that builds itself based on the latest snapshot of interaction with a Stream of type ConnectionStatus.
Connectivity
Discover network connectivity configurations: Distinguish between WI-FI and cellular, check WI-FI status and more.
DateDivider
It shows a date divider depending on the date difference
Debounce
Creates a debounced function that delays invoking func until after wait milliseconds have elapsed since the last time the debounced function was invoked. The debounced function comes with a Debounce.cancel method to cancel delayed func invocations and a Debounce.flush method to immediately invoke them. Provide leading and/or trailing to indicate whether func should be invoked on the leading and/or trailing edge of the wait interval. The func is invoked with the last arguments provided to the call function. Subsequent calls to the debounced function return the result of the last func invocation.
DefaultTranslations
Default implementation of Translation strings for the stream chat widgets
DelegatingEventSink<T>
Simple delegating wrapper around an EventSink.
DelegatingFuture<T>
A wrapper that forwards calls to a Future.
DelegatingSink<T>
Simple delegating wrapper around a Sink.
DelegatingStream<T>
Simple delegating wrapper around a Stream.
DelegatingStreamConsumer<T>
Simple delegating wrapper around a StreamConsumer.
DelegatingStreamSink<T>
Simple delegating wrapper around a StreamSink.
DelegatingStreamSubscription<T>
Simple delegating wrapper around a StreamSubscription.
DeletedMessage
Widget to display deleted message
DemoPainter
Painter for bg polygon gradient
Device
The class that contains the information about a device
Effect
Effect store
EmptyResponse
Model response for empty responses
ErrorResponse
Model response for StreamChatNetworkError data
ErrorResult
A result representing a thrown error.
Event
The class that contains the information about an event
EventChannel
The channel embedded in the event object
EventSinkBase<T>
An abstract class that implements EventSink in terms of onAdd, onError, and onClose methods.
EventType
This class defines some basic event types
Failed
FileAttachment
Widget for displaying file attachments
Filter
Stream supports a limited set of filters for querying channels, users and members. The example below shows how to filter for channels of type messaging where the current user is a member
FullScreenMedia
A full screen image widget
FutureGroup<T>
A collection of futures waits until all added Futures complete.
GalleryFooter
Footer widget for media display
GalleryFooterTheme
Overrides the default style of GalleryFooter descendants.
GalleryFooterThemeData
A style that overrides the default appearance of GalleryFooters when used with GalleryFooterTheme or with the overall StreamChatTheme's StreamChatThemeData.galleryFooterTheme.
GalleryHeader
Header/AppBar widget for media display screen
GalleryHeaderTheme
Overrides the default style of GalleryHeader descendants.
GalleryHeaderThemeData
A style that overrides the default appearance of GalleryHeaders when used with GalleryHeaderTheme or with the overall StreamChatTheme's StreamChatThemeData.galleryHeaderTheme.
GetMessageResponse
Model response for StreamChatClient.getMessage api call
GetMessagesByIdResponse
Model response for Channel.getMessagesById api call
GiphyAttachment
Widget for showing a GIF attachment
GradientAvatar
Fallback user avatar with a polygon gradient overlayed with text
ImageAttachment
Widget for showing an image attachment
InfoTile
Tile to display a message, used in stream chat to display connection status
InProgress
InviteMembersResponse
Model response for Channel.inviteMembers api call
IOSinkBase
An abstract class that implements dart:io's IOSink's API in terms of onAdd, onError, onClose, and onFlush methods.
Jiffy
LazyLoadScrollView
Wrapper around a Scrollable which triggers onEndOfPage/onStartOfPage the Scrollable reaches to the start or end of the view extent.
LazyStream<T>
A Stream wrapper that forwards to another Stream that's initialized lazily.
Level
Levels to control logging output. Logging can be enabled to include all levels above certain Level. Levels are ordered using an integer value Level.value. The predefined Level constants below are sorted as follows (in descending order): Level.SHOUT, Level.SEVERE, Level.WARNING, Level.INFO, Level.CONFIG, Level.FINE, Level.FINER, Level.FINEST, and Level.ALL.
ListDevicesResponse
Model response for StreamChatClient.getDevices api call
ListHeaderItem
Header Item
ListItem
Represents an item in a the user stream list. Header items are prefixed with the key HEADER While users are prefixed with USER.
ListUserItem
User Item
Logger
Use a Logger to log debug messages.
Member
The class that contains the information about the user membership in a channel
MentionTile
This widget is used for showing user tiles for mentions Use title, subtitle, leading, trailing for substituting widgets in respective positions
Message
The class that contains the information about a message
MessageAction
Class describing a message action
MessageDetails
Class for message details
MessageInput
Inactive state
MessageInputState
State of MessageInput
MessageInputTheme
Overrides the default style of MessageInput descendants.
MessageInputThemeData
A style that overrides the default appearance of MessageInput widgets when used with MessageInputTheme or with the overall StreamChatTheme's StreamChatThemeData.messageInputTheme.
MessageListController
Controller used for paginating data in ChannelListView
MessageListCore
MessageListCore is a simplified class that allows fetching a list of messages while exposing UI builders.
MessageListView
screenshot screenshot
MessageListViewTheme
Overrides the default style of MessageListView descendants.
MessageListViewThemeData
A style that overrides the default appearance of MessageListViews when used with MessageListViewTheme or with the overall StreamChatTheme's StreamChatThemeData.messageListViewTheme.
MessageSearchBloc
MessageSearchBloc is used to manage a list of messages with pagination. This class can be used to load messages, perform queries, etc.
MessageSearchBlocState
The current state of the MessageSearchBloc
MessageSearchItem
It shows the current Message preview.
MessageSearchListController
Controller used for paginating data in ChannelListView
MessageSearchListCore
MessageSearchListCore is a simplified class that allows searching for messages across channels while exposing UI builders. A MessageSearchListController is used to load and paginate data.
MessageSearchListView
It shows the list of searched messages.
MessageSearchListViewTheme
Overrides the default style of MessageSearchListView descendants.
MessageSearchListViewThemeData
A style that overrides the default appearance of MessageSearchListViews when used with MessageSearchListView or with the overall StreamChatTheme's StreamChatThemeData.messageSearchListViewTheme.
MessageText
Text widget to display in message
MessageThemeData
Class for getting message theme
MessageWidget
screenshot screenshot
MultipartFile
A file to be uploaded as part of a MultipartRequest. This doesn't need to correspond to a physical file.
Mute
The class that contains the information about a muted user
NullStreamSink<T>
A StreamSink that discards all events.
Offset4
Class for storing and drawing four points of a polygon
OGAttachmentResponse
Model response for Client.enrichUrl api call.
OptionListTile
List tile for ChannelBottomSheet
Options
Every request can pass an Options object which will be merged with Dio.options
OwnUser
The class that defines the own user model.
PaginationParams
Pagination options.
PartialUpdateChannelResponse
Model response for Channel.updatePartial api call
PartialUpdateUserRequest
Request model for the client.partialUpdateUser api call.
Preparing
QueryBannedUsersResponse
Model response for StreamChatClient.queryBannedUsers api call
QueryChannelsResponse
Model response for StreamChatClient.queryChannels api call
QueryMembersResponse
Model response for StreamChatClient.queryChannels api call
QueryReactionsResponse
Model response for channel.getReactions api call
QueryRepliesResponse
Model response for Channel.getReplies api call
QueryUsersResponse
Model response for StreamChatClient.queryUsers api call
Reaction
The class that defines a reaction
ReactionIcon
Reaction icon data
ReactionPicker
screenshot screenshot
Read
The class that defines a read event
RejectInviteResponse
Model response for Channel.rejectInvite api call
RemoveMembersResponse
Model response for Channel.removeMembers api call
RequestOptions
RestartableTimer
A non-periodic timer that can be restarted any number of times.
Result<T>
The result of a computation.
ResultFuture<T>
A Future wrapper that provides synchronous access to the result of the wrapped Future once it's completed.
SearchMessagesResponse
Model response for StreamChatClient.search api call
SendActionResponse
Model response for Channel.sendAction api call
SendFileResponse
Model response for Channel.sendFile api call
SendImageResponse
Model response for Channel.sendImage api call
SendingIndicator
Used to show the sending status of the message
SendMessageResponse
Model response for Channel.sendMessage api call
SendReactionResponse
Model response for Channel.sendReaction api call
SingleSubscriptionTransformer<S, T>
A transformer that converts a broadcast stream into a single-subscription stream.
SortOption<T>
Sorting options
StreamBackButton
Back button implementation
StreamChannel
Widget used to provide information about the channel to the widget tree
StreamChannelState
StreamChat
Widget used to provide information about the chat to the widget tree
StreamChatClient
The official Dart client for Stream Chat, a service for building chat applications. This library can be used on any Dart project and on both mobile and web apps with Flutter.
StreamChatCore
Widget used to provide information about the chat to the widget tree. This Widget is used to react to life cycle changes and system updates. When the app goes into the background, the websocket connection is kept alive for two minutes before being terminated.
StreamChatCoreState
State class associated with StreamChatCore.
StreamChatLocalizations
Defines the localized resource values used by the StreamChatFlutter widgets.
StreamChatState
The current state of the StreamChat widget
StreamChatTheme
Inherited widget providing the StreamChatThemeData to the widget tree
StreamChatThemeData
Theme data
StreamCloser<T>
A StreamTransformer that allows the caller to forcibly close the transformed Stream.
StreamCompleter<T>
A single-subscription stream where the contents are provided later.
StreamGroup<T>
A collection of streams whose events are unified and sent through a central stream.
StreamNeumorphicButton
Neumorphic button
StreamQueue<T>
An asynchronous pull-based interface for accessing stream events.
StreamQueueTransaction<T>
A transaction on a StreamQueue, created by StreamQueue.startTransaction.
StreamSinkBase<T>
An abstract class that implements StreamSink in terms of onAdd, onError, and onClose methods.
StreamSinkCompleter<T>
A sink where the destination is provided later.
StreamSinkTransformer<S, T>
A StreamSinkTransformer transforms the events being passed to a sink.
StreamSplitter<T>
A class that splits a single source stream into an arbitrary number of (single-subscription) streams (called "branch") that emit the same events.
StreamSvgIcon
Icon set of stream chat
StreamZip<T>
A stream that combines the values of other streams.
SubscriptionStream<T>
A Stream adapter for a StreamSubscription.
Success
SwipeAction
Class for slidable action
SyncResponse
Model response for StreamChatClient.sync api call
SystemMessage
It shows a date divider depending on the date difference
TextTheme
Class for holding text theme
ThreadHeader
screenshot screenshot
Throttle
Creates a throttled function that only invokes func at most once per every wait milliseconds. The throttled function comes with a Throttle.cancel method to cancel delayed func invocations and a Throttle.flush method to immediately invoke them. Provide leading and/or trailing to indicate whether func should be invoked on the leading and/or trailing edge of the wait timeout. The func is invoked with the last arguments provided to the throttled function. Subsequent calls to the throttled function return the result of the last func invocation.
TranslateMessageResponse
Model response for StreamChatClient.queryChannels api call
Tuple2<T1, T2>
Represents a 2-tuple, or pair.
TypingIndicator
Widget to show the current list of typing users
UnreadIndicator
Widget for showing an unread indicator
UpdateChannelResponse
Model response for Channel.update api call
UpdateMessageResponse
Model response for StreamChatClient.updateMessage api call
UpdateUsersResponse
Model response for StreamChatClient.updateUser api call
UploadState
Union class to hold various UploadState of a attachment.
User
Class that defines a Stream Chat User.
UserAvatar
Widget that displays a user avatar
UserItem
It shows the current User preview.
UserListController
Controller used for paginating data in ChannelListView
UserListCore
UserListCore is a simplified class that allows fetching users while exposing UI builders. A UserListController is used to load and paginate data.
UserListView
It shows the list of current users.
UserListViewTheme
Overrides the default style of UserListView descendants.
UserListViewThemeData
A style that overrides the default appearance of UserListViews when used with UserListViewTheme or with the overall StreamChatTheme's StreamChatThemeData.userListViewTheme.
UserMentionTile
This widget is used for showing user tiles for mentions Use title, subtitle, leading, trailing for substituting widgets in respective positions
UsersBloc
Widget dedicated to the management of a users list with pagination.
UsersBlocState
The current state of the UsersBloc
ValueResult<T>
A result representing a returned value.
VideoAttachment
Widget for showing a video attachment
VideoPackage
Class for packaging up things required for videos
VisibleFootnote
Widget for displaying a footnote

Enums

ActionsLocation
Location for actions on the MessageInput
AttachmentSource
Enum for identifying type of attachment
ChatErrorCode
Complete list of errors that are returned by the API together with the description and API code.
ConnectionStatus
Used to notify the WS connection status
ConnectivityResult
Connection status check result.
DefaultAttachmentTypes
Default attachments for widget
DioErrorType
DisplayWidget
The display behaviour of a widget
ListFormat
ListFormat specifies the array format (a single parameter with multiple parameter or multiple parameters with the same name) and the separator for array items.
Location
MessageSendingStatus
Enum defining the status of a sending message
PushProvider
Provider used to send push notifications.
QueryDirection
Specifies query direction for pagination
ResponseType
ResponseType indicates which transformation should be automatically applied to the response data by Dio.
ReturnActionType
Return action for coming back from pages
SendButtonLocation
Available locations for the sendMessage button relative to the textField
SpacingType
Spacing Types (These are properties of a message to help inform the decision of how much space / which widget to build after it)
Units
VideoQuality

Mixins

OptionsMixin

Extensions

AttachmentSourceX on AttachmentSource
Extension for identifying type of attachment
ChatErrorCodeX on ChatErrorCode
ChunkedStreamReaderByteStreamExt on ChunkedStreamReader<int>
Extensions for using ChunkedStreamReader with byte-streams.
IconButtonX on IconButton
Extension on IconButton
IterableX on Iterable<T?>
Useful extension functions for Iterable
LocationX on Location
MapX on Map<K?, V?>
Useful extension functions for Map
RateLimit on Function
Useful rate limiter extensions for Function class.
StreamExtensions on Stream<T>
Utility extensions on Stream.
StreamSinkExtensions on StreamSink<T>
Extensions on StreamSink to make stream transformations more fluent.
StringX on String
Useful extension functions for String
UploadStateX on UploadState?
Helper extension for UploadState

Constants

colorGradients → const List<List<Color>>
Gradient list for polygons

Functions

chatErrorCodeFromCode(int code) ChatErrorCode?
collectBytes(Stream<List<int>> source) Future<Uint8List>
Collects an asynchronous sequence of byte lists into a single list of bytes.
collectBytesCancelable(Stream<List<int>> source) CancelableOperation<Uint8List>
Collects an asynchronous sequence of byte lists into a single list of bytes.
debounce(Function func, Duration wait, {bool leading = false, bool trailing = true, Duration? maxWait}) Debounce
TopLevel lambda to create Debounce functions.
defaultMessageFilter(String currentUserId) bool Function(Message)
Default filter for the message list
fileSize(dynamic size, [int round = 2]) String
A method returns a human readable string representing a file _size
getFileTypeImage(String? type) StreamSvgIcon
getRandomPicUrl(User user) String
Get random png with initials
getWebsiteName(String hostName) String?
Get websiteName from hostName
launchURL(BuildContext context, String url) Future<void>
Launch URL
levenshtein(String s, String t, {bool caseSensitive = true}) int
Levenshtein algorithm implementation based on: http://en.wikipedia.org/wiki/Levenshtein_distance#Iterative_with_two_matrix_rows
showConfirmationDialog(BuildContext context, {required String title, required String okText, Widget? icon, String? question, String? cancelText}) Future<bool?>
Shows confirmation dialog
showInfoDialog(BuildContext context, {required String title, required String okText, Widget? icon, String? details, StreamChatThemeData? theme}) Future<bool?>
Shows info dialog
subscriptionTransformer<T>({Future handleCancel(StreamSubscription<T>)?, void handlePause(StreamSubscription<T>)?, void handleResume(StreamSubscription<T>)?}) StreamTransformer<T, T>
Creates a StreamTransformer that modifies the behavior of subscriptions to a stream.
throttle(Function func, Duration wait, {bool leading = true, bool trailing = true}) Throttle
TopLevel lambda to create Throttle functions.
typedStreamTransformer<S, T>(StreamTransformer transformer) StreamTransformer<S, T>
Creates a wrapper that coerces the type of transformer.
wrapAttachmentWidget(BuildContext context, Widget attachmentWidget, ShapeBorder attachmentShape, bool reverse) Widget
Wraps attachment widget with custom shape

Typedefs

ActionButtonBuilder = Widget Function(BuildContext context, IconButton defaultActionButton)
Widget builder for action button.
AttachmentActionsBuilder = Widget Function(BuildContext context, Attachment attachment, AttachmentActionsModal defaultActionsModal)
Widget builder for attachment actions modal defaultActionsModal is the default AttachmentActionsModal config Use defaultActionsModal.copyWith to easily customize it
AttachmentBuilder = Widget Function(BuildContext, Message, List<Attachment>)
Widget builder for building attachments
AttachmentDownloader = Future<String> Function(Attachment attachment, {ProgressCallback? progressCallback})
Callback to download an attachment asset
AttachmentLimitExceedListener = void Function(int limit, String error)
A callback that can be passed to MessageInput.onAttachmentLimitExceed.
AttachmentThumbnailBuilder = Widget Function(BuildContext, Attachment)
Builder for attachment thumbnails
ChannelInfoCallback = void Function(Channel)
Callback called when tapping on a channel
ChannelPreviewBuilder = Widget Function(BuildContext, Channel)
Builder used to create a custom ChannelPreview from a Channel
ChannelTapCallback = void Function(Channel, Widget?)
Callback called when tapping on a channel
EmptyMessageSearchBuilder = Widget Function(BuildContext context, String searchQuery)
Builder used when MessageSearchListView is empty
ErrorBuilder = Widget Function(BuildContext context, Object error)
A signature for a callback which exposes an error and returns a function. This Callback can be used in cases where an API failure occurs and the widget is unable to render data.
ErrorListener = void Function(Object error, StackTrace? stackTrace)
A callback that can be passed to MessageInput.onError.
EventHandler = void Function(Event event)
A Signature for a handler function which will expose a event.
FailedBuilder = Widget Function(BuildContext, String)
Widget to build on failure
InProgressBuilder = Widget Function(BuildContext, int, int)
Widget to build in progress
LogHandlerFunction = void Function(LogRecord record)
Handler function used for logging records. Function requires a single LogRecord as the only parameter.
MentionTileBuilder = Widget Function(BuildContext context, Member member)
Builder function for building a mention tile.
MessageBuilder = Widget Function(BuildContext, MessageDetails, List<Message>, MessageWidget defaultMessageWidget)
Widget builder for message defaultMessageWidget is the default MessageWidget configuration Use defaultMessageWidget.copyWith to easily customize it
MessageSearchItemBuilder = Widget Function(BuildContext, GetMessageResponse)
Builder used to create a custom ListUserItem from a User
MessageSearchItemTapCallback = void Function(GetMessageResponse)
Callback called when tapping on a user
OnMessageSwiped = void Function(Message)
Callback on message swiped
OnMessageTap = void Function(Message)
Callback on message tapped
OnQuotedMessageTap = void Function(String?)
Callback for when quoted message is tapped
ParentMessageBuilder = Widget Function(BuildContext, Message?, MessageWidget defaultMessageWidget)
Widget builder for parent message defaultMessageWidget is the default MessageWidget configuration Use defaultMessageWidget.copyWith to easily customize it
ProgressCallback = void Function(int count, int total)
Callback to listen the progress for sending/receiving data.
ReplyTapCallback = void Function(Message)
Callback on reply tapped
RequestEncoder = List<int> Function(String request, RequestOptions options)
ResponseDecoder = String Function(List<int> responseBytes, RequestOptions options, ResponseBody responseBody)
ShowMessageCallback = void Function(Message message, Channel channel)
Callback when show message is tapped
SpacingWidgetBuilder = Widget Function(BuildContext context, List<SpacingType> spacingTypes)
Builder for building certain spacing after widgets. This spacing can be in form of any widgets you like. A List of SpacingType is provided to help inform the decision of what to build after the message.
SystemMessageBuilder = Widget Function(BuildContext, Message)
Widget builder for system message
ThreadBuilder = Widget Function(BuildContext context, Message? parent)
Widget builder for thread
ThreadTapCallback = void Function(Message, Widget?)
Callback for thread taps
TitleBuilder = Widget Function(BuildContext context, ConnectionStatus status, StreamChatClient client)
Widget builder for title
UserItemBuilder = Widget Function(BuildContext, User, bool)
Builder used to create a custom ListUserItem from a User
UserMentionTileBuilder = Widget Function(BuildContext context, User user)
Builder function for building a user mention tile.
UserTapCallback = void Function(User, Widget?)
Callback called when tapping on a user
ValidateStatus = bool Function(int? status)
ViewInfoCallback = void Function(Channel)
Callback for when 'View Info' is tapped

Exceptions / Errors

DioError
DioError describes the error info when request failed.
StreamChatError
StreamChatNetworkError
StreamWebSocketError