1 on 1 Chats
sending images
with upload button
with drag & drop
transactions
send transaction
request payment
start new 1 on 1 Chat
key source file: ui/app/AppLayouts/Chat/ContactsColumn/AddChat.qml
key source file: ui/app/AppLayouts/Chat/ContactsColumn.qml
key source file: ui/app/AppLayouts/Chat/components/PrivateChatPopup.qml
key source file: ui/shared/ContactsListAndSearch.qml
with existing contact
key source file: ui/shared/ContactsListAndSearch.qml
key source file: ui/shared/ExistingContacts.qml
key source file: src/app/profile/view.nim
key source file: src/app/profile/views/contact_list.nim
key source file: src/app/profile/core.nim
key source file: src/app/profile/core.nim
key source file: src/status/contacts.nim
key source file: src/status/libstatus/contacts.nim
by ENS username
key source file: ui/shared/ContactsListAndSearch.qml
key source file: src/app/chat/view.nim
key source file: ui/app/AppLayouts/Chat/components/PrivateChatPopup.qml
The ENS search uses a debouce of 500ms to avoid unnecessary searches, and calls chatsModel.resolveENS(ensName)
// TODO: describe how thread pool works
by chat key
key source file: ui/app/AppLayouts/Chat/components/PrivateChatPopup.qml
key source file: src/app/chat/view.nim
key source file: src/status/chat.nim
key source file: src/status/libstatus/chat.nim
The chat is initialized with chatsModel.joinChat(pubKey, Constants.chatTypeOneToOne)
, on the backend this calls the saveChat
RPC method