fix(communities): fix duplicated communities and joining through link

Fixes #2665
This commit is contained in:
Jonathan Rainville 2021-06-22 14:11:13 -04:00 committed by Iuri Matias
parent ba2b553d7c
commit dfebe88be7
2 changed files with 14 additions and 1 deletions

View File

@ -141,6 +141,13 @@ QtObject:
if community.id == communityId:
return community.joined and community.isMember
return false
proc userCanJoin*(self: CommunitiesView, communityId: string): bool {.slot.} =
let communities = self.getCommunitiesIfNotFetched()
for community in communities.communities:
if community.id == communityId:
return community.canJoin
return false
proc activeCommunityChanged*(self: CommunitiesView) {.signal.}
@ -162,6 +169,8 @@ QtObject:
proc joinCommunity*(self: CommunitiesView, communityId: string, setActive: bool = true): string {.slot.} =
result = ""
try:
if (not self.userCanJoin(communityId) or self.isUserMemberOfCommunity(communityId)):
return
self.status.chat.joinCommunity(communityId)
self.joinedCommunityList.addCommunityItemToList(self.communityList.getCommunityById(communityId))
if (setActive):

View File

@ -411,7 +411,11 @@ QtObject {
chatsModel.communities.setActiveCommunity(communityId)
return
}
chatsModel.communities.joinCommunity(communityId, true)
const userCanJoin = chatsModel.communities.userCanJoin(communityId)
// TODO find what to do when you can't join
if (userCanJoin) {
chatsModel.communities.joinCommunity(communityId, true)
}
}
return result
}