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

Function CommunityDrawerContent

native/navigation/community-drawer-content.react.js:56–267  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

54});
55
56function CommunityDrawerContent(): React.Node {
57 const communities = useSelector(communityThreadSelector);
58 const resolvedCommunities = useResolvedThreadInfos(communities);
59 const communitiesSuffixed = useAppendCommunitySuffix(resolvedCommunities);
60 const styles = useStyles(unboundStyles);
61
62 const callFetchPrimaryLinks = useFetchPrimaryInviteLinks();
63
64 const dispatchActionPromise = useDispatchActionPromise();
65 const drawerStatus = useDrawerStatus();
66 const getAllCommunityInfosWithNames = useLegacyAshoatKeyserverCall(
67 fetchNativeDrawerAndDirectoryInfos,
68 );
69 const getAllCommunityInfosWithNamesPromiseRef =
70 React.useRef<?Promise<ClientFetchNativeDrawerAndDirectoryInfosResponse>>(
71 null,
72 );
73 const [fetchedCommunitiesWithNames, setFetchedCommunitiesWithNames] =
74 React.useState<?$ReadOnlyArray<ClientCommunityInfoWithCommunityName>>(null);
75 React.useEffect(() => {
76 if (drawerStatus !== 'open') {
77 return;
78 }
79 void dispatchActionPromise(
80 fetchPrimaryInviteLinkActionTypes,
81 callFetchPrimaryLinks(),
82 );
83 const getAllCommunityInfosWithNamesPromise =
84 getAllCommunityInfosWithNames();
85 getAllCommunityInfosWithNamesPromiseRef.current =
86 getAllCommunityInfosWithNamesPromise;
87 void dispatchActionPromise(
88 fetchNativeDrawerAndDirectoryInfosActionTypes,
89 getAllCommunityInfosWithNamesPromise,
90 );
91 void (async () => {
92 const response = await getAllCommunityInfosWithNamesPromise;
93 setFetchedCommunitiesWithNames(
94 response.allCommunityInfosWithNames.filter(
95 community => !viewerIsMember(community.threadInfo),
96 ),
97 );
98 })();
99 }, [
100 callFetchPrimaryLinks,
101 dispatchActionPromise,
102 drawerStatus,
103 getAllCommunityInfosWithNames,
104 ]);
105
106 const [expanded, setExpanded] = React.useState<Set<string>>(() => {
107 if (communitiesSuffixed.length === 1) {
108 return new Set([communitiesSuffixed[0].id]);
109 }
110 return new Set();
111 });
112
113 const setOpenCommunityOrClose = React.useCallback(

Callers

nothing calls this directly

Calls 15

useSelectorFunction · 0.90
useResolvedThreadInfosFunction · 0.90
useAppendCommunitySuffixFunction · 0.90
useStylesFunction · 0.90
useDispatchActionPromiseFunction · 0.90
viewerIsMemberFunction · 0.90
useChildThreadInfosMapFunction · 0.90
useNavigateToThreadFunction · 0.90

Tested by

no test coverage detected