Add footer app to display users viewing the same content node #49
  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.
  
    
  
    
Summary
Adds a new footer app that displays the number of connected users also viewing the same content node as the current user. Clicking the count opens a modal that displays the users who are viewing the page along with their avatar.
Changes Made
Backend (C#)
StartViewingContentandStopViewingContentmethods toContentLockHub.csIContentLockHubEvents.csfor content viewing events:UserStartedViewingContent(Guid contentKey, Guid userKey)UserStoppedViewingContent(Guid contentKey, Guid userKey)ReceiveUsersViewingContent(Guid contentKey, Guid[] viewingUserKeys)Frontend (TypeScript)
contentlock-viewingusers-workspacefooterapp.tsthat shows user count and opens modal on clickcontentlock.signalr.context.tswith:getUsersViewingContent(),getViewersCountExcludingCurrentUser()startViewingContent(),stopViewingContent()Key Features
Testing
To test this feature:
Screenshots
The footer app appears at the bottom of the content editor when other users are viewing the same page:
Clicking opens a modal titled "Who's viewing this page?" with user avatars and names.
Backward Compatibility
This is a purely additive feature that doesn't modify existing functionality. All existing ContentLock features continue to work as before.
💡 You can make Copilot smarter by setting up custom instructions, customizing its development environment and configuring Model Context Protocol (MCP) servers. Learn more Copilot coding agent tips in the docs.