field_ios

In-the-field app for Radroots on iOS
git clone https://radroots.dev/git/field_ios.git
Log | Files | Refs | README | LICENSE

TeraIdentityImportInstruction.swift (1031B)


      1 import SwiftUI
      2 import UIKit
      3 
      4 /// An intrinsically sized, wrapping instruction in the secure import form.
      5 struct TeraIdentityImportInstruction: UIViewRepresentable {
      6   let text: String
      7 
      8   func makeUIView(context _: Context) -> UILabel {
      9     let label = UILabel()
     10     label.font = .preferredFont(forTextStyle: .body)
     11     label.adjustsFontForContentSizeCategory = true
     12     label.textColor = .label
     13     label.numberOfLines = 0
     14     label.lineBreakMode = .byWordWrapping
     15     label.setContentCompressionResistancePriority(.required, for: .vertical)
     16     label.isAccessibilityElement = true
     17     return label
     18   }
     19 
     20   func updateUIView(_ label: UILabel, context _: Context) {
     21     label.text = text
     22   }
     23 
     24   func sizeThatFits(_ proposal: ProposedViewSize, uiView: UILabel, context _: Context) -> CGSize? {
     25     guard let width = proposal.width, width.isFinite, width > 0 else { return nil }
     26     let size = uiView.sizeThatFits(CGSize(width: width, height: .greatestFiniteMagnitude))
     27     return CGSize(width: width, height: ceil(size.height))
     28   }
     29 }