¿Actualizar widget cuando se recibe un nuevo mensaje?

Tengo un widget de componente de tema que muestra una pequeña burbuja cuando hay un tema nuevo o no leído. Para que se actualice en tiempo real, hago esto:

  topicTrackingState.onStateChange(() => {
    this.scheduleRerender();
   });

Me gustaría hacer algo similar con los mensajes privados. Puedo usar new_personal_messages_notifications_count para obtener el número de mensajes para un usuario. Pero si se recibe un nuevo mensaje, el widget no se vuelve a renderizar automáticamente. ¿Hay alguna manera fácil de actualizar el widget cuando se recibe un nuevo mensaje, similar a topicTrackingState anterior?

Así que encontré una solución que funciona. Aparentemente, existe una versión de mensaje privado de TopicTrackingState. Me tomó un tiempo darme cuenta de que requiere una “clave” como parámetro, que no me queda claro para qué es la clave, pero aceptó una cadena arbitraria sin problemas.

  pmTopicTrackingState.onStateChange("pm-tracking-key", () => {
    this.scheduleRerender();
  });

Esto activa la nueva renderización, pero noté que new_personal_messages_notifications_count no se actualiza a tiempo para la nueva renderización, por lo que no se actualiza inmediatamente.

Creo que esta es una solución “suficientemente buena” para mí. La notificación eventualmente llega al widget. Me complace escuchar cualquier comentario al respecto.

2 Me gusta