Skip to content

Commit 738dce8

Browse files
committed
autocomplete types: Remove AutocompleteOption type; simply use UserOrBot
This type saved us the trouble of faking every last boring detail of a whole UserOrBot object, in the world where we used fake user-like objects for wildcard mentions. We stopped using those in the previous commit, so we don't need this type anymore, and we can just say we're passing around whole UserOrBot objects because that's what we're doing.
1 parent 3c41fde commit 738dce8

File tree

2 files changed

+13
-22
lines changed

2 files changed

+13
-22
lines changed

src/autocomplete/PeopleAutocomplete.js

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,10 @@ import React, { useCallback, useContext } from 'react';
44
import type { Node } from 'react';
55
import { SectionList } from 'react-native';
66

7-
import type { UserGroup, Narrow } from '../types';
7+
import type { UserOrBot, UserGroup, Narrow } from '../types';
88
import { useSelector } from '../react-redux';
99
import { getMutedUsers, getSortedUsers, getUserGroups } from '../selectors';
1010
import {
11-
type AutocompleteOption,
1211
getAutocompleteSuggestion,
1312
getAutocompleteUserGroupSuggestions,
1413
} from '../users/userHelpers';
@@ -53,7 +52,7 @@ export default function PeopleAutocomplete(props: Props): Node {
5352
);
5453

5554
const handleUserItemAutocomplete = useCallback(
56-
(user: AutocompleteOption): void => {
55+
(user: UserOrBot): void => {
5756
// If another user with the same full name is found, we send the
5857
// user ID as well, to ensure the mentioned user is uniquely identified.
5958
if (users.find(x => x.full_name === user.full_name && x.user_id !== user.user_id)) {
@@ -113,7 +112,7 @@ export default function PeopleAutocomplete(props: Props): Node {
113112
size="medium"
114113
/>
115114
),
116-
}: Section<AutocompleteOption>),
115+
}: Section<UserOrBot>),
117116
];
118117

119118
return (

src/users/userHelpers.js

Lines changed: 10 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -58,13 +58,6 @@ export const sortUserList = (
5858
|| x1.full_name.toLowerCase().localeCompare(x2.full_name.toLowerCase()),
5959
);
6060

61-
export type AutocompleteOption = $ReadOnly<{
62-
user_id: UserId,
63-
email: string,
64-
full_name: string,
65-
...
66-
}>;
67-
6861
export const filterUserList = (
6962
users: $ReadOnlyArray<UserOrBot>,
7063
filter: string,
@@ -77,10 +70,10 @@ export const filterUserList = (
7770
);
7871

7972
export const filterUserStartWith = (
80-
users: $ReadOnlyArray<AutocompleteOption>,
73+
users: $ReadOnlyArray<UserOrBot>,
8174
filter: string,
8275
ownUserId: UserId,
83-
): $ReadOnlyArray<AutocompleteOption> => {
76+
): $ReadOnlyArray<UserOrBot> => {
8477
const loweredFilter = filter.toLowerCase();
8578
const isAscii = /^[a-z]+$/.test(loweredFilter);
8679
return users.filter(user => {
@@ -90,10 +83,10 @@ export const filterUserStartWith = (
9083
};
9184

9285
export const filterUserThatContains = (
93-
users: $ReadOnlyArray<AutocompleteOption>,
86+
users: $ReadOnlyArray<UserOrBot>,
9487
filter: string,
9588
ownUserId: UserId,
96-
): $ReadOnlyArray<AutocompleteOption> => {
89+
): $ReadOnlyArray<UserOrBot> => {
9790
const loweredFilter = filter.toLowerCase();
9891
const isAscii = /^[a-z]+$/.test(loweredFilter);
9992
return users.filter(user => {
@@ -103,24 +96,23 @@ export const filterUserThatContains = (
10396
};
10497

10598
export const filterUserMatchesEmail = (
106-
users: $ReadOnlyArray<AutocompleteOption>,
99+
users: $ReadOnlyArray<UserOrBot>,
107100
filter: string,
108101
ownUserId: UserId,
109-
): $ReadOnlyArray<AutocompleteOption> =>
102+
): $ReadOnlyArray<UserOrBot> =>
110103
users.filter(
111104
user => user.user_id !== ownUserId && user.email.toLowerCase().includes(filter.toLowerCase()),
112105
);
113106

114-
export const getUniqueUsers = (
115-
users: $ReadOnlyArray<AutocompleteOption>,
116-
): $ReadOnlyArray<AutocompleteOption> => uniqby(users, 'email');
107+
export const getUniqueUsers = (users: $ReadOnlyArray<UserOrBot>): $ReadOnlyArray<UserOrBot> =>
108+
uniqby(users, 'email');
117109

118110
export const getAutocompleteSuggestion = (
119-
users: $ReadOnlyArray<AutocompleteOption>,
111+
users: $ReadOnlyArray<UserOrBot>,
120112
filter: string,
121113
ownUserId: UserId,
122114
mutedUsers: MutedUsersState,
123-
): $ReadOnlyArray<AutocompleteOption> => {
115+
): $ReadOnlyArray<UserOrBot> => {
124116
if (users.length === 0) {
125117
return users;
126118
}

0 commit comments

Comments
 (0)