Forçar footer-nav com cookie

O Discourse renderiza esse rodapé com base em algumas condições. O rodapé é adicionado aqui.

discourse/app/assets/javascripts/discourse/app/templates/application.hbs at a0bbc346cb5d5b89d1a3efdfa89869349a8b067f · discourse/discourse · GitHub

showFooterNav é definido aqui.

discourse/app/assets/javascripts/discourse/app/controllers/application.js at 1472e47aae5bfdfb6fd9abfe89beb186c751f514 · discourse/discourse · GitHub

Se qualquer uma dessas condições for verdadeira, a navegação será exibida.

isiOSPWA() e isAppWebview() são definidos aqui

discourse/app/assets/javascripts/discourse/app/lib/utilities.js at 1472e47aae5bfdfb6fd9abfe89beb186c751f514 · discourse/discourse · GitHub

Por exemplo, isAppWebview() se parece com isto.

discourse/app/assets/javascripts/discourse/app/lib/utilities.js at 1472e47aae5bfdfb6fd9abfe89beb186c751f514 · discourse/discourse · GitHub

Você pode criar uma condição adicional no seu tema — no seu site Discourse — para verificar o cookie, assim:

const isWKWebView = () => {
  // verifique o cookie e retorne true se ele existir
  // ou use qualquer outro método para detectar se o usuário está usando seu aplicativo
}

Para outras Classes, normalmente você seria capaz de modificar o showFooterNav() assim:

api.modifyClass("controller:application", {
  pluginId: "show-footer-nav",
  @discourseComputed
  showFooterNav() {
    // ...
  }
});

No entanto, este é o controlador da aplicação, o que significa que ele será cacheado antes que seu código tenha a chance de ser executado. Em outras palavras, você não conseguirá modificar a Classe.

Dito isso, você ainda pode alterar o valor de showFooterNav com algo assim:

<script type="text/discourse-plugin" version="0.8">
  const isWKWebView = () => {
    // verifique e retorne sua condição
  };

  if (isWKWebView()) {
    const applicationController = api.container.lookup("controller:application");
    applicationController.set("showFooterNav", true);
  }
</script>

na aba de cabeçalho do seu tema ou em um inicializador se estiver usando um tema remoto.

5 curtidas