MCPcopy Create free account
hub / github.com/CommE2E/comm / useCommunityRootMembersToRole

Function useCommunityRootMembersToRole

lib/shared/thread-utils.js:150–175  ·  view source on GitHub ↗
(
  threadInfos: $ReadOnlyArray<RawThreadInfo | ThreadInfo>,
)

Source from the content-addressed store, hash-verified

148 },
149};
150function useCommunityRootMembersToRole(
151 threadInfos: $ReadOnlyArray<RawThreadInfo | ThreadInfo>,
152): CommunityRootMembersToRoleType {
153 const communityRootMembersToRole = React.useMemo(() => {
154 const communityThreadInfos = threadInfos.filter(threadInfo =>
155 threadTypeIsCommunityRoot(threadInfo.type),
156 );
157
158 if (communityThreadInfos.length === 0) {
159 return {};
160 }
161
162 const communityRoots = _keyBy('id')(communityThreadInfos);
163 return _mapValues((threadInfo: ThreadInfo) => {
164 const keyedMembers = _keyBy('id')(threadInfo.members);
165 const keyedMembersToRole = _mapValues(
166 (member: MemberInfoWithPermissions | RelativeMemberInfo) => {
167 return member.role ? threadInfo.roles[member.role] : null;
168 },
169 )(keyedMembers);
170 return keyedMembersToRole;
171 })(communityRoots);
172 }, [threadInfos]);
173
174 return communityRootMembersToRole;
175}
176
177function useThreadsWithPermission(
178 threadInfos: $ReadOnlyArray<ThreadInfo>,

Callers 1

Calls 1

Tested by

no test coverage detected