Changeset View
Changeset View
Standalone View
Standalone View
web/modals/threads/members/add-members-list-content.react.js
Show All 14 Lines | type Props = { | ||||
+hasParentThread: boolean, | +hasParentThread: boolean, | ||||
}; | }; | ||||
function AddMembersListContent(props: Props): React.Node { | function AddMembersListContent(props: Props): React.Node { | ||||
const { userListItems, pendingUsersToAdd, switchUser, hasParentThread } = | const { userListItems, pendingUsersToAdd, switchUser, hasParentThread } = | ||||
props; | props; | ||||
const usersAvailableToAdd = React.useMemo( | const usersAvailableToAdd = React.useMemo( | ||||
() => userListItems.filter(user => !user.alertText), | () => userListItems.filter(user => !user.alert), | ||||
[userListItems], | [userListItems], | ||||
); | ); | ||||
const groupedAvailableUsersList = React.useMemo( | const groupedAvailableUsersList = React.useMemo( | ||||
() => _groupBy(userInfo => userInfo.notice)(usersAvailableToAdd), | () => _groupBy(userInfo => userInfo.notice)(usersAvailableToAdd), | ||||
[usersAvailableToAdd], | [usersAvailableToAdd], | ||||
); | ); | ||||
Show All 13 Lines | () => | ||||
.map(([header, users]) => [ | .map(([header, users]) => [ | ||||
header.charAt(0).toUpperCase() + header.substring(1), | header.charAt(0).toUpperCase() + header.substring(1), | ||||
users, | users, | ||||
]), | ]), | ||||
[groupedAvailableUsersList], | [groupedAvailableUsersList], | ||||
); | ); | ||||
const usersUnavailableToAdd = React.useMemo(() => { | const usersUnavailableToAdd = React.useMemo(() => { | ||||
const usersUnavailable = userListItems.filter(user => user.alertText); | const usersUnavailable = userListItems.filter(user => user.alert); | ||||
if (!usersUnavailable.length) { | if (!usersUnavailable.length) { | ||||
return null; | return null; | ||||
} | } | ||||
return ['Unavailable users', usersUnavailable]; | return ['Unavailable users', usersUnavailable]; | ||||
}, [userListItems]); | }, [userListItems]); | ||||
const sortedGroupedUsersList = React.useMemo( | const sortedGroupedUsersList = React.useMemo( | ||||
() => | () => | ||||
Show All 20 Lines |