From 0390f3a0f1459868b078c236e40a4e4e471e4c76 Mon Sep 17 00:00:00 2001 From: Greg Price Date: Mon, 7 Nov 2022 14:12:30 -0800 Subject: [PATCH] user [nfc]: Have UserList get presence data, not callers --- src/user-picker/New1to1PmScreen.js | 5 ++--- src/user-picker/UserPickerCard.js | 4 +--- src/users/UserList.js | 8 +++++--- 3 files changed, 8 insertions(+), 9 deletions(-) diff --git a/src/user-picker/New1to1PmScreen.js b/src/user-picker/New1to1PmScreen.js index 06f9f68cf6f..7eec8e35852 100644 --- a/src/user-picker/New1to1PmScreen.js +++ b/src/user-picker/New1to1PmScreen.js @@ -9,7 +9,7 @@ import UserList from '../users/UserList'; import type { UserOrBot } from '../types'; import { useSelector, useDispatch } from '../react-redux'; import { pm1to1NarrowFromUser } from '../utils/narrow'; -import { getUsers, getPresence } from '../selectors'; +import { getUsers } from '../selectors'; import { navigateBack, doNarrow } from '../actions'; import { useNavigation } from '../react-navigation'; @@ -21,7 +21,6 @@ type Props = $ReadOnly<{| export default function New1to1PmScreen(props: Props): Node { const dispatch = useDispatch(); const users = useSelector(getUsers); - const presences = useSelector(getPresence); const navigation = useNavigation(); const handleUserNarrow = useCallback( @@ -36,7 +35,7 @@ export default function New1to1PmScreen(props: Props): Node { return ( - + ); } diff --git a/src/user-picker/UserPickerCard.js b/src/user-picker/UserPickerCard.js index 2353aa170c8..02a55c7e0d9 100644 --- a/src/user-picker/UserPickerCard.js +++ b/src/user-picker/UserPickerCard.js @@ -14,7 +14,7 @@ import { IconDone } from '../common/Icons'; import UserList from '../users/UserList'; import AvatarList from './AvatarList'; import AnimatedScaleComponent from '../animation/AnimatedScaleComponent'; -import { getUsers, getPresence } from '../selectors'; +import { getUsers } from '../selectors'; import { getOwnUserId } from '../users/userSelectors'; const styles = createStyleSheet({ @@ -51,7 +51,6 @@ export default function UserPickerCard(props: Props): Node { const { filter, showOwnUser } = props; const users = useSelector(state => getUsersToShow(state, showOwnUser)); - const presences = useSelector(getPresence); const [selectedState, setSelectedState] = useState<$ReadOnlyArray>([]); const listRef = useRef | null>(null); @@ -80,7 +79,6 @@ export default function UserPickerCard(props: Props): Node { { setSelectedState(state => { diff --git a/src/users/UserList.js b/src/users/UserList.js index 5302ae53cb0..c62d4d4e27a 100644 --- a/src/users/UserList.js +++ b/src/users/UserList.js @@ -4,13 +4,14 @@ import type { Node } from 'react'; import { SectionList } from 'react-native'; import { useSelector } from '../react-redux'; -import type { PresenceState, UserOrBot } from '../types'; +import type { UserOrBot } from '../types'; import { createStyleSheet } from '../styles'; import SectionHeader from '../common/SectionHeader'; import SearchEmptyState from '../common/SearchEmptyState'; import UserItem from './UserItem'; import { sortUserList, filterUserList, groupUsersByStatus } from './userHelpers'; import { getMutedUsers } from '../selectors'; +import { getPresence } from '../directSelectors'; const styles = createStyleSheet({ list: { @@ -22,13 +23,14 @@ type Props = $ReadOnly<{| filter: string, users: $ReadOnlyArray, selected?: $ReadOnlyArray, - presences: PresenceState, onPress: (user: UserOrBot) => void, |}>; export default function UserList(props: Props): Node { - const { filter, users, presences, onPress, selected = [] } = props; + const { filter, users, onPress, selected = [] } = props; const mutedUsers = useSelector(getMutedUsers); + const presences = useSelector(getPresence); + const filteredUsers = filterUserList(users, filter).filter(user => !mutedUsers.has(user.user_id)); if (filteredUsers.length === 0) {