//
//  TextView.swift
//  SodaLive
//
//  Created by klaus on 2024/01/18.
//

import SwiftUI
import UIKit

struct DetectableTextView: UIViewRepresentable {
    var text: String
    var textSize: CGFloat = 11.3
    var font: String = Font.light.rawValue
    
    func makeUIView(context: Context) -> UITextView {
        let textView = UITextView()
        _ = textView.layoutManager
        var attributes = [NSAttributedString.Key: Any]()
        let paragraphStyle: NSMutableParagraphStyle = NSMutableParagraphStyle()
        paragraphStyle.lineSpacing = 8
        attributes[NSAttributedString.Key.paragraphStyle] = paragraphStyle
        textView.typingAttributes = attributes
        
        textView.isEditable = false // Make it readonly
        textView.backgroundColor = .clear
        textView.isScrollEnabled = true
        textView.dataDetectorTypes = .link
        textView.font = UIFont(name: font, size: textSize)
        textView.textColor = .white
        textView.textContainer.lineFragmentPadding = 0
        textView.textContainerInset = .zero
        
        return textView
    }
    
    func updateUIView(_ uiView: UITextView, context: Context) {
        uiView.text = text
    }
}