Пустой чат: glass-подложка и composer на iOS < 26, empty state анимируется с клавиатурой через UIKit

This commit is contained in:
2026-03-30 21:08:31 +05:00
parent dcefce7cd5
commit f3d5897b2b
8 changed files with 184 additions and 7 deletions

View File

@@ -74,6 +74,18 @@ final class ReplyPreviewTextTests: XCTestCase {
private static func isGarbageText(_ text: String) -> Bool {
let trimmed = text.trimmingCharacters(in: .whitespacesAndNewlines)
if trimmed.isEmpty { return true }
// Detect encrypted payload: ivBase64:ctBase64 format
let parts = trimmed.components(separatedBy: ":")
if parts.count == 2 {
let base64Chars = CharacterSet.alphanumerics.union(CharacterSet(charactersIn: "+/="))
let bothBase64 = parts.allSatisfy { part in
part.count >= 16 && part.unicodeScalars.allSatisfy { base64Chars.contains($0) }
}
if bothBase64 { return true }
}
if trimmed.hasPrefix("CHNK:") { return true }
let validCharacters = trimmed.unicodeScalars.filter { scalar in
scalar.value != 0xFFFD &&
scalar.value > 0x1F &&