Chat en plein écran par défaut pour la configuration de la collaboration

Je travaille sur une configuration de collaboration qui positionne le Chat comme l’espace principal pour la communication des membres, similaire à d’autres plateformes de collaboration. L’objectif est que les membres accèdent directement à leurs canaux ou aux derniers fils de discussion, faisant du chat le centre névralgique lorsqu’ils visitent le site.

Ainsi, au lieu d’atterrir sur une vue comme celle-ci :

J’atterrirais directement sur le chat en plein écran :

Il semble qu’il n’y ait actuellement aucun moyen d’ouvrir le chat en mode plein écran par défaut. Pourrait-on ajouter cela comme option ?

Cela pourrait être exposé comme un paramètre de site, un modificateur de thème ou un transformateur de valeur. Un moyen de donner aux auteurs de thèmes ou aux administrateurs de site la flexibilité d’intégrer le Chat comme vue d’interaction par défaut.

5 « J'aime »

Vous pouvez écrire un initialiseur comme ceci :

export default {
  name: "default-full-page-chat",

  initialize() {
    if (!window.localStorage.getItem("discourse_chat_preferred_mode")) {
      window.localStorage.setItem("discourse_chat_preferred_mode", '\"FULL_PAGE_CHAT\"');
    }
  },
};

Cela devrait faire ce que vous voulez, je pense.

8 « J'aime »

En effet, ça marche à merveille ! Merci :blush:

7 « J'aime »

Je sais que c’est déjà résolu, mais au lieu d’accéder directement à localStorage comme ceci, si vous pouvez accéder aux services du plugin depuis un thème, vous pouvez faire :

export default {
  name: "default-full-page-chat",

  initialize(container) {
    const chat = container.lookup("service:chat");
    if (!chat.userCanChat) {
      return;
    }

    const chatStateManager = container.lookup("service:chat-state-manager");
    chatStateManager.prefersFullPage();
  },
};

Ce qui appelle ceci :

Ce serait plus fiable à long terme, si cela fonctionne (je n’ai pas testé :sweat_smile: ).

5 « J'aime »

Oui, utiliser le service est plus agréable, mais je ne pense pas que nous ayons un moyen de vérifier si une préférence a été définie via le service pour le moment. N’est-ce pas ?

Et si j’ai bien compris la demande ici, nous ne voulons pas remplacer une décision de l’utilisateur, nous voulons juste promouvoir le plein écran lors du premier chargement, si nous voulons juste le forcer, oui, votre solution fonctionnera.

4 « J'aime »

Nous avons ceci, mais isDrawerPreferred est toujours true si aucune préférence n’a été définie :

Je pense que ce serait bien si nous avions un getter hasNoPreferredMode pour cette situation qui vérifie simplement le magasin, voici une PR :

4 « J'aime »

Ok @manuel ce PR est maintenant fusionné, vous pouvez donc utiliser l’API de plugin que j’ai décrite dans Full-screen chat as default for collaboration setup - #4 by martin et hasNoPreferredMode du gestionnaire d’état du chat.

2 « J'aime »

Salut @nolo, juste une petite remarque :

En mode de chat en plein écran, vous devez généralement quitter le plein écran (ou modifier l’interface utilisateur du chat) avant de voir une option claire pour revenir à la liste des chats ou passer à une conversation avec un autre membre.

Il serait peut-être intéressant de voir s’il existe un moyen d’améliorer cette expérience de navigation en plein écran lui-même.

Merci @martin, cela fonctionne très bien !

En testant l’UX dans mon cas actuel, il est en fait plus intuitif d’avoir le Chat en plein écran tout le temps. Je veux que le Chat soit le mode de communication principal, et le fait de pouvoir le minimiser peut amener les utilisateurs à se retrouver sur un écran qu’ils n’ont pas choisi intentionnellement auparavant, ce qui peut être déroutant.

Je pense utiliser simplement du CSS pour masquer l’option de minimisation, à moins qu’il n’y ait un moyen plus direct de la désactiver ?


@jahan_gagan Je ne suis pas tout à fait sûr de ce à quoi vous faisiez référence, est-ce sur des sites qui utilisent un menu hamburger pour la navigation ? Dans ma configuration, toutes les options de navigation sont disponibles via la barre latérale.

Cependant, j’ai rencontré un problème : sur les tablettes, le clavier apparaît automatiquement lors de la navigation vers un canal de discussion, ce qui provoque une disposition très saccadée. Je n’ai pas cherché à résoudre ce problème, je le note simplement comme une complication.

3 « J'aime »

Oui, masquer le bouton de réduction fonctionnerait, mais je viens de vérifier et il existe une autre façon pour les utilisateurs de revenir au mode tiroir. Si vous appuyez sur la touche - lorsque vous êtes sur le forum, nous ouvrons le tiroir de chat :

Et dans cette fonction, nous appelons chatStateManager.prefersDrawer(), qui définit la préférence dans le stockage local. Nous avons eu plus de discussions récemment en interne sur l’autorisation d’un mode Discourse uniquement centré sur le chat, y compris une expérience dans cette direction, ainsi que des idées autour du mode tiroir.

Je ne suis pas sûr quand le moment viendra pour nous de nous concentrer davantage sur cela, @mcwumbly pourrait avoir un avis là-dessus ou @lindsey.

2 « J'aime »

Merci, c’est vraiment utile à savoir ! Je ne suis pas encore sûr de ce que je vais faire maintenant, mais oui, ce serait super s’il y avait une future option pour aligner cela complètement avec les paramètres courants de Discourse.

1 « J'aime »