mirror of
https://gh.wpcy.net/https://github.com/discourse/discourse.git
synced 2026-05-08 10:28:58 +08:00
While trying to reproduce an issue reported internally where a user saw the "is replying..." from another user who had disabled presence (aka. was "offline"), I noticed something odd about the way we "notify" presence via `notifyState`. The way it is setup up, it's being called on every "input" event in the composer/editor, due to it tracking the "reply" property of the composer model. That's fine, but the way the `helperFn` helper works, make it so we're calling the `on.cleanup` callback also on **every** "input" events in the composer/editor. For every character we enter in the composer, we're "entering" the presence channel and immediatelly "leaving" it... If I remove the checks on `reply` (and thus the auto-tracking), then the `notifyState` function is called much less frequently. But we have some specs that expects us not to "publish" our presence when we open the composer and the reply is "empty". Note: I switched to using `replyDirty` instead to re-use the checks the composer model is already doing to ensure we actually have changed something in the reply. The best I came up with was not to rely on the `helperFn` but now, there's no way (that I could find) to call `composerPresenceManager.leave()` when the composer is closed. I tried a lot of different ways, but none worked. I'm sure it's something stupid easy, but I can't figure it out just now. Internal ref - t/127490/74 |
||
|---|---|---|
| .. | ||
| automation | ||
| chat | ||
| checklist | ||
| discourse-details | ||
| discourse-lazy-videos | ||
| discourse-local-dates | ||
| discourse-narrative-bot | ||
| discourse-presence | ||
| footnote | ||
| poll | ||
| spoiler-alert | ||
| styleguide | ||