From a52d4eb4e8c4a0e3ca71ea359d2c5abb733343a4 Mon Sep 17 00:00:00 2001 From: 23rd <23rd@vivaldi.net> Date: Wed, 17 Jul 2024 18:09:25 +0300 Subject: [PATCH] Fixed peer in list of credits history entries. --- .../info/bot/earn/info_bot_earn_list.cpp | 16 ++++++++-------- .../earn/info_channel_earn_list.cpp | 2 +- .../info_statistics_list_controllers.cpp | 8 +++----- .../info_statistics_list_controllers.h | 2 +- .../SourceFiles/settings/settings_credits.cpp | 8 ++++---- 5 files changed, 17 insertions(+), 19 deletions(-) diff --git a/Telegram/SourceFiles/info/bot/earn/info_bot_earn_list.cpp b/Telegram/SourceFiles/info/bot/earn/info_bot_earn_list.cpp index 169fe8883..cbe32faf5 100644 --- a/Telegram/SourceFiles/info/bot/earn/info_bot_earn_list.cpp +++ b/Telegram/SourceFiles/info/bot/earn/info_bot_earn_list.cpp @@ -261,7 +261,7 @@ void InnerWidget::fillHistory() { const auto sectionIndex = history->lifetime().make_state(0); - const auto fill = [=]( + const auto fill = [=, peer = _peer]( not_null premiumBot, const Data::CreditsStatusSlice &fullSlice, const Data::CreditsStatusSlice &inSlice, @@ -368,7 +368,7 @@ void InnerWidget::fillHistory() { fullSlice, fullWrap->entity(), entryClicked, - premiumBot, + peer, star, true, true); @@ -377,7 +377,7 @@ void InnerWidget::fillHistory() { inSlice, inWrap->entity(), entryClicked, - premiumBot, + peer, star, true, false); @@ -386,7 +386,7 @@ void InnerWidget::fillHistory() { outSlice, outWrap->entity(), std::move(entryClicked), - premiumBot, + peer, star, false, true); @@ -398,11 +398,11 @@ void InnerWidget::fillHistory() { const auto apiLifetime = history->lifetime().make_state(); rpl::single(rpl::empty) | rpl::then( _stateUpdated.events() - ) | rpl::start_with_next([=] { + ) | rpl::start_with_next([=, peer = _peer] { using Api = Api::CreditsHistory; - const auto apiFull = apiLifetime->make_state(_peer, true, true); - const auto apiIn = apiLifetime->make_state(_peer, true, false); - const auto apiOut = apiLifetime->make_state(_peer, false, true); + const auto apiFull = apiLifetime->make_state(peer, true, true); + const auto apiIn = apiLifetime->make_state(peer, true, false); + const auto apiOut = apiLifetime->make_state(peer, false, true); apiFull->request({}, [=](Data::CreditsStatusSlice fullSlice) { apiIn->request({}, [=](Data::CreditsStatusSlice inSlice) { apiOut->request({}, [=](Data::CreditsStatusSlice outSlice) { diff --git a/Telegram/SourceFiles/info/channel_statistics/earn/info_channel_earn_list.cpp b/Telegram/SourceFiles/info/channel_statistics/earn/info_channel_earn_list.cpp index c16acc204..c96dac4ea 100644 --- a/Telegram/SourceFiles/info/channel_statistics/earn/info_channel_earn_list.cpp +++ b/Telegram/SourceFiles/info/channel_statistics/earn/info_channel_earn_list.cpp @@ -1419,7 +1419,7 @@ void InnerWidget::fill() { data.creditsStatusSlice, tabCreditsList->entity(), entryClicked, - premiumBot, + _peer, star, true, true); diff --git a/Telegram/SourceFiles/info/statistics/info_statistics_list_controllers.cpp b/Telegram/SourceFiles/info/statistics/info_statistics_list_controllers.cpp index a176be565..a9649fb4d 100644 --- a/Telegram/SourceFiles/info/statistics/info_statistics_list_controllers.cpp +++ b/Telegram/SourceFiles/info/statistics/info_statistics_list_controllers.cpp @@ -131,7 +131,7 @@ struct BoostsDescriptor final { struct CreditsDescriptor final { Data::CreditsStatusSlice firstSlice; Fn entryClickedCallback; - not_null premiumBot; + not_null peer; not_null creditIcon; bool in = false; bool out = false; @@ -889,7 +889,6 @@ private: void applySlice(const Data::CreditsStatusSlice &slice); const not_null _session; - const not_null _premiumBot; Fn _entryClickedCallback; not_null const _creditIcon; @@ -903,11 +902,10 @@ private: }; CreditsController::CreditsController(CreditsDescriptor d) -: _session(&d.premiumBot->session()) -, _premiumBot(d.premiumBot) +: _session(&d.peer->session()) , _entryClickedCallback(std::move(d.entryClickedCallback)) , _creditIcon(d.creditIcon) -, _api(d.premiumBot->session().user(), d.in, d.out) +, _api(d.peer, d.in, d.out) , _firstSlice(std::move(d.firstSlice)) { PeerListController::setStyleOverrides(&st::boostsListBox); } diff --git a/Telegram/SourceFiles/info/statistics/info_statistics_list_controllers.h b/Telegram/SourceFiles/info/statistics/info_statistics_list_controllers.h index 2d381cb7c..8423de55c 100644 --- a/Telegram/SourceFiles/info/statistics/info_statistics_list_controllers.h +++ b/Telegram/SourceFiles/info/statistics/info_statistics_list_controllers.h @@ -55,7 +55,7 @@ void AddCreditsHistoryList( const Data::CreditsStatusSlice &firstSlice, not_null container, Fn entryClickedCallback, - not_null premiumBot, + not_null peer, not_null creditIcon, bool in, bool out); diff --git a/Telegram/SourceFiles/settings/settings_credits.cpp b/Telegram/SourceFiles/settings/settings_credits.cpp index 0890f2703..5088ce62a 100644 --- a/Telegram/SourceFiles/settings/settings_credits.cpp +++ b/Telegram/SourceFiles/settings/settings_credits.cpp @@ -128,6 +128,7 @@ void Credits::setupHistory(not_null container) { container, object_ptr(container))); const auto content = history->entity(); + const auto self = _controller->session().user(); Ui::AddSkip(content, st::settingsPremiumOptionsPadding.top()); @@ -231,7 +232,7 @@ void Credits::setupHistory(not_null container) { fullSlice, fullWrap->entity(), entryClicked, - premiumBot, + self, &_star, true, true); @@ -240,7 +241,7 @@ void Credits::setupHistory(not_null container) { inSlice, inWrap->entity(), entryClicked, - premiumBot, + self, &_star, true, false); @@ -249,7 +250,7 @@ void Credits::setupHistory(not_null container) { outSlice, outWrap->entity(), std::move(entryClicked), - premiumBot, + self, &_star, false, true); @@ -263,7 +264,6 @@ void Credits::setupHistory(not_null container) { const auto apiLifetime = content->lifetime().make_state(); { using Api = Api::CreditsHistory; - const auto self = _controller->session().user(); const auto apiFull = apiLifetime->make_state(self, true, true); const auto apiIn = apiLifetime->make_state(self, true, false); const auto apiOut = apiLifetime->make_state(self, false, true);