feat: open channel in discussion group

This commit is contained in:
AlexeyZavar 2025-03-09 02:59:45 +03:00
parent ccf8d91f01
commit 66d54ccd54
3 changed files with 27 additions and 0 deletions

View file

@ -149,6 +149,27 @@ void AddJumpToBeginningAction(PeerData *peerData,
&st::ayuMenuIconToBeginning); &st::ayuMenuIconToBeginning);
} }
void AddOpenChannelAction(PeerData *peerData,
not_null<Window::SessionController*> sessionController,
const Window::PeerMenuCallback &addCallback) {
if (!peerData || !peerData->isMegagroup()) {
return;
}
const auto chat = peerData->asMegagroup()->linkedChat();
if (!chat) {
return;
}
addCallback(
tr::lng_context_open_channel(tr::now),
[=]
{
sessionController->showPeerHistory(chat, Window::SectionShow::Way::Forward);
},
&st::menuIconChannel);
}
void AddHistoryAction(not_null<Ui::PopupMenu*> menu, HistoryItem *item) { void AddHistoryAction(not_null<Ui::PopupMenu*> menu, HistoryItem *item) {
if (AyuMessages::hasRevisions(item)) { if (AyuMessages::hasRevisions(item)) {
menu->addAction( menu->addAction(

View file

@ -25,6 +25,10 @@ void AddJumpToBeginningAction(PeerData *peerData,
not_null<Window::SessionController*> sessionController, not_null<Window::SessionController*> sessionController,
const Window::PeerMenuCallback &addCallback); const Window::PeerMenuCallback &addCallback);
void AddOpenChannelAction(PeerData *peerData,
not_null<Window::SessionController*> sessionController,
const Window::PeerMenuCallback &addCallback);
void AddHistoryAction(not_null<Ui::PopupMenu*> menu, HistoryItem *item); void AddHistoryAction(not_null<Ui::PopupMenu*> menu, HistoryItem *item);
void AddHideMessageAction(not_null<Ui::PopupMenu*> menu, HistoryItem *item); void AddHideMessageAction(not_null<Ui::PopupMenu*> menu, HistoryItem *item);
void AddUserMessagesAction(not_null<Ui::PopupMenu*> menu, HistoryItem *item); void AddUserMessagesAction(not_null<Ui::PopupMenu*> menu, HistoryItem *item);

View file

@ -1444,6 +1444,7 @@ void Filler::fillHistoryActions() {
addToggleMuteSubmenu(true); addToggleMuteSubmenu(true);
addInfo(); addInfo();
AyuUi::AddJumpToBeginningAction(_peer, _thread, _controller, _addAction); AyuUi::AddJumpToBeginningAction(_peer, _thread, _controller, _addAction);
AyuUi::AddOpenChannelAction(_peer, _controller, _addAction);
addViewAsTopics(); addViewAsTopics();
addManageChat(); addManageChat();
addStoryArchive(); addStoryArchive();
@ -1476,6 +1477,7 @@ void Filler::fillProfileActions() {
addTopicLink(); addTopicLink();
addManageTopic(); addManageTopic();
addToggleTopicClosed(); addToggleTopicClosed();
AyuUi::AddOpenChannelAction(_peer, _controller, _addAction);
addViewDiscussion(); addViewDiscussion();
addExportChat(); addExportChat();
addToggleFolder(); addToggleFolder();