Files
simplex-chat/apps/ios/Shared/Views/ChatList/ContactConnectionView.swift
Evgeny Poberezkin 87d306383c ios: protect screen (#1420)
* ios: protect screen

* AppSheet

* translations

* correction

Co-authored-by: JRoberts <8711996+jr-simplex@users.noreply.github.com>

Co-authored-by: JRoberts <8711996+jr-simplex@users.noreply.github.com>
2022-11-25 14:31:37 +00:00

82 lines
2.8 KiB
Swift

//
// ContactConnectionView.swift
// SimpleX (iOS)
//
// Created by Evgeny on 24/04/2022.
// Copyright © 2022 SimpleX Chat. All rights reserved.
//
import SwiftUI
import SimpleXChat
struct ContactConnectionView: View {
@EnvironmentObject var m: ChatModel
@ObservedObject var chat: Chat
@State private var localAlias = ""
@FocusState private var aliasTextFieldFocused: Bool
@State private var showContactConnectionInfo = false
var body: some View {
if case let .contactConnection(conn) = chat.chatInfo {
contactConnectionView(conn)
}
}
func contactConnectionView(_ contactConnection: PendingContactConnection) -> some View {
HStack(spacing: 8) {
Group {
Image(systemName: contactConnection.initiated ? "link.badge.plus" : "link")
.resizable()
.scaledToFill()
.frame(width: 48, height: 48)
.foregroundColor(Color(uiColor: .secondarySystemBackground))
.onTapGesture { showContactConnectionInfo = true }
}
.frame(width: 63, height: 63)
.padding(.leading, 4)
VStack(alignment: .leading, spacing: 0) {
HStack(alignment: .top) {
Text(contactConnection.chatViewName)
.font(.title3)
.bold()
.allowsTightening(false)
.foregroundColor(.secondary)
.padding(.horizontal, 8)
.padding(.top, 1)
.padding(.bottom, 0.5)
.frame(alignment: .topLeading)
Spacer()
formatTimestampText(contactConnection.updatedAt)
.font(.subheadline)
.padding(.trailing, 8)
.padding(.vertical, 4)
.frame(minWidth: 60, alignment: .trailing)
.foregroundColor(.secondary)
}
.padding(.bottom, 2)
Text(contactConnection.description)
.frame(alignment: .topLeading)
.padding(.horizontal, 8)
.padding(.bottom, 2)
Spacer()
}
.frame(maxHeight: .infinity)
.appSheet(isPresented: $showContactConnectionInfo) {
ContactConnectionInfo(contactConnection: contactConnection)
}
}
}
}
struct ContactConnectionView_Previews: PreviewProvider {
static var previews: some View {
ContactConnectionView(chat: Chat(chatInfo: ChatInfo.sampleData.contactConnection))
.previewLayout(.fixed(width: 360, height: 80))
}
}