Files
Kecalek_python/ios_client 0.8.5/Kecalek/Views/Chat/PinnedMessagesView.swift
2026-03-14 12:43:56 +01:00

63 lines
2.2 KiB
Swift

import SwiftUI
struct PinnedMessagesView: View {
let messages: [Message]
var onScrollTo: ((String) -> Void)?
@Environment(\.dismiss) private var dismiss
var body: some View {
NavigationStack {
Group {
if messages.isEmpty {
Text("No pinned messages")
.foregroundStyle(.secondary)
} else {
List(messages) { message in
Button {
dismiss()
onScrollTo?(message.id)
} label: {
VStack(alignment: .leading, spacing: 4) {
HStack {
Image(systemName: "pin.fill")
.font(.caption)
.foregroundStyle(.orange)
Text(message.senderUsername)
.font(.caption.bold())
Spacer()
Text(formatTime(message.createdAt))
.font(.caption2)
.foregroundStyle(.secondary)
}
Text(message.text ?? "")
.font(.body)
.lineLimit(3)
}
.padding(.vertical, 4)
}
.buttonStyle(.plain)
}
}
}
.navigationTitle("Pinned Messages")
.navigationBarTitleDisplayMode(.inline)
.toolbar {
ToolbarItem(placement: .cancellationAction) {
Button("Done") { dismiss() }
}
}
}
}
private func formatTime(_ date: Date) -> String {
let formatter = DateFormatter()
if Calendar.current.isDateInToday(date) {
formatter.dateFormat = "HH:mm"
} else {
formatter.dateFormat = "MMM d, HH:mm"
}
return formatter.string(from: date)
}
}