Page Menu
Home
Phabricator
Search
Configure Global Search
Log In
Files
F3375328
D10730.id36301.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Flag For Later
Size
21 KB
Referenced Files
None
Subscribers
None
D10730.id36301.diff
View Options
diff --git a/lib/permissions/minimally-encoded-thread-permissions-validators.js b/lib/permissions/minimally-encoded-thread-permissions-validators.js
--- a/lib/permissions/minimally-encoded-thread-permissions-validators.js
+++ b/lib/permissions/minimally-encoded-thread-permissions-validators.js
@@ -10,7 +10,7 @@
import type {
MinimallyEncodedMemberInfo,
RawThreadInfo,
- MinimallyEncodedRelativeMemberInfo,
+ RelativeMemberInfo,
MinimallyEncodedRoleInfo,
MinimallyEncodedThreadCurrentUserInfo,
ThreadInfo,
@@ -47,8 +47,8 @@
permissions: tHexEncodedPermissionsBitmask,
});
-const minimallyEncodedRelativeMemberInfoValidator: TInterface<MinimallyEncodedRelativeMemberInfo> =
- tShape<MinimallyEncodedRelativeMemberInfo>({
+const minimallyEncodedRelativeMemberInfoValidator: TInterface<RelativeMemberInfo> =
+ tShape<RelativeMemberInfo>({
...minimallyEncodedMemberInfoValidator.meta.props,
username: t.maybe(t.String),
isViewer: t.Boolean,
diff --git a/lib/selectors/nav-selectors.js b/lib/selectors/nav-selectors.js
--- a/lib/selectors/nav-selectors.js
+++ b/lib/selectors/nav-selectors.js
@@ -14,7 +14,7 @@
import type { CalendarFilter } from '../types/filter-types.js';
import type {
ThreadInfo,
- MinimallyEncodedRelativeMemberInfo,
+ RelativeMemberInfo,
RawThreadInfo,
} from '../types/minimally-encoded-thread-permissions-types.js';
import type { BaseNavInfo } from '../types/nav-types.js';
@@ -83,15 +83,12 @@
const useENSNamesOptions = { allAtOnce: true };
function useUserSearchIndex(
- userInfos: $ReadOnlyArray<UserInfo | MinimallyEncodedRelativeMemberInfo>,
+ userInfos: $ReadOnlyArray<UserInfo | RelativeMemberInfo>,
): SearchIndex {
const membersWithENSNames = useENSNames(userInfos, useENSNamesOptions);
const memberMap = React.useMemo(() => {
- const result = new Map<
- string,
- UserInfo | MinimallyEncodedRelativeMemberInfo,
- >();
+ const result = new Map<string, UserInfo | RelativeMemberInfo>();
for (const userInfo of membersWithENSNames) {
result.set(userInfo.id, userInfo);
}
diff --git a/lib/selectors/thread-selectors.js b/lib/selectors/thread-selectors.js
--- a/lib/selectors/thread-selectors.js
+++ b/lib/selectors/thread-selectors.js
@@ -40,7 +40,7 @@
import type { EntryInfo } from '../types/entry-types.js';
import type { MessageStore, RawMessageInfo } from '../types/message-types.js';
import type {
- MinimallyEncodedRelativeMemberInfo,
+ RelativeMemberInfo,
ThreadInfo,
RawThreadInfo,
} from '../types/minimally-encoded-thread-permissions-types.js';
@@ -351,7 +351,7 @@
relativeMemberInfoSelectorForMembersOfThread(threadID),
(
threadInfo: ?RawThreadInfo,
- members: $ReadOnlyArray<MinimallyEncodedRelativeMemberInfo>,
+ members: $ReadOnlyArray<RelativeMemberInfo>,
): boolean => {
if (!threadInfo) {
return false;
diff --git a/lib/selectors/user-selectors.js b/lib/selectors/user-selectors.js
--- a/lib/selectors/user-selectors.js
+++ b/lib/selectors/user-selectors.js
@@ -10,7 +10,7 @@
import { getSingleOtherUser } from '../shared/thread-utils.js';
import type { ClientEmojiAvatar } from '../types/avatar-types';
import type {
- MinimallyEncodedRelativeMemberInfo,
+ RelativeMemberInfo,
RawThreadInfo,
} from '../types/minimally-encoded-thread-permissions-types.js';
import type { BaseAppState } from '../types/redux-types.js';
@@ -108,14 +108,12 @@
return relativeMemberInfos;
}
-const emptyArray: $ReadOnlyArray<MinimallyEncodedRelativeMemberInfo> = [];
+const emptyArray: $ReadOnlyArray<RelativeMemberInfo> = [];
// Includes current user at the start
const baseRelativeMemberInfoSelectorForMembersOfThread: (
threadID: ?string,
-) => (
- state: BaseAppState<>,
-) => $ReadOnlyArray<MinimallyEncodedRelativeMemberInfo> = (
+) => (state: BaseAppState<>) => $ReadOnlyArray<RelativeMemberInfo> = (
threadID: ?string,
) => {
if (!threadID) {
@@ -132,9 +130,7 @@
const relativeMemberInfoSelectorForMembersOfThread: (
threadID: ?string,
-) => (
- state: BaseAppState<>,
-) => $ReadOnlyArray<MinimallyEncodedRelativeMemberInfo> = _memoize(
+) => (state: BaseAppState<>) => $ReadOnlyArray<RelativeMemberInfo> = _memoize(
baseRelativeMemberInfoSelectorForMembersOfThread,
);
diff --git a/lib/shared/markdown.js b/lib/shared/markdown.js
--- a/lib/shared/markdown.js
+++ b/lib/shared/markdown.js
@@ -9,7 +9,7 @@
} from './mention-utils.js';
import { useENSNames } from '../hooks/ens-cache.js';
import type {
- MinimallyEncodedRelativeMemberInfo,
+ RelativeMemberInfo,
ResolvedThreadInfo,
} from '../types/minimally-encoded-thread-permissions-types.js';
import type { ChatMentionCandidates } from '../types/thread-types.js';
@@ -201,7 +201,7 @@
const useENSNamesOptions = { allAtOnce: true };
function useMemberMapForUserMentions(
- members: $ReadOnlyArray<MinimallyEncodedRelativeMemberInfo>,
+ members: $ReadOnlyArray<RelativeMemberInfo>,
): $ReadOnlyMap<string, string> {
const membersWithRole = React.useMemo(
() => members.filter(member => member.role),
@@ -209,13 +209,11 @@
);
const resolvedMembers = useENSNames(membersWithRole, useENSNamesOptions);
- const resolvedMembersMap: $ReadOnlyMap<
- string,
- MinimallyEncodedRelativeMemberInfo,
- > = React.useMemo(
- () => new Map(resolvedMembers.map(member => [member.id, member])),
- [resolvedMembers],
- );
+ const resolvedMembersMap: $ReadOnlyMap<string, RelativeMemberInfo> =
+ React.useMemo(
+ () => new Map(resolvedMembers.map(member => [member.id, member])),
+ [resolvedMembers],
+ );
const membersMap = React.useMemo(() => {
const map = new Map<string, string>();
diff --git a/lib/shared/mention-utils.js b/lib/shared/mention-utils.js
--- a/lib/shared/mention-utils.js
+++ b/lib/shared/mention-utils.js
@@ -8,7 +8,7 @@
import { useENSNames } from '../hooks/ens-cache.js';
import { useUserSearchIndex } from '../selectors/nav-selectors.js';
import type {
- MinimallyEncodedRelativeMemberInfo,
+ RelativeMemberInfo,
ResolvedThreadInfo,
ThreadInfo,
} from '../types/minimally-encoded-thread-permissions-types.js';
@@ -28,7 +28,7 @@
type MentionTypeaheadUserSuggestionItem = {
+type: 'user',
- +userInfo: MinimallyEncodedRelativeMemberInfo,
+ +userInfo: RelativeMemberInfo,
};
type MentionTypeaheadChatSuggestionItem = {
@@ -105,7 +105,7 @@
const useENSNamesOptions = { allAtOnce: true };
function useMentionTypeaheadUserSuggestions(
- threadMembers: $ReadOnlyArray<MinimallyEncodedRelativeMemberInfo>,
+ threadMembers: $ReadOnlyArray<RelativeMemberInfo>,
typeaheadMatchedStrings: ?TypeaheadMatchedStrings,
): $ReadOnlyArray<MentionTypeaheadUserSuggestionItem> {
const userSearchIndex = useUserSearchIndex(threadMembers);
@@ -184,7 +184,7 @@
function useUserMentionsCandidates(
threadInfo: ThreadInfo,
parentThreadInfo: ?ThreadInfo,
-): $ReadOnlyArray<MinimallyEncodedRelativeMemberInfo> {
+): $ReadOnlyArray<RelativeMemberInfo> {
return React.useMemo(() => {
if (threadInfo.type !== threadTypes.SIDEBAR) {
return threadInfo.members;
diff --git a/lib/shared/thread-utils.js b/lib/shared/thread-utils.js
--- a/lib/shared/thread-utils.js
+++ b/lib/shared/thread-utils.js
@@ -58,7 +58,7 @@
type ComposableMessageInfo,
} from '../types/message-types.js';
import type {
- MinimallyEncodedRelativeMemberInfo,
+ RelativeMemberInfo,
MinimallyEncodedRoleInfo,
RawThreadInfo,
MinimallyEncodedThreadCurrentUserInfo,
@@ -219,14 +219,14 @@
}
function threadActualMembers(
- memberInfos: $ReadOnlyArray<MemberInfo | MinimallyEncodedRelativeMemberInfo>,
+ memberInfos: $ReadOnlyArray<MemberInfo | RelativeMemberInfo>,
): $ReadOnlyArray<string> {
return memberInfos
.filter(memberInfo => memberInfo.role)
.map(memberInfo => memberInfo.id);
}
-function threadOtherMembers<T: MemberInfo | MinimallyEncodedRelativeMemberInfo>(
+function threadOtherMembers<T: MemberInfo | RelativeMemberInfo>(
memberInfos: $ReadOnlyArray<T>,
viewerID: ?string,
): $ReadOnlyArray<T> {
@@ -459,7 +459,7 @@
// Returns map from lowercase username to AccountUserInfo
function memberLowercaseUsernameMap(
- members: $ReadOnlyArray<MinimallyEncodedRelativeMemberInfo>,
+ members: $ReadOnlyArray<RelativeMemberInfo>,
): Map<string, AccountUserInfo> {
const memberMap = new Map<string, AccountUserInfo>();
for (const member of members) {
@@ -877,7 +877,7 @@
return firstLine(threadInfo.name);
}
- const threadMembers: $ReadOnlyArray<MinimallyEncodedRelativeMemberInfo> =
+ const threadMembers: $ReadOnlyArray<RelativeMemberInfo> =
threadInfo.members.filter(memberInfo => memberInfo.role);
const memberEntities: $ReadOnlyArray<UserEntity> = threadMembers.map(member =>
ET.user({ userInfo: member }),
@@ -1030,10 +1030,7 @@
// Since we don't have access to all of the ancestor ThreadInfos, we approximate
// "parent admin" as anybody with CHANGE_ROLE permissions.
function memberHasAdminPowers(
- memberInfo:
- | MinimallyEncodedRelativeMemberInfo
- | MemberInfo
- | ServerMemberInfo,
+ memberInfo: RelativeMemberInfo | MemberInfo | ServerMemberInfo,
): boolean {
if (memberInfo.minimallyEncoded) {
return hasPermission(memberInfo.permissions, threadPermissions.CHANGE_ROLE);
@@ -1514,7 +1511,7 @@
function removeMemberFromThread(
threadInfo: ThreadInfo,
- memberInfo: MinimallyEncodedRelativeMemberInfo,
+ memberInfo: RelativeMemberInfo,
dispatchActionPromise: DispatchActionPromise,
removeUserFromThreadServerCall: (
input: RemoveUsersFromThreadInput,
@@ -1532,7 +1529,7 @@
}
function getAvailableThreadMemberActions(
- memberInfo: MinimallyEncodedRelativeMemberInfo,
+ memberInfo: RelativeMemberInfo,
threadInfo: ThreadInfo,
canEdit: ?boolean = true,
): $ReadOnlyArray<'change_role' | 'remove_user'> {
diff --git a/lib/types/minimally-encoded-thread-permissions-types.js b/lib/types/minimally-encoded-thread-permissions-types.js
--- a/lib/types/minimally-encoded-thread-permissions-types.js
+++ b/lib/types/minimally-encoded-thread-permissions-types.js
@@ -115,7 +115,7 @@
};
};
-export type MinimallyEncodedRelativeMemberInfo = $ReadOnly<{
+export type RelativeMemberInfo = $ReadOnly<{
...MinimallyEncodedMemberInfo,
+username: ?string,
+isViewer: boolean,
@@ -172,7 +172,7 @@
+parentThreadID: ?string,
+containingThreadID: ?string,
+community: ?string,
- +members: $ReadOnlyArray<MinimallyEncodedRelativeMemberInfo>,
+ +members: $ReadOnlyArray<RelativeMemberInfo>,
+roles: { +[id: string]: MinimallyEncodedRoleInfo },
+currentUser: MinimallyEncodedThreadCurrentUserInfo,
+sourceMessageID?: string,
diff --git a/lib/utils/role-utils.js b/lib/utils/role-utils.js
--- a/lib/utils/role-utils.js
+++ b/lib/utils/role-utils.js
@@ -5,7 +5,7 @@
import { useSelector } from './redux-utils.js';
import { threadInfoSelector } from '../selectors/thread-selectors.js';
import type {
- MinimallyEncodedRelativeMemberInfo,
+ RelativeMemberInfo,
ThreadInfo,
} from '../types/minimally-encoded-thread-permissions-types.js';
import {
@@ -57,7 +57,7 @@
function useRolesFromCommunityThreadInfo(
threadInfo: ThreadInfo,
- memberInfos: $ReadOnlyArray<MinimallyEncodedRelativeMemberInfo>,
+ memberInfos: $ReadOnlyArray<RelativeMemberInfo>,
): $ReadOnlyMap<string, ?RoleInfo> {
// Our in-code system has chat-specific roles, while the
// user-surfaced system has roles only for communities. We retrieve roles
diff --git a/native/chat/chat-input-bar.react.js b/native/chat/chat-input-bar.react.js
--- a/native/chat/chat-input-bar.react.js
+++ b/native/chat/chat-input-bar.react.js
@@ -74,7 +74,7 @@
SendEditMessageResponse,
} from 'lib/types/message-types.js';
import type {
- MinimallyEncodedRelativeMemberInfo,
+ RelativeMemberInfo,
ThreadInfo,
} from 'lib/types/minimally-encoded-thread-permissions-types.js';
import type { Dispatch } from 'lib/types/redux-types.js';
@@ -296,7 +296,7 @@
+dispatchActionPromise: DispatchActionPromise,
+joinThread: (request: ClientThreadJoinRequest) => Promise<ThreadJoinPayload>,
+inputState: ?InputState,
- +userMentionsCandidates: $ReadOnlyArray<MinimallyEncodedRelativeMemberInfo>,
+ +userMentionsCandidates: $ReadOnlyArray<RelativeMemberInfo>,
+chatMentionSearchIndex: SentencePrefixSearchIndex,
+chatMentionCandidates: ChatMentionCandidates,
+parentThreadInfo: ?ThreadInfo,
diff --git a/native/chat/settings/thread-settings-member-tooltip-modal.react.js b/native/chat/settings/thread-settings-member-tooltip-modal.react.js
--- a/native/chat/settings/thread-settings-member-tooltip-modal.react.js
+++ b/native/chat/settings/thread-settings-member-tooltip-modal.react.js
@@ -6,7 +6,7 @@
import { removeMemberFromThread } from 'lib/shared/thread-utils.js';
import { stringForUser } from 'lib/shared/user-utils.js';
import type {
- MinimallyEncodedRelativeMemberInfo,
+ RelativeMemberInfo,
ThreadInfo,
} from 'lib/types/minimally-encoded-thread-permissions-types.js';
import { useDispatchActionPromise } from 'lib/utils/redux-promise-utils.js';
@@ -24,7 +24,7 @@
import Alert from '../../utils/alert.js';
export type ThreadSettingsMemberTooltipModalParams = TooltipParams<{
- +memberInfo: MinimallyEncodedRelativeMemberInfo,
+ +memberInfo: RelativeMemberInfo,
+threadInfo: ThreadInfo,
}>;
diff --git a/native/chat/settings/thread-settings-member.react.js b/native/chat/settings/thread-settings-member.react.js
--- a/native/chat/settings/thread-settings-member.react.js
+++ b/native/chat/settings/thread-settings-member.react.js
@@ -20,7 +20,7 @@
import { stringForUser } from 'lib/shared/user-utils.js';
import type { LoadingStatus } from 'lib/types/loading-types.js';
import type {
- MinimallyEncodedRelativeMemberInfo,
+ RelativeMemberInfo,
ThreadInfo,
} from 'lib/types/minimally-encoded-thread-permissions-types.js';
import { useRolesFromCommunityThreadInfo } from 'lib/utils/role-utils.js';
@@ -89,7 +89,7 @@
};
type BaseProps = {
- +memberInfo: MinimallyEncodedRelativeMemberInfo,
+ +memberInfo: RelativeMemberInfo,
+threadInfo: ThreadInfo,
+canEdit: boolean,
+navigate: ThreadSettingsNavigate,
diff --git a/native/chat/settings/thread-settings.react.js b/native/chat/settings/thread-settings.react.js
--- a/native/chat/settings/thread-settings.react.js
+++ b/native/chat/settings/thread-settings.react.js
@@ -34,7 +34,7 @@
} from 'lib/shared/thread-utils.js';
import threadWatcher from 'lib/shared/thread-watcher.js';
import type {
- MinimallyEncodedRelativeMemberInfo,
+ RelativeMemberInfo,
ResolvedThreadInfo,
ThreadInfo,
} from 'lib/types/minimally-encoded-thread-permissions-types.js';
@@ -203,7 +203,7 @@
| {
+itemType: 'member',
+key: string,
- +memberInfo: MinimallyEncodedRelativeMemberInfo,
+ +memberInfo: RelativeMemberInfo,
+threadInfo: ResolvedThreadInfo,
+canEdit: boolean,
+navigate: ThreadSettingsNavigate,
@@ -1123,7 +1123,7 @@
const threadMembersChangeIsSaving = (
state: AppState,
- threadMembers: $ReadOnlyArray<MinimallyEncodedRelativeMemberInfo>,
+ threadMembers: $ReadOnlyArray<RelativeMemberInfo>,
) => {
for (const threadMember of threadMembers) {
const removeUserLoadingStatus = createLoadingStatusSelector(
diff --git a/native/roles/change-roles-screen.react.js b/native/roles/change-roles-screen.react.js
--- a/native/roles/change-roles-screen.react.js
+++ b/native/roles/change-roles-screen.react.js
@@ -13,7 +13,7 @@
import { roleIsAdminRole } from 'lib/shared/thread-utils.js';
import type { LoadingStatus } from 'lib/types/loading-types.js';
import type {
- MinimallyEncodedRelativeMemberInfo,
+ RelativeMemberInfo,
ThreadInfo,
} from 'lib/types/minimally-encoded-thread-permissions-types.js';
import { values } from 'lib/utils/objects.js';
@@ -28,7 +28,7 @@
export type ChangeRolesScreenParams = {
+threadInfo: ThreadInfo,
- +memberInfo: MinimallyEncodedRelativeMemberInfo,
+ +memberInfo: RelativeMemberInfo,
+role: ?string,
};
diff --git a/web/input/input-state.js b/web/input/input-state.js
--- a/web/input/input-state.js
+++ b/web/input/input-state.js
@@ -10,7 +10,7 @@
} from 'lib/types/media-types.js';
import type { RawTextMessageInfo } from 'lib/types/messages/text.js';
import type {
- MinimallyEncodedRelativeMemberInfo,
+ RelativeMemberInfo,
ThreadInfo,
} from 'lib/types/minimally-encoded-thread-permissions-types.js';
import type { ChatMentionCandidates } from 'lib/types/thread-types.js';
@@ -47,7 +47,7 @@
export type TypeaheadState = {
+canBeVisible: boolean,
+keepUpdatingThreadMembers: boolean,
- +frozenUserMentionsCandidates: $ReadOnlyArray<MinimallyEncodedRelativeMemberInfo>,
+ +frozenUserMentionsCandidates: $ReadOnlyArray<RelativeMemberInfo>,
+frozenChatMentionsCandidates: ChatMentionCandidates,
+moveChoiceUp: ?() => void,
+moveChoiceDown: ?() => void,
diff --git a/web/modals/threads/create/steps/subchannel-members-list.react.js b/web/modals/threads/create/steps/subchannel-members-list.react.js
--- a/web/modals/threads/create/steps/subchannel-members-list.react.js
+++ b/web/modals/threads/create/steps/subchannel-members-list.react.js
@@ -5,7 +5,7 @@
import { useENSNames } from 'lib/hooks/ens-cache.js';
import { stringForUser } from 'lib/shared/user-utils.js';
import type {
- MinimallyEncodedRelativeMemberInfo,
+ RelativeMemberInfo,
ThreadInfo,
} from 'lib/types/minimally-encoded-thread-permissions-types.js';
import type { UserListItem } from 'lib/types/user-types.js';
@@ -42,7 +42,7 @@
);
const filterOutParentMembersWithENSNames = React.useCallback(
- (members: $ReadOnlyArray<MinimallyEncodedRelativeMemberInfo>) =>
+ (members: $ReadOnlyArray<RelativeMemberInfo>) =>
members
.filter(
user =>
@@ -63,7 +63,7 @@
);
const filterOutOtherMembersWithENSNames = React.useCallback(
- (members: $ReadOnlyArray<MinimallyEncodedRelativeMemberInfo>) =>
+ (members: $ReadOnlyArray<RelativeMemberInfo>) =>
members
.filter(
user =>
diff --git a/web/modals/threads/members/change-member-role-modal.react.js b/web/modals/threads/members/change-member-role-modal.react.js
--- a/web/modals/threads/members/change-member-role-modal.react.js
+++ b/web/modals/threads/members/change-member-role-modal.react.js
@@ -12,7 +12,7 @@
import { otherUsersButNoOtherAdmins } from 'lib/selectors/thread-selectors.js';
import { roleIsAdminRole } from 'lib/shared/thread-utils.js';
import type {
- MinimallyEncodedRelativeMemberInfo,
+ RelativeMemberInfo,
ThreadInfo,
} from 'lib/types/minimally-encoded-thread-permissions-types.js';
import { values } from 'lib/utils/objects.js';
@@ -27,7 +27,7 @@
import UnsavedChangesModal from '../../unsaved-changes-modal.react.js';
type ChangeMemberRoleModalProps = {
- +memberInfo: MinimallyEncodedRelativeMemberInfo,
+ +memberInfo: RelativeMemberInfo,
+threadInfo: ThreadInfo,
};
diff --git a/web/modals/threads/members/member.react.js b/web/modals/threads/members/member.react.js
--- a/web/modals/threads/members/member.react.js
+++ b/web/modals/threads/members/member.react.js
@@ -12,7 +12,7 @@
import { stringForUser } from 'lib/shared/user-utils.js';
import type { SetState } from 'lib/types/hook-types.js';
import type {
- MinimallyEncodedRelativeMemberInfo,
+ RelativeMemberInfo,
ThreadInfo,
} from 'lib/types/minimally-encoded-thread-permissions-types.js';
import { useDispatchActionPromise } from 'lib/utils/redux-promise-utils.js';
@@ -30,7 +30,7 @@
const commIconComponent = <CommIcon size={18} icon="user-edit" />;
type Props = {
- +memberInfo: MinimallyEncodedRelativeMemberInfo,
+ +memberInfo: RelativeMemberInfo,
+threadInfo: ThreadInfo,
+setOpenMenu: SetState<?string>,
};
diff --git a/web/modals/threads/members/members-list.react.js b/web/modals/threads/members/members-list.react.js
--- a/web/modals/threads/members/members-list.react.js
+++ b/web/modals/threads/members/members-list.react.js
@@ -8,7 +8,7 @@
import { useENSNames } from 'lib/hooks/ens-cache.js';
import { stringForUser } from 'lib/shared/user-utils.js';
import type {
- MinimallyEncodedRelativeMemberInfo,
+ RelativeMemberInfo,
ThreadInfo,
} from 'lib/types/minimally-encoded-thread-permissions-types.js';
@@ -17,7 +17,7 @@
type Props = {
+threadInfo: ThreadInfo,
- +threadMembers: $ReadOnlyArray<MinimallyEncodedRelativeMemberInfo>,
+ +threadMembers: $ReadOnlyArray<RelativeMemberInfo>,
};
function ThreadMembersList(props: Props): React.Node {
@@ -42,7 +42,7 @@
.map(([letter, users]) => {
const userList = users
.sort((a, b) => stringForUser(a).localeCompare(stringForUser(b)))
- .map((user: MinimallyEncodedRelativeMemberInfo) => (
+ .map((user: RelativeMemberInfo) => (
<ThreadMember
key={user.id}
memberInfo={user}
diff --git a/web/modals/threads/members/members-modal.react.js b/web/modals/threads/members/members-modal.react.js
--- a/web/modals/threads/members/members-modal.react.js
+++ b/web/modals/threads/members/members-modal.react.js
@@ -9,7 +9,7 @@
roleIsAdminRole,
threadHasPermission,
} from 'lib/shared/thread-utils.js';
-import type { MinimallyEncodedRelativeMemberInfo } from 'lib/types/minimally-encoded-thread-permissions-types.js';
+import type { RelativeMemberInfo } from 'lib/types/minimally-encoded-thread-permissions-types.js';
import { threadPermissions } from 'lib/types/thread-permission-types.js';
import { useRolesFromCommunityThreadInfo } from 'lib/utils/role-utils.js';
@@ -55,7 +55,7 @@
const allMembers = React.useMemo(
() =>
threadMembersNotFiltered.filter(
- (member: MinimallyEncodedRelativeMemberInfo) =>
+ (member: RelativeMemberInfo) =>
searchText.length === 0 || userIDs.includes(member.id),
),
[searchText.length, threadMembersNotFiltered, userIDs],
@@ -64,7 +64,7 @@
const roles = useRolesFromCommunityThreadInfo(threadInfo, allMembers);
const adminMembers = React.useMemo(
() =>
- allMembers.filter((member: MinimallyEncodedRelativeMemberInfo) =>
+ allMembers.filter((member: RelativeMemberInfo) =>
roleIsAdminRole(roles.get(member.id)),
),
[allMembers, roles],
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Wed, Nov 27, 7:41 PM (21 h, 8 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
2591481
Default Alt Text
D10730.id36301.diff (21 KB)
Attached To
Mode
D10730: Rename `MinimallyEncodedRelativeMemberInfo` to `RelativeMemberInfo`
Attached
Detach File
Event Timeline
Log In to Comment