Aggiornare il widget quando si riceve un nuovo messaggio?

Ho un widget del componente tema che visualizza una piccola bolla quando c’è un argomento nuovo o non letto. Per aggiornarlo in tempo reale faccio questo:

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

Vorrei fare qualcosa di simile con i messaggi privati. Posso usare new_personal_messages_notifications_count per ottenere il numero di messaggi per un utente. Ma se viene ricevuto un nuovo messaggio, il widget non si aggiorna automaticamente. Esiste un modo semplice per aggiornare il widget alla ricezione di un nuovo messaggio, simile a topicTrackingState sopra?

Ho trovato una soluzione funzionante. A quanto pare esiste una versione per messaggi privati di TopicTrackingState. Mi ci è voluto un po’ per capire che richiede una “key” come parametro, non mi è chiaro a cosa serva la chiave, ma ha accettato una stringa arbitraria senza problemi

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

Questo attiva il rerender, ma ho notato che new_personal_messages_notifications_count non viene aggiornato in tempo per il rerender, quindi non riesce ad aggiornarsi immediatamente.

Penso che questa sia una soluzione “abbastanza buona” per me. La notifica alla fine arriva sul widget. Sono felice di sentire eventuali commenti a riguardo.

2 Mi Piace