Page MenuHomePhorge

D10731.1765340152.diff
No OneTemporary

Size
3 KB
Referenced Files
None
Subscribers
None

D10731.1765340152.diff

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,10 +58,10 @@
type ComposableMessageInfo,
} from '../types/message-types.js';
import type {
- RelativeMemberInfo,
MinimallyEncodedRoleInfo,
RawThreadInfo,
MinimallyEncodedThreadCurrentUserInfo,
+ RelativeMemberInfo,
ThreadInfo,
} from '../types/minimally-encoded-thread-permissions-types.js';
import {
@@ -90,9 +90,9 @@
} from '../types/thread-types-enum.js';
import type {
LegacyRawThreadInfo,
+ LegacyRoleInfo,
MemberInfo,
ServerThreadInfo,
- RoleInfo,
ServerMemberInfo,
ClientNewThreadRequest,
NewThreadResult,
@@ -1038,7 +1038,9 @@
return !!memberInfo.permissions[threadPermissions.CHANGE_ROLE]?.value;
}
-function roleIsAdminRole(roleInfo: ?RoleInfo): boolean {
+function roleIsAdminRole(
+ roleInfo: ?LegacyRoleInfo | ?MinimallyEncodedRoleInfo,
+): boolean {
return !!(roleInfo && !roleInfo.isDefault && roleInfo.name === 'Admins');
}
diff --git a/lib/types/thread-types.js b/lib/types/thread-types.js
--- a/lib/types/thread-types.js
+++ b/lib/types/thread-types.js
@@ -18,7 +18,6 @@
MinimallyEncodedMemberInfo,
RawThreadInfo,
ResolvedThreadInfo,
- MinimallyEncodedRoleInfo,
ThreadInfo,
} from './minimally-encoded-thread-permissions-types.js';
import {
@@ -68,8 +67,6 @@
isDefault: t.Boolean,
});
-export type RoleInfo = LegacyRoleInfo | MinimallyEncodedRoleInfo;
-
export type ThreadCurrentUserInfo = {
+role: ?string,
+permissions: ThreadPermissionsInfo,
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,6 +5,7 @@
import { useSelector } from './redux-utils.js';
import { threadInfoSelector } from '../selectors/thread-selectors.js';
import type {
+ MinimallyEncodedRoleInfo,
RelativeMemberInfo,
ThreadInfo,
} from '../types/minimally-encoded-thread-permissions-types.js';
@@ -13,7 +14,7 @@
type ThreadRolePermissionsBlob,
type UserSurfacedPermission,
} from '../types/thread-permission-types.js';
-import type { RoleInfo } from '../types/thread-types';
+import type { LegacyRoleInfo } from '../types/thread-types';
import { threadTypes } from '../types/thread-types-enum.js';
function constructRoleDeletionMessagePrompt(
@@ -58,7 +59,7 @@
function useRolesFromCommunityThreadInfo(
threadInfo: ThreadInfo,
memberInfos: $ReadOnlyArray<RelativeMemberInfo>,
-): $ReadOnlyMap<string, ?RoleInfo> {
+): $ReadOnlyMap<string, ?LegacyRoleInfo | ?MinimallyEncodedRoleInfo> {
// Our in-code system has chat-specific roles, while the
// user-surfaced system has roles only for communities. We retrieve roles
// from the top-level community thread for accuracy, with a rare fallback
@@ -73,7 +74,10 @@
community ? threadInfoSelector(state)[community] : null,
);
const topMostThreadInfo = communityThreadInfo || threadInfo;
- const roleMap = new Map<string, ?RoleInfo>();
+ const roleMap = new Map<
+ string,
+ ?LegacyRoleInfo | ?MinimallyEncodedRoleInfo,
+ >();
if (topMostThreadInfo.type === threadTypes.GENESIS) {
memberInfos.forEach(memberInfo =>

File Metadata

Mime Type
text/plain
Expires
Wed, Dec 10, 4:15 AM (13 h, 12 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
5860775
Default Alt Text
D10731.1765340152.diff (3 KB)

Event Timeline