-
-
Notifications
You must be signed in to change notification settings - Fork 654
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Ensure all server events and their operations are handled #3408
Comments
Fixes zulip#3397 Part of zulip#3408 Handles the three types of user data updates possible: * full name * avatar * custom profile field Extra care is taken not to mutate the state if not necessary. This is done for two reasons: * currently editing values throught he web app causes two events, one of which is not necessary (maybe should be fixed) * this is likely the largest state, doing an extra `isEqual` can save copying all this data
Thanks @borisyankov for writing this up! I just added a few items; if I see more in this category I'll add them too. |
Yep, that's right. Thanks! |
Quoting Tim from zulip/zulip#10044 (comment):
|
An update to this issue's description: happily, this part of the Zulip API is now documented! So the reverse-engineering discussed above should no longer be necessary. |
This handles part of zulip#3408, closely related to zulip#2688. In particular this means that if you find one of these messages in an interleaved view where recipient headers are shown, the recipient header will take you to the correct narrow. The FlowIssue line here is essentially the same as one in the code we removed here a couple of commits ago.
This handles part of zulip#3408, closely related to zulip#2688. In particular this means that if you find one of these messages in an interleaved view where recipient headers are shown, the recipient header will take you to the correct narrow. We actually did handle topic edits, but only for a single message, and didn't handle moves between streams.
This handles part of zulip#3408, closely related to zulip#2688. In particular this means that if you find one of these messages in an interleaved view where recipient headers are shown, the recipient header will take you to the correct narrow. We actually did handle topic edits, but only for a single message, and didn't handle moves between streams.
This handles part of zulip#3408, closely related to zulip#2688. In particular this means that if you find one of these messages in an interleaved view where recipient headers are shown, the recipient header will take you to the correct narrow. We actually did handle topic edits, but only for a single message, and didn't handle moves between streams.
We are handling almost all server events and the majority of their operations.
The ones not being handled have not been a priority to implement until now.
With the approaching implementation of Queue 2.0 we will stop refreshing our internal state frequently and it will be essential for the state consistency to add handling for the remaining ones.
[We've edited this list over time to try to keep it up to date. -- Greg]
For documentation of each of these, see: https://zulip.com/api/get-events
allow_edit_history
, treat similarly to a restart event (in particular, a restart event where the server version changed, which could mean any number of subtle changes in server behavior), and do a re-fetch of server data soon after. BecauseMessage
objects'edit_history
property will be stale. messages reducer: Sketch a plan for keeping Message.edit_history current #5422 (comment)state.accounts
(but fully handling that case will also require handling when it happens while we aren't online and don't have an event queue -- should probably become a separate issue)update_display_settingsdeprecated -> user_settings (Execute theuser_settings
object transition #4933)git grep -L EVENT_UPDATE_MESSAGE: -- $(git grep -l EVENT_NEW_M src/*/*Reducer*)
)Since #5310, see also the event types we explicitly ignore at the end of
eventToAction
. (Many of those are for product features we simply don't support, though, and those are out of scope for this issue -- we'll handle them as part of adding those features.)The text was updated successfully, but these errors were encountered: