Page MenuHomePhabricator

D3743.diff
No OneTemporary

D3743.diff

diff --git a/web/modals/threads/members/add-members-modal.react.js b/web/modals/threads/members/add-members-modal.react.js
--- a/web/modals/threads/members/add-members-modal.react.js
+++ b/web/modals/threads/members/add-members-modal.react.js
@@ -2,7 +2,16 @@
import * as React from 'react';
+import { threadInfoSelector } from 'lib/selectors/thread-selectors';
+import {
+ userSearchIndexForPotentialMembers,
+ userInfoSelectorForPotentialMembers,
+} from 'lib/selectors/user-selectors';
+import { getPotentialMemberItems } from 'lib/shared/search-utils';
+import { threadActualMembers } from 'lib/shared/thread-utils';
+
import Button from '../../../components/button.react';
+import { useSelector } from '../../../redux/redux-utils';
import SearchModal from '../../search-modal.react';
import AddMembersList from './add-members-list.react';
import css from './members-modal.css';
@@ -14,13 +23,48 @@
};
function AddMembersModalContent(props: ContentProps): React.Node {
- const { onClose } = props;
+ const { searchText, threadID, onClose } = props;
const [pendingUsersToAdd, setPendingUsersToAdd] = React.useState<
$ReadOnlySet<string>,
>(new Set());
- const userSearchResults = [];
+ const threadInfo = useSelector(state => threadInfoSelector(state)[threadID]);
+ const { parentThreadID, community } = threadInfo;
+ const parentThreadInfo = useSelector(state =>
+ parentThreadID ? threadInfoSelector(state)[parentThreadID] : null,
+ );
+ const communityThreadInfo = useSelector(state =>
+ community ? threadInfoSelector(state)[community] : null,
+ );
+ const otherUserInfos = useSelector(userInfoSelectorForPotentialMembers);
+ const userSearchIndex = useSelector(userSearchIndexForPotentialMembers);
+ const excludeUserIDs = React.useMemo(
+ () => threadActualMembers(threadInfo.members),
+ [threadInfo.members],
+ );
+
+ const userSearchResults = React.useMemo(
+ () =>
+ getPotentialMemberItems(
+ searchText,
+ otherUserInfos,
+ userSearchIndex,
+ excludeUserIDs,
+ parentThreadInfo,
+ communityThreadInfo,
+ threadInfo.type,
+ ),
+ [
+ communityThreadInfo,
+ excludeUserIDs,
+ otherUserInfos,
+ parentThreadInfo,
+ searchText,
+ threadInfo.type,
+ userSearchIndex,
+ ],
+ );
const onSwitchUser = React.useCallback(
userID =>

File Metadata

Mime Type
text/plain
Expires
Fri, Nov 8, 10:40 PM (21 h, 34 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
2446583
Default Alt Text
D3743.diff (2 KB)

Event Timeline