Update sidebar users #24
Open
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
UserTrackeris created to periodically send updates to the active users sidebar.It keeps a convenient state, a map with the following structure:
active_userskeeps a map with the active users ids as keys and the user struct as valueuser_leavesanduser_joinskeep the list of users who joined or left during the current interval, they are cleared every time an interval ends.UserTrackerreceives updates sent fromLiveBeats.PresenceClientevery time that the callbackshandle_joinandhandle_leaveare called and updates its own state (active_users,user_leaves, anduser_joins) with the users data.Every time the configured interval ends, it broadcast the users who joined or left during the interval to the
ProfileLiveandSettingsLiveliveviews.A hook called
active_usersis defined to receive the active user updates and update theactive_usersassign.The
active_usersassign is defined as atemporary_assignand initializedon_mountwith theactive_userssaved in theUserTrackerstate.The
remove-elevent is used to delete the users who left from the sidebar elements in both navigationsmobile-active-usersanddesktop-active-users