diff --git a/src/actions/actionNavigate.tsx b/src/actions/actionNavigate.tsx index e8149e213..a7bf8087f 100644 --- a/src/actions/actionNavigate.tsx +++ b/src/actions/actionNavigate.tsx @@ -57,26 +57,22 @@ export const actionGoToCollaborator = register({ const background = getClientColor(clientId); - if (withName) { - return ( - updateData({ ...collaborator, clientId })} - icon={ - {}} - name={collaborator.username || ""} - src={collaborator.avatarUrl} - isBeingFollowed={appState.userToFollow?.clientId === clientId} - /> - } - > - {collaborator.username} - - ); - } - - return ( + return withName ? ( + updateData({ ...collaborator, clientId })} + icon={ + {}} + name={collaborator.username || ""} + src={collaborator.avatarUrl} + isBeingFollowed={appState.userToFollow?.clientId === clientId} + /> + } + > + {collaborator.username} + + ) : ( updateData({ ...collaborator, clientId })} diff --git a/src/components/UserList.tsx b/src/components/UserList.tsx index c995288a3..518e755b9 100644 --- a/src/components/UserList.tsx +++ b/src/components/UserList.tsx @@ -53,51 +53,6 @@ const sampleCollaborators = new Map([ ], ]) as any as Map; -export const __UserList: React.FC<{ - className?: string; - mobile?: boolean; - collaborators: AppState["collaborators"]; -}> = ({ className, mobile, collaborators }) => { - const actionManager = useExcalidrawActionManager(); - - const uniqueCollaborators = new Map(); - collaborators.forEach((collaborator, socketId) => { - uniqueCollaborators.set( - // filter on user id, else fall back on unique socketId - collaborator.id || socketId, - collaborator, - ); - }); - - const avatars = - uniqueCollaborators.size > 0 && - Array.from(uniqueCollaborators) - .filter(([_, client]) => Object.keys(client).length !== 0) - .map(([clientId, collaborator]) => { - const avatarJSX = actionManager.renderAction("goToCollaborator", [ - clientId, - collaborator, - ]); - - return mobile ? ( - - {avatarJSX} - - ) : ( - {avatarJSX} - ); - }); - - return ( -
- {avatars} -
- ); -}; - const FIRST_N_AVATARS = 3; const ConditionalTooltipWrapper = ({ @@ -140,6 +95,7 @@ const renderCollaborator = ({ return ( - {uniqueCollaboratorsArray.map(([clientId, collaborator]) => - renderCollaborator({ - actionManager, - collaborator, - clientId, - shouldWrapWithTooltip: true, - }), - )} - - ); - } + return mobile ? ( +
+ {uniqueCollaboratorsArray.map(([clientId, collaborator]) => + renderCollaborator({ + actionManager, + collaborator, + clientId, + shouldWrapWithTooltip: true, + }), + )} +
+ ) : ( +
+ {first3avatarsJSX} - return ( - <> -
- {first3avatarsJSX} - - {uniqueCollaboratorsArray.length > FIRST_N_AVATARS && ( -
- - { - setOpen(!open); - }} - > - +{uniqueCollaboratorsArray.length - FIRST_N_AVATARS} - - { - setOpen(false); - }} - > - {uniqueCollaboratorsArray.map(([clientId, collaborator]) => - renderCollaborator({ - actionManager, - collaborator, - clientId, - withName: true, - }), - )} - - -
- )} -
- + {uniqueCollaboratorsArray.length > FIRST_N_AVATARS && ( +
+ + { + setOpen(!open); + }} + > + +{uniqueCollaboratorsArray.length - FIRST_N_AVATARS} + + { + setOpen(false); + }} + > + {uniqueCollaboratorsArray.map(([clientId, collaborator]) => + renderCollaborator({ + actionManager, + collaborator, + clientId, + withName: true, + }), + )} + + +
+ )} +
); };