online-users.tsx 857 B

123456789101112131415161718192021222324252627
  1. import { useEditorManagerContext } from '@/features/ide-react/context/editor-manager-context'
  2. import {
  3. OnlineUser,
  4. useOnlineUsersContext,
  5. } from '@/features/ide-react/context/online-users-context'
  6. import { useCallback } from 'react'
  7. import { OnlineUsersWidget } from '@/features/editor-navigation-toolbar/components/online-users-widget'
  8. export const OnlineUsers = () => {
  9. const { openDoc } = useEditorManagerContext()
  10. const { onlineUsersArray } = useOnlineUsersContext()
  11. const goToUser = useCallback(
  12. async (user: OnlineUser) => {
  13. if (user.doc && typeof user.row === 'number') {
  14. return await openDoc(user.doc, { gotoLine: user.row + 1 })
  15. }
  16. },
  17. [openDoc]
  18. )
  19. return (
  20. <div className="ide-redesign-online-users">
  21. <OnlineUsersWidget onlineUsers={onlineUsersArray} goToUser={goToUser} />
  22. </div>
  23. )
  24. }