prose-im / prose-app-web

Prose Web application. XMPP client for team messaging.
https://prose.org/downloads
Mozilla Public License 2.0
20 stars 2 forks source link

Allow to add a contact #11

Closed nesium closed 5 months ago

nesium commented 10 months ago

Currently there's no UI to add any contacts

valeriansaliou commented 10 months ago

WIP: https://github.com/prose-im/prose-app-web/commit/ae3abaef5414247a55010b649be87c9b19d6d2a3

nesium commented 10 months ago

Do we know btw. how we are going to handle contact requests on the recipient side?

Is it safe to automatically accept requests from the same domain? Should that be an application setting? What about requests from other domains?

valeriansaliou commented 10 months ago

UI all done and functional on my end in: 6e1778c4e40f5f4998952b1798be7f9652a6d971

Remaining tasks to complete this (for you @nesium):

nesium commented 8 months ago

I had added this method in the meanwhile…

/**
* Adds a contact to the roster and sends a presence subscription request.
* @param {JID} jid
* @returns {Promise<void>}
*/
  addContact(jid: JID): Promise<void>;

… which is not enough since it doesn't automatically create a room.

I would prefer to not have distinct steps between adding a contact and starting a chat with that contact. The problem of course is compatibility with other Jabber clients.

From a user perspective I would expect something like this:

From here we could display status messages within the chat. E.g. something like "The contact has not yet accepted your request". TBD

The sidebar also is in conceptional limbo ATM. The design shows more of a classic Jabber roster-like functionality, in the implementation I blurred the lines though between a contact/1:1 chat and group chats, like Slack does. I do think that it makes more sense for this kind of application and that as a user of a work-related chat app I do not want to think about my contact list (roster) and see who comes online and goes offline. All I'm interested in are the recent conversations I have/had with people and of course see their online status in that context, so that I know if I can expect a timely response or not.

valeriansaliou commented 5 months ago

What’s the status of this one? Do I still need to implement it, or does ‘startConversation’ suffices into adding an user to roster and opening the sidebar item?

valeriansaliou commented 5 months ago

Ok sorry, forget what I said. Implemented.

I will need more helper methods though related to this one: https://github.com/prose-im/prose-core-client/issues/45

valeriansaliou commented 5 months ago

Reference: fd574c0200406f4916ad89f27d906219907b9d17