From cad25ae64473982d2de5415d5bd58c5b8b6a34ad Mon Sep 17 00:00:00 2001 From: 23rd <23rd@vivaldi.net> Date: Fri, 21 Jun 2024 15:58:42 +0300 Subject: [PATCH] Fixed unique row id in lists of credits history entries. --- .../statistics/info_statistics_list_controllers.cpp | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/Telegram/SourceFiles/info/statistics/info_statistics_list_controllers.cpp b/Telegram/SourceFiles/info/statistics/info_statistics_list_controllers.cpp index c9c103978..eb3292987 100644 --- a/Telegram/SourceFiles/info/statistics/info_statistics_list_controllers.cpp +++ b/Telegram/SourceFiles/info/statistics/info_statistics_list_controllers.cpp @@ -45,6 +45,15 @@ using BoostCallback = Fn; constexpr auto kColorIndexUnclaimed = int(3); constexpr auto kColorIndexPending = int(4); +[[nodiscard]] PeerListRowId UniqueRowIdFromEntry( + const Data::CreditsHistoryEntry &entry) { + return UniqueRowIdFromString(entry.id + + (entry.refunded ? '1' : '0') + + (entry.pending ? '1' : '0') + + (entry.failed ? '1' : '0') + + (entry.in ? '1' : '0')); +} + void AddArrow(not_null parent) { const auto arrow = Ui::CreateChild(parent.get()); arrow->paintRequest( @@ -750,7 +759,7 @@ private: }; CreditsRow::CreditsRow(not_null peer, const Descriptor &descriptor) -: PeerListRow(peer, UniqueRowIdFromString(descriptor.entry.id)) +: PeerListRow(peer, UniqueRowIdFromEntry(descriptor.entry)) , _entry(descriptor.entry) , _creditIcon(descriptor.creditIcon) , _rowHeight(descriptor.rowHeight) { @@ -766,7 +775,7 @@ CreditsRow::CreditsRow(not_null peer, const Descriptor &descriptor) } CreditsRow::CreditsRow(const Descriptor &descriptor) -: PeerListRow(UniqueRowIdFromString(descriptor.entry.id)) +: PeerListRow(UniqueRowIdFromEntry(descriptor.entry)) , _entry(descriptor.entry) , _creditIcon(descriptor.creditIcon) , _rowHeight(descriptor.rowHeight) {