telegram ui style
iOS CI / Build and Test SwiftUI App (push) Canceled after 0s
Build Unsigned iOS and macOS Apps / Build Unsigned iOS IPA (push) Canceled after 0s
Build Unsigned iOS and macOS Apps / Build macOS ZIP (push) Canceled after 0s

This commit is contained in:
wt committed 2026-08-31 09:38:09 +07:00
1 parent 7db327c588
commit f7e22364fd
9 files changed
+663 -476

No files matched your search

@@ -2,53 +2,60 @@ import SwiftUI
struct ConnectionBanner: View {
@ObservedObject var model: AppModel
var text: String
var body: some View {
switch model.connectionStatus {
case .connected:
if model.isArchiveSyncing || !model.isOMEMOReady {
banner(
icon: model.isArchiveSyncing ? "arrow.triangle.2.circlepath" : "lock.rotation",
text: model.isArchiveSyncing ? "Синхронизация истории…" : "Публикация ключей OMEMO…",
color: .blue,
// text: model.isArchiveSyncing ? "Синхронизация истории…" : "Публикация ключей OMEMO…",
text: "Обновление",
color: .clear,
progress: true
)
} else {
Text(text)
.font(.headline)
}
case .connecting:
banner(icon: "antenna.radiowaves.left.and.right", text: "Подключение…", color: .orange, progress: true)
case .disconnected(let reason):
HStack(spacing: 8) {
Image(systemName: "wifi.exclamationmark")
Text(reason ?? "Нет соединения")
.lineLimit(1)
Spacer()
Button("Повторить") { Task { await model.reconnect() } }
.buttonStyle(.borderless)
.fontWeight(.semibold)
}
.font(.caption)
.foregroundStyle(.white)
.padding(.horizontal, 12)
.padding(.vertical, 8)
.background(Color.red.opacity(0.88))
// banner(icon: "antenna.radiowaves.left.and.right", text: "Подключение…", color: .clear, progress: true)
banner(text: "Подключение", color: .clear, progress: true)
case .disconnected:
banner(text: "Ожидание сети", color: .clear, progress: true)
// HStack(spacing: 8) {
// Image(systemName: "wifi.exclamationmark")
// Text(reason ?? "Нет соединения")
// .lineLimit(1)
// Spacer()
// Button { Task { await model.reconnect() } } label: {
// Label("Обновить", systemImage: "arrow.clockwise")
// }
// .buttonStyle(.borderless)
// .fontWeight(.semibold)
// }
// .font(.caption)
// .foregroundStyle(.white)
// .padding(.horizontal, 12)
// .padding(.vertical, 8)
//// .background(Color.red.opacity(0.88))
// .background(Color.clear)
}
}
private func banner(icon: String, text: String, color: Color, progress: Bool) -> some View {
private func banner(text: String, color: Color, progress: Bool) -> some View {
HStack(spacing: 8) {
if progress {
ProgressView().controlSize(.mini).tint(.white)
} else {
Image(systemName: icon)
}
Text(text)
Spacer()
// Spacer()
}
.font(.caption)
.foregroundStyle(.white)
.padding(.horizontal, 12)
.padding(.vertical, 8)
.background(color.opacity(0.88))
// .padding(.horizontal, 12)
// .padding(.vertical, 8)
// .background(color.opacity(0.88))
}
}