From 641310f4a822f388d988a55be11240b36ba2c345 Mon Sep 17 00:00:00 2001 From: Ilya Laktyushin Date: Wed, 7 May 2025 16:46:41 +0400 Subject: [PATCH] Various fixes --- .../Sources/GiftStoreScreen.swift | 24 ++++++++++++++++--- 1 file changed, 21 insertions(+), 3 deletions(-) diff --git a/submodules/TelegramUI/Components/Gifts/GiftStoreScreen/Sources/GiftStoreScreen.swift b/submodules/TelegramUI/Components/Gifts/GiftStoreScreen/Sources/GiftStoreScreen.swift index c2400ed3d3..470d29256e 100644 --- a/submodules/TelegramUI/Components/Gifts/GiftStoreScreen/Sources/GiftStoreScreen.swift +++ b/submodules/TelegramUI/Components/Gifts/GiftStoreScreen/Sources/GiftStoreScreen.swift @@ -519,7 +519,13 @@ final class GiftStoreScreenComponent: Component { } else { return false } - } + }.sorted(by: { lhs, rhs in + if case let .model(_, lhsFile, _) = lhs, case let .model(_, rhsFile, _) = rhs, let lhsCount = self.state?.starGiftsState?.attributeCount[.model(lhsFile.fileId.id)], let rhsCount = self.state?.starGiftsState?.attributeCount[.model(rhsFile.fileId.id)] { + return lhsCount > rhsCount + } else { + return false + } + }) let currentFilterAttributes = self.state?.starGiftsState?.filterAttributes ?? [] let selectedModelAttributes = currentFilterAttributes.filter { attribute in @@ -614,7 +620,13 @@ final class GiftStoreScreenComponent: Component { } else { return false } - } + }.sorted(by: { lhs, rhs in + if case let .backdrop(_, lhsId, _, _, _, _, _) = lhs, case let .backdrop(_, rhsId, _, _, _, _, _) = rhs, let lhsCount = self.state?.starGiftsState?.attributeCount[.backdrop(lhsId)], let rhsCount = self.state?.starGiftsState?.attributeCount[.backdrop(rhsId)] { + return lhsCount > rhsCount + } else { + return false + } + }) let currentFilterAttributes = self.state?.starGiftsState?.filterAttributes ?? [] let selectedBackdropAttributes = currentFilterAttributes.filter { attribute in @@ -709,7 +721,13 @@ final class GiftStoreScreenComponent: Component { } else { return false } - } + }.sorted(by: { lhs, rhs in + if case let .pattern(_, lhsFile, _) = lhs, case let .pattern(_, rhsFile, _) = rhs, let lhsCount = self.state?.starGiftsState?.attributeCount[.pattern(lhsFile.fileId.id)], let rhsCount = self.state?.starGiftsState?.attributeCount[.pattern(rhsFile.fileId.id)] { + return lhsCount > rhsCount + } else { + return false + } + }) let currentFilterAttributes = self.state?.starGiftsState?.filterAttributes ?? [] let selectedPatternAttributes = currentFilterAttributes.filter { attribute in