diff --git a/web/settings/relationship/add-users-list.css b/web/settings/relationship/add-users-list.css --- a/web/settings/relationship/add-users-list.css +++ b/web/settings/relationship/add-users-list.css @@ -76,3 +76,9 @@ .selectionText { color: var(--text-background-secondary-default); } + +.vipUsersContainer { + border-bottom: 1px solid var(--separator-background-primary-default); + padding-bottom: 8px; + margin-bottom: 8px; +} diff --git a/web/settings/relationship/add-users-list.react.js b/web/settings/relationship/add-users-list.react.js --- a/web/settings/relationship/add-users-list.react.js +++ b/web/settings/relationship/add-users-list.react.js @@ -104,6 +104,14 @@ [excludedStatuses, mergedUserInfos, viewerID, vipPendingUsers], ); + const sortedVIPUsers = React.useMemo( + () => + Array.from(vipPendingUsers.values()).sort((userInfo1, userInfo2) => + userInfo1.username.localeCompare(userInfo2.username), + ), + [vipPendingUsers], + ); + const toggleUser = React.useCallback( (userID: string) => { setPendingUsersToAdd(pendingUsers => { @@ -140,6 +148,31 @@ [sortedUsersWithENSNames, toggleUser, pendingUsersToAdd], ); + const sortedVIPUsersWithENSNames = useENSNames(sortedVIPUsers); + + const vipUserRows = React.useMemo(() => { + if (searchText.length > 0 || vipPendingUsers.size === 0) { + return null; + } + + const sortedVIPUserRows = sortedVIPUsersWithENSNames.map(userInfo => ( + + )); + + return
{sortedVIPUserRows}
; + }, [ + searchText.length, + vipPendingUsers.size, + sortedVIPUsersWithENSNames, + toggleUser, + pendingUsersToAdd, + ]); + const onClickClearAll = React.useCallback(() => { setPendingUsersToAdd(new Map()); }, [setPendingUsersToAdd]); @@ -197,6 +230,7 @@ return (
{listHeader} + {vipUserRows}
{userRows}
{errors}