DefaultConvoKitUiClient class final

Default UI client backed directly by the installed ConvoKit Flutter SDK.

Implemented types

Constructors

DefaultConvoKitUiClient()
Creates the default stateless SDK adapter.
const

Properties

connectionEvents → Stream<RealtimeConnectionEvent>
Join/rejoin signals for logical messages:<room> and conversation:<room> topics. Close this stream when the owning session ends.
no setteroverride
currentUserId → String
Application-level ID of the connected user.
no setteroverride
hashCode → int
The hash code for this object.
no setterinherited
inboxActivity → Stream<void>
Empty activity signals after a message insert or edit, a read-position advance, or a change to the connected user's own "mark unread" marker (a mark, a clear, or an acknowledgement that clears it), anywhere in the app. Unlike inboxChanges this stream is never synthesised on joins; list controllers throttle it and refetch previews, unread counts and markers through listInbox. Room controllers ignore it.
no setteroverride
inboxChanges → Stream<void>
Empty inbox invalidations on mutations and every verified initial/rejoin.
no setteroverride
runtimeType → Type
A representation of the runtime type of the object.
no setterinherited
sessionIdentity → Object?
Stable identity of this connected session, not just a user ID. Change it on logout/reconnectUser (including the same user); null means disconnected.
no setteroverride

Methods

addReaction(String messageId, String emoji) → Future<ReactionMutationResult>
Idempotently adds the caller's exact emoji to messageId.
override
clearConversationUnread(String conversationId, {int? ifVersion}) → Future<ClearUnreadResult>
Clears the connected user's own "mark unread" marker on conversationId without acknowledging any message (DELETE /conversations/:id/unread).
override
deleteMessage(String messageId) → Future<void>
Deletes the connected user's own message messageId (DELETE /api/v1/messages/:id/own).
override
editMessage(String messageId, {required String? text, required int revision}) → Future<Message>
Edits the text of the connected user's own message messageId (PATCH /api/v1/messages/:id/own) and returns the updated row.
override
getConversation(String conversationId) → Future<Conversation>
Loads one conversation including its participants and persisted reads.
override
getConversations({required int limit, required int offset, required bool archived}) → Future<List<Conversation>>
Loads one offset-based page of conversations.
override
getMessage(String id) → Future<Message>
Loads the complete authorized message, including related media absent from raw Postgres row events. Enforce the same app/room membership rules.
override
getMessageContext(String conversationId, {String? messageId, String? olderCursor, String? newerCursor, required int limit}) → Future<MessageContextPage>
Loads one window of messages around messageId, or the page immediately older or newer than a cursor (GET /api/v1/conversations/:id/context).
override
getMessages({required String conversationId, required int limit, required int offset, Message? before}) → Future<List<Message>>
Loads one newest-first page of messages. With before, return rows strictly older by (createdAt, id), descending; use the cursor's values even when that row has since been deleted. Cursor requests always have offset zero.
override
getReactionSummaries(String conversationId, List<String> messageIds) → Future<List<MessageReactionSummary>>
Batches bounded summaries for currently visible messageIds.
override
getReplyPreviews(String conversationId, {required List<String> messageIds}) → Future<List<ReplyPreview>>
Resolves the quoted messages messageIds of conversationId into bounded previews (GET /api/v1/conversations/:id/reply-previews?ids=).
override
listInbox({required int limit, String? cursor, required bool archived}) → Future<InboxPage>
Loads one cursor page of the connected user's inbox: conversations with their latest-message preview, unread count and the caller's read state, ordered by activity time then conversation id, both descending.
override
listReactionUsers(String messageId, String emoji, {int limit = 30, String? cursor}) → Future<ReactionUsersPage>
Paginates users for one exact emoji on messageId.
override
markConversationRead(String conversationId, {String? throughMessageId, int? privateStateVersion}) → Future<void>
Acknowledges the connected user's read position through one message.
override
markConversationUnread(String conversationId) → Future<ConversationPrivateState>
Marks conversationId unread for the connected user only (POST /conversations/:id/unread).
override
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
onMessage(String conversationId) → Stream<MessageEvent>
Emits inserted and updated messages for a conversation.
override
onMessageDeleted(String conversationId) → Stream<MessageDeletedEvent>
Emits authorized ID-only deletions. Never fabricate a full old Message.
override
onReactionChanged(String conversationId) → Stream<ReactionChangedEvent>
Private, ID-only room invalidations after effective changes.
override
onReadReceipt(String conversationId) → Stream<ReadEvent>
Emits read-position changes for a conversation.
override
onTyping(String conversationId) → Stream<TypingEvent>
Emits typing-state changes for a conversation.
override
removeReaction(String messageId, String emoji) → Future<ReactionMutationResult>
Idempotently removes the caller's exact emoji from messageId.
override
sendMessage({required String conversationId, String? clientMessageId, String? text, List<Map<String, dynamic>>? media, String? replyToMessageId}) → Future<Message>
Sends one text and/or structured-media message.
override
sendTyping({required String conversationId, required bool isTyping}) → Future<void>
Broadcasts a typing-state update.
override
toString() → String
A string representation of this object.
inherited

Operators

operator ==(Object other) → bool
The equality operator.
inherited