Connect is the real-time messaging module enabling user-to-user communication. It supports direct messages, group chats, order-related conversations, and system messages.
Module path: src/lib/modules/connect/
Routes: /connect, /connect/[id]
Type Description DIRECTOne-on-one conversation GROUPMulti-user chat ONE_TO_ONEAlternative direct chat ORDEROrder-related communication SYSTEMSystem-generated messages
Status Description RequestedConnection request pending AcceptedActive conversation DeclinedRequest rejected ExpiredRequest expired
interface ChatConversation {
reactions : Record < string , string []>;
File: src/lib/modules/connect/services/chat.service.ts
Method Description createConversation()Start new chat createMessage()Send message deleteMessage()Delete for all deleteMessageForUser()Delete for self only addReaction()Add emoji reaction editMessage()Edit sent message blockUser() / unblockUser()Block/unblock markAsSpam() / unmarkAsSpam()Spam management sendDisputeNotificationMessage()System dispute messages
File: src/lib/modules/connect/services/chat-filter.service.ts
filterChatsByTab() - Filter by all/spammed/blocked/archive
highlightText() - Highlight search matches
processLastMessage() - Replace @mentions with usernames
chatManager . chats ; // Active conversations
chatManager . chatsAll ; // All conversations
chatManager . chatsArchived ; // Archived
chatManager . chatsRequested ; // Connection requests
chatManager . chatsSpammed ; // Spam
chatManager . blockedUsers ; // Blocked users
chatManager . countChatsWithUnreadMessages ; // Unread count
chatManager . members ; // Current chat members
chatManager . setChatId (id);
chatManager . setMessageIdSelected (id);
chatManager . setTypingStatus (status);
Emoji reactions on messages
@mentions with autocomplete
Message editing and deletion
Read receipts
Archive/Pin conversations
Mute/Snooze notifications
Spam reporting with metadata
User blocking
Threaded replies
Shared media panel
Component Purpose chats.svelteActive chat list chat-item-preview.svelteChat preview card archive-chats.svelteArchived conversations request-chats.sveltePending requests blocked-chats.svelteBlocked conversations spammed-chats.svelteSpam conversations
Component Purpose chat-body.svelteMessage display area message-input-area.svelteMessage composition message-item.svelteIndividual message messages-list.svelteMessage list message-menu.svelteRight-click actions mention-link.svelteClickable @mention
Component Purpose chat-search-input.svelteSearch messages chat-search-results.svelteSearch results chat-tabs.svelteTab navigation header.svelteChat header snooze-popover.svelteSnooze settings
chats/{chatId} # Chat conversation with messages
├── blockedUsers/ # Blocked user records
├── spammedChats/ # Spam reports
└── mentions/ # @mention notifications