Me temo que eso no es posible.
Esas propiedades no tienen setters; incluso si los tuvieran, tus cambios solo se aplicarían temporalmente en la primera ventana. Una vez que el usuario visite la segunda pestaña, los datos se basarán en lo que está almacenado en la base de datos. Los temas no tienen acceso al backend; solo pueden modificar el frontend.
Lo que puedes hacer es agregar un hash a tu enlace y verificarlo de la siguiente manera.
import { withPluginApi } from "discourse/lib/plugin-api";
import bootbox from "bootbox";
export default {
name: "first-login-bootbox",
initialize() {
withPluginApi("0.8", api => {
const user = api.getCurrentUser();
if (!user) return;
if (
!user.read_first_notification &&
!user.enforcedSecondFactor &&
!window.location.hash
) {
const text = `Lorem ipsum dolor sit amet <a href="http://localhost:3000/new-topic#some-hash" target="_blank">Enlace</a>, consectetur adipiscing elit, sed do eiusmod tempor`;
bootbox.alert(text);
}
});
}
};
No estoy seguro si enlazar a “/new-topic” en tu publicación era solo un ejemplo o si es lo que realmente quieres hacer. Si ese es el resultado deseado, entonces tienes otro problema. Incluso si el bootbox no se muestra en la página con el hash, el usuario aún verá esto…
…y el compositor no se abrirá, lo cual tiene sentido ya que es muy inesperado que un usuario comience a redactar un tema en su primera visita a la página.
¿Podría preguntarle qué intenta lograr aquí? ¿Está tratando de informar al usuario sobre algo en particular?
La forma en que he visto que se hace esto en otros sitios es editando el mensaje de bienvenida, pero si esa es una opción, hay alternativas.
Aquí está lo que sugiero:
- Crea un tema y agrega toda la información que desees allí.
- Publica ese tema.
- Enlaza a ese tema en el bootbox y abre ese enlace en una nueva pestaña.
De esta manera, cuando el usuario haga clic en el enlace, verá algo como esto (sin la superposición):
Una vez que termine en esa página, puede volver a la primera pestaña, cerrar el bootbox, leer la primera notificación y luego continuar usando el sitio.
De esta forma, ni siquiera necesitas agregar o verificar un hash. Aquí tienes un ejemplo de fragmento:
import { withPluginApi } from "discourse/lib/plugin-api";
import bootbox from "bootbox";
export default {
name: "first-login-bootbox",
initialize() {
withPluginApi("0.8", api => {
const user = api.getCurrentUser();
if (!user) return;
if (!user.read_first_notification && !user.enforcedSecondFactor) {
const text = `Lorem ipsum dolor sit amet <a href="http://my.site.com/pub/bentley-flying-spur-s-production-milestone" target="_blank">Enlace</a>, consectetur adipiscing elit, sed do eiusmod tempor`;
bootbox.alert(text);
}
});
}
};