Forzar barra de pie con cookie

Discourse renderiza ese pie de página basándose en ciertas condiciones. El pie de página se agrega aquí.

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

showFooterNav se define aquí.

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

Si cualquiera de esas condiciones es verdadera, la navegación se mostrará.

isiOSPWA() y isAppWebview() se definen aquí

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

Por ejemplo, isAppWebview() se ve así.

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

Puedes crear una condición adicional en tu tema, en tu sitio de Discourse, para verificar la cookie, de la siguiente manera:

const isWKWebView = () => {
  // verifica la cookie y devuelve true si existe
  // o utiliza cualquier otro método para detectar si el usuario está usando tu aplicación
}

Para otras clases, normalmente podrías modificar showFooterNav() de la siguiente manera:

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

Sin embargo, este es el controlador de la aplicación, lo que significa que se almacenará en caché antes de que tu código tenga la oportunidad de ejecutarse. En otras palabras, no podrás modificar la clase.

Dicho esto, aún puedes cambiar el valor de showFooterNav con algo como esto:

<script type="text/discourse-plugin" version="0.8">
  const isWKWebView = () => {
    // verifica y devuelve tu condición
  };

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

en la pestaña de encabezado de tu tema o en un inicializador si estás utilizando un tema remoto.

5 Me gusta