mirror of
https://github.com/simplex-chat/simplex-chat.git
synced 2026-05-25 12:04:22 +00:00
87c688a739
* ios: prepare for i18n * commit localizations * update Russian translations * fix notifications and layouts after localizations * localization docs * update translations Co-authored-by: JRoberts <8711996+jr-simplex@users.noreply.github.com> * fix typo * update translations * fix translations for different link types * update translations Co-authored-by: JRoberts <8711996+jr-simplex@users.noreply.github.com> * update translation Co-authored-by: JRoberts <8711996+jr-simplex@users.noreply.github.com> * update translations * update translations Co-authored-by: JRoberts <8711996+jr-simplex@users.noreply.github.com>
61 lines
1.9 KiB
Swift
61 lines
1.9 KiB
Swift
//
|
|
// ConnectContactView.swift
|
|
// SimpleX
|
|
//
|
|
// Created by Evgeny Poberezkin on 29/01/2022.
|
|
// Copyright © 2022 SimpleX Chat. All rights reserved.
|
|
//
|
|
|
|
import SwiftUI
|
|
import CodeScanner
|
|
|
|
struct ConnectContactView: View {
|
|
var completed: ((Result<Bool, Error>) -> Void)
|
|
|
|
var body: some View {
|
|
VStack {
|
|
Text("Scan QR code")
|
|
.font(.title)
|
|
.padding(.bottom)
|
|
Text("Your chat profile will be sent to your contact")
|
|
.font(.title2)
|
|
.multilineTextAlignment(.center)
|
|
.padding()
|
|
ZStack {
|
|
CodeScannerView(codeTypes: [.qr], completion: processQRCode)
|
|
.aspectRatio(1, contentMode: .fit)
|
|
.border(.gray)
|
|
}
|
|
.padding(12)
|
|
Text("If you cannot meet in person, you can **scan QR code in the video call**, or your contact can share an invitation link.")
|
|
.font(.subheadline)
|
|
.multilineTextAlignment(.center)
|
|
.padding(.horizontal)
|
|
}
|
|
}
|
|
|
|
func processQRCode(_ resp: Result<ScanResult, ScanError>) {
|
|
switch resp {
|
|
case let .success(r):
|
|
Task {
|
|
do {
|
|
let ok = try await apiConnect(connReq: r.string)
|
|
completed(.success(ok))
|
|
} catch {
|
|
logger.error("ConnectContactView.processQRCode apiConnect error: \(error.localizedDescription)")
|
|
completed(.failure(error))
|
|
}
|
|
}
|
|
case let .failure(e):
|
|
logger.error("ConnectContactView.processQRCode QR code error: \(e.localizedDescription)")
|
|
completed(.failure(e))
|
|
}
|
|
}
|
|
}
|
|
|
|
struct ConnectContactView_Previews: PreviewProvider {
|
|
static var previews: some View {
|
|
return ConnectContactView(completed: {_ in })
|
|
}
|
|
}
|