Chat a schermo intero come predefinito per la configurazione della collaborazione

Sto lavorando a una configurazione di collaborazione che posiziona Chat come spazio principale per la comunicazione dei membri, simile ad altre piattaforme di collaborazione. L’obiettivo è che i membri accedano direttamente ai loro canali o ai thread più recenti, rendendo la chat il fulcro centrale quando visitano il sito.

Quindi, invece di accedere a una visualizzazione come questa:

Accederei direttamente alla chat a schermo intero:

Sembra che attualmente non ci sia modo di avere la chat aperta in modalità a schermo intero per impostazione predefinita. Potrebbe essere aggiunta come opzione?

Potrebbe essere esposta come impostazione del sito, modificatore del tema o trasformatore di valori. Un modo per offrire agli autori di temi o agli amministratori del sito la flessibilità di integrare Chat come visualizzazione di interazione predefinita.

5 Mi Piace

Puoi scrivere un inizializzatore come questo:

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\"');
    }
  },
};

Penso che questo dovrebbe fare quello che vuoi.

8 Mi Piace

Funziona alla grande! Grazie :blush:

7 Mi Piace

So che è già stato risolto, ma invece di accedere direttamente a localstorage in questo modo, se riesci ad accedere ai servizi del plugin da un tema, puoi fare:

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();
  },
};

Che chiama questo:

Questo sarebbe più affidabile a lungo termine, se funziona (non l’ho testato :sweat_smile: ).

5 Mi Piace

Sì, usare il servizio è più carino, ma non credo che abbiamo modo di verificare se qualche preferenza è stata impostata tramite il servizio al momento. Ce l’abbiamo?

E se ho capito la richiesta qui, non vogliamo sovrascrivere alcuna decisione dell’utente, vogliamo solo promuovere lo schermo intero al primo caricamento, se vogliamo solo forzarlo sì, la tua soluzione funzionerà.

4 Mi Piace

Abbiamo questi, ma isDrawerPreferred è sempre true se nessuna preferenza è stata impostata:

Penso che sarebbe bello avere un getter hasNoPreferredMode per questa situazione che controlli semplicemente lo store, ecco una PR:

4 Mi Piace

Okay @manuel questo PR è stato unito ora, quindi puoi usare l’API del plugin che ho descritto in Full-screen chat as default for collaboration setup - #4 by martin e hasNoPreferredMode dal chat state manager.

2 Mi Piace

Ciao @nolo, solo un appunto veloce:

Nella modalità chat a schermo intero, di solito è necessario uscire dalla modalità a schermo intero (o altrimenti modificare l’interfaccia utente della chat) prima di vedere un’opzione chiara per tornare all’elenco delle chat o passare a una conversazione con un altro membro.

Potrebbe valere la pena considerare se esiste un modo per migliorare l’esperienza di navigazione all’interno dello schermo intero stesso.

Grazie @martin, funziona benissimo!

Testando l’UX nel mio caso attuale, è in realtà più intuitivo avere la chat a schermo intero tutto il tempo. Voglio che la chat sia la modalità di comunicazione principale e permettere che venga ridotta a icona può portare gli utenti a finire su una schermata che non hanno scelto intenzionalmente prima, il che può creare confusione.

Sto pensando di usare solo CSS per nascondere l’opzione di riduzione a icona, a meno che non ci sia un modo più diretto per disabilitarla?


@jahan_gagan Non sono del tutto sicuro a cosa ti riferissi, si tratta di siti che utilizzano un menu hamburger per la navigazione? Nella mia configurazione, tutte le opzioni di navigazione sono disponibili tramite la barra laterale.

Tuttavia, ho riscontrato un problema: sui tablet la tastiera appare automaticamente quando si naviga verso un canale di chat e ciò causa un layout molto scattoso. Non ho ancora cercato di risolvere questo problema, lo sto solo segnalando come una complicazione.

3 Mi Piace

Sì, nascondere il pulsante di collasso funzionerebbe, ma ho appena controllato e c’è un altro modo in cui gli utenti possono tornare alla modalità drawer. Se premi il tasto - quando sei nel forum, apriamo il drawer della chat:

E in questa funzione chiamiamo chatStateManager.prefersDrawer(), che imposta la preferenza di archiviazione locale. Abbiamo avuto ulteriori discussioni interne di recente sulla possibilità di consentire una modalità di Discourse solo chat, incluso un esperimento in questa direzione, nonché idee sulla modalità drawer.

Non sono sicuro di quando arriverà il momento di concentrarci maggiormente su questo, @mcwumbly potrebbe avere qualche suggerimento qui o @lindsey.

2 Mi Piace

Grazie, è davvero utile saperlo! Non sono ancora sicuro di cosa farò adesso, ma sì, sarebbe fantastico se ci fosse un’opzione futura per allinearlo completamente con le impostazioni comuni di Discourse.

1 Mi Piace