Olá, @Don, mais uma vez, obrigado pelo F NAV! Ele tem sido a base do nosso layout móvel na experiência móvel da nossa comunidade.
Fiz um fork para adaptar algumas coisas de que precisávamos e ficarei feliz em enviar qualquer uma delas de volta como PRs, ou você pode usar o código como está, se achar que pertence ao componente:
1. F NAV no /chat, no lugar do rodapé do chat
Em vez de se ocultar no chat em tela cheia, a barra permanece e o rodapé do próprio chat (.c-footer) é ocultado. Suas abas (canais, DMs, threads, fixados, busca) também estão todas disponíveis na barra lateral do chat.
Para deixar espaço abaixo do chat, a barra define a classe footer-nav-visible do core no /chat (adicionando e removendo-a ela mesma, para que a barra PWA do core mantenha a sua), com --footer-nav-height definido como a altura da barra. O mixin chat-height do core já subtrai isso. A barra sai da frente enquanto o teclado está aberto.
Ela também traz de volta o botão da barra lateral do cabeçalho no chat em tela cheia para dispositivos móveis, que o plugin do chat oculta, já que as abas do rodapé ficam na barra lateral.
2. Sair do chat, como a aba do bot de IA
Dentro do chat, a aba que o abre mostra shuffle e volta para o lastKnownAppURL, assim como a aba do bot de IA faz a partir das suas conversas.
Essa aba pode ser a aba Chat, a Multi Tab ou uma aba personalizada apontando para /chat. O comportamento reside no f-nav-item, porque o manipulador de cliques da própria aba prevalece sobre o link do ícone interno.
3. Uma aba de composição
Esta é uma nova função compose, que também é acionada por uma aba personalizada apontando para /new-topic:
- Dentro de um tópico no qual o usuário pode postar, ela mostra
replye abre o compositor de respostas (composer.focusComposer({ topic }), para que os rascunhos sejam reabertos normalmente). - Em todos os outros lugares, ela abre um novo tópico com a categoria atual pré-selecionada (
composer.openNewTopic).
Cada alteração é pequena e autossuficiente, portanto podem ser implementadas separadamente. Basta me dizer quais você gostaria como PRs e eu os abrirei contra o main.
Uma pergunta: o repositório ainda não tem uma licença. Você consideraria adicionar uma, para que forks e contribuições fiquem claros?
Espero que ajude!