• Robert Knight's avatar
    Move real-time update state to store · 343237bb
    Robert Knight authored
    Move state related to received-but-not-yet-applied annotation updates
    ("pending updates") and deletions from the `streamer` service to a new
    `real-time-updates` module in the store.
    
    This will make it possible for React-based UI to reflect this state and
    update when it changes. It also removes some usage of Angular-specific
    logic (`$rootScope`) from the streamer service.
    
    Applying pending updates still requires a call to the
    `applyPendingUpdates` method of the streamer because that currently
    needs to trigger side effects and dispatches Angular events.
    
     - Move `pendingUpdates` and `pendingDeletions` local variables in
       streamer to `real-time-updates` store module
    
     - Replace calls to `store.{countPendingUpdates, hasPendingDeletion}`
       with calls to the store instead
    
     - Call store/streamer methods related to real-time updates directly
       from `<top-bar>` instead of passing it down from `<hypothesis-app>`.
    
       The `<top-bar>` component is not likely to be used outside the app,
       so there is no benefit to the indirection
    343237bb
real-time-updates.js 5.19 KB