( threadInfo: ThreadInfo, communityThreadInfo: ?ThreadInfo, viewerID: ?string, userInfos: UserInfos, )
| 1019 | } |
| 1020 | |
| 1021 | function useThreadFrozenDueToViewerBlock( |
| 1022 | threadInfo: ThreadInfo, |
| 1023 | communityThreadInfo: ?ThreadInfo, |
| 1024 | viewerID: ?string, |
| 1025 | userInfos: UserInfos, |
| 1026 | ): boolean { |
| 1027 | const communityThreadInfoArray = React.useMemo( |
| 1028 | () => (communityThreadInfo ? [communityThreadInfo] : []), |
| 1029 | [communityThreadInfo], |
| 1030 | ); |
| 1031 | const communityRootsMembersToRole = useCommunityRootMembersToRole( |
| 1032 | communityThreadInfoArray, |
| 1033 | ); |
| 1034 | const memberToRole = communityRootsMembersToRole[communityThreadInfo?.id]; |
| 1035 | |
| 1036 | const memberHasAdminRole = threadMembersWithoutAddedAdmin(threadInfo).some( |
| 1037 | m => roleIsAdminRole(memberToRole?.[m.id]), |
| 1038 | ); |
| 1039 | |
| 1040 | return React.useMemo(() => { |
| 1041 | if (memberHasAdminRole) { |
| 1042 | return false; |
| 1043 | } |
| 1044 | |
| 1045 | return threadIsWithBlockedUserOnlyWithoutAdminRoleCheck( |
| 1046 | threadInfo, |
| 1047 | viewerID, |
| 1048 | userInfos, |
| 1049 | true, |
| 1050 | ); |
| 1051 | }, [memberHasAdminRole, threadInfo, userInfos, viewerID]); |
| 1052 | } |
| 1053 | |
| 1054 | const threadTypeDescriptions: { [ThreadType]: string } = { |
| 1055 | [threadTypes.COMMUNITY_OPEN_SUBTHREAD]: |
no test coverage detected