fix(@desktop/chat): Fix channel link in chat
Clicking on a #link will open link channel in community Fix #7636
This commit is contained in:
parent
2710d02fea
commit
95c0721578
|
@ -254,6 +254,9 @@ proc getCategories*(self: Controller, communityId: string): seq[Category] =
|
||||||
proc getChats*(self: Controller, communityId: string, categoryId: string): seq[ChatDto] =
|
proc getChats*(self: Controller, communityId: string, categoryId: string): seq[ChatDto] =
|
||||||
return self.communityService.getChats(communityId, categoryId)
|
return self.communityService.getChats(communityId, categoryId)
|
||||||
|
|
||||||
|
proc getAllChats*(self: Controller, communityId: string): seq[ChatDto] =
|
||||||
|
return self.communityService.getAllChats(communityId)
|
||||||
|
|
||||||
proc getChatDetails*(self: Controller, chatId: string): ChatDto =
|
proc getChatDetails*(self: Controller, chatId: string): ChatDto =
|
||||||
return self.chatService.getChatById(chatId)
|
return self.chatService.getChatById(chatId)
|
||||||
|
|
||||||
|
|
|
@ -316,3 +316,6 @@ method updateLastMessageTimestamp*(self: AccessInterface, chatId: string, lastMe
|
||||||
|
|
||||||
method contactsStatusUpdated*(self: AccessInterface, statusUpdates: seq[StatusUpdateDto]) =
|
method contactsStatusUpdated*(self: AccessInterface, statusUpdates: seq[StatusUpdateDto]) =
|
||||||
raise newException(ValueError, "No implementation available")
|
raise newException(ValueError, "No implementation available")
|
||||||
|
|
||||||
|
method switchToChannel*(self: AccessInterface, channelName: string) =
|
||||||
|
raise newException(ValueError, "No implementation available")
|
||||||
|
|
|
@ -458,6 +458,18 @@ method addNewChat*(
|
||||||
if setChatAsActive:
|
if setChatAsActive:
|
||||||
self.setActiveItemSubItem(categoryItem.id, channelItem.id)
|
self.setActiveItemSubItem(categoryItem.id, channelItem.id)
|
||||||
|
|
||||||
|
method switchToChannel*(self: Module, channelName: string) =
|
||||||
|
if(not self.controller.isCommunity()):
|
||||||
|
return
|
||||||
|
let chats = self.controller.getAllChats(self.controller.getMySectionId())
|
||||||
|
for c in chats:
|
||||||
|
if c.name == channelName:
|
||||||
|
if c.categoryId == "":
|
||||||
|
self.setActiveItemSubItem(c.id, "")
|
||||||
|
else:
|
||||||
|
self.setActiveItemSubItem(c.categoryId, c.id)
|
||||||
|
return
|
||||||
|
|
||||||
method doesCatOrChatExist*(self: Module, id: string): bool =
|
method doesCatOrChatExist*(self: Module, id: string): bool =
|
||||||
return self.view.chatsModel().isItemWithIdAdded(id) or
|
return self.view.chatsModel().isItemWithIdAdded(id) or
|
||||||
not self.view.chatsModel().getSubItemById(id).isNil
|
not self.view.chatsModel().getSubItemById(id).isNil
|
||||||
|
|
|
@ -120,6 +120,9 @@ QtObject:
|
||||||
proc setActiveItem*(self: View, itemId: string, subItemId: string = "") {.slot.} =
|
proc setActiveItem*(self: View, itemId: string, subItemId: string = "") {.slot.} =
|
||||||
self.delegate.setActiveItemSubItem(itemId, subItemId)
|
self.delegate.setActiveItemSubItem(itemId, subItemId)
|
||||||
|
|
||||||
|
proc switchToChannel*(self: View, channelName: string) {.slot.} =
|
||||||
|
self.delegate.switchToChannel(channelName)
|
||||||
|
|
||||||
proc activeItem*(self: View): ActiveItem =
|
proc activeItem*(self: View): ActiveItem =
|
||||||
result = self.activeItem
|
result = self.activeItem
|
||||||
|
|
||||||
|
|
|
@ -493,6 +493,9 @@ Loader {
|
||||||
const pubkey = link.replace("//", "");
|
const pubkey = link.replace("//", "");
|
||||||
Global.openProfilePopup(pubkey)
|
Global.openProfilePopup(pubkey)
|
||||||
return;
|
return;
|
||||||
|
} else if (link.startsWith('#')) {
|
||||||
|
rootStore.chatCommunitySectionModule.switchToChannel(link.replace("#", ""))
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
Global.openLink(link)
|
Global.openLink(link)
|
||||||
|
|
Loading…
Reference in New Issue