frontend client for gemstone. decentralised workplace app

refactor: separate into memberships

serenity bd17b5a2 6ce9d987

Changed files
+19 -3
src
providers
+19 -3
src/providers/authed/HandshakesProvider.tsx
···
channelsMap.set(key, existingGroup);
});
+
const membershipsMap = new Map<
+
AtUri,
+
SystemsGmstnDevelopmentChannelMembership
+
>();
+
channels.forEach((channelData) => {
+
const membership = memberships.find(
+
(membershipData) =>
+
membershipData.channelAtUri.rKey ===
+
channelData.channelAtUri.rKey,
+
);
+
if (!membership) return;
+
membershipsMap.set(channelData.channelAtUri, membership.membership);
+
});
+
// TODO: move this to own query hook
const handshakeQueries = useQueries({
queries: channelsMap
···
queryFn: () =>
handshakesQueryFn({
channel: channelObjs[0].channel,
-
memberships: memberships.map(
-
({ membership }) => membership,
-
),
+
memberships: channelObjs
+
.map((channelObj) =>
+
membershipsMap.get(channelObj.channelAtUri),
+
)
+
.filter((val) => val !== undefined),
oauth,
}),
staleTime: Infinity,