//
//  RoleIntroBrowseDialogController.swift

//
//  Created by Leon on 2025/7/25.
//

import UIKit

/// 角色介绍
class RoleIntroBrowseDialogController: BaseMaskPopDialogController {
    var bgImageView: CLImageView!
    var effectView: UIVisualEffectView!
    var contentContainer: UIView!

    //    var contentStackV: UIStackView!
    var scrollContainer: LTScrollContainer!

    var titleLabel: UILabel!
    var descLabel: LineSpaceLabel!
    
    /// Config
    var introduction: String?
    var imageUrl : String?

    override func viewDidLoad() {
        super.viewDidLoad()

        // Do any additional setup after loading the view.
        setupViews()
        setupDats()
        setupEvents()
    }

    private func setupViews() {
        navigationView.isHidden = true
        
        bgMaskView.alpha = 0
        // block.backgroundColor = .black.withAlphaComponent(0.65)
        block.backgroundColor = .clear
        block.snp.remakeConstraints { make in
            make.edges.equalToSuperview()
        }
        
        bgImageView = {
            let v = CLImageView()
            view.insertSubview(v, at: 0)
            v.snp.makeConstraints { make in
                make.edges.equalToSuperview()
            }
            return v
        }()

        closeButton.update(radius: .round, iconSize: .large, iconCode: .delete)
        closeButton.snp.remakeConstraints { make in
            make.centerX.equalToSuperview()
            make.bottom.equalToSuperview().offset(-UIWindow.safeAreaBottom - 24)
        }

        effectView = {
            let v = UIVisualEffectView(effect: UIBlurEffect(style: .dark))
            v.alpha = 0.9
            block.addSubview(v)
            v.snp.makeConstraints { make in
                make.edges.equalToSuperview()
            }
            return v
        }()

        contentContainer = {
            let v = UIView()
            v.backgroundColor = .clear
            block.addSubview(v)
            v.snp.makeConstraints { make in
                make.leading.trailing.equalToSuperview()
                make.top.equalToSuperview().offset(UIWindow.navBarTotalHeight + 48)
                make.bottom.equalToSuperview().offset(-UIWindow.safeAreaBottom - 24 - 48 - 24 - 48)
            }
            return v
        }()

//        contentStackV = {
//            let v = UIStackView()
//            v.axis = .vertical
//            v.spacing = 24
//            v.alignment = .center
//            contentContainer.addSubview(v)
//            v.snp.makeConstraints { make in
//                make.leading.equalToSuperview().offset(48)
//                make.trailing.equalToSuperview().offset(-48)
//                make.center.equalToSuperview()
//                make.top.greaterThanOrEqualToSuperview()
//                make.bottom.lessThanOrEqualToSuperview()
//            }
//            return v
//        }()

        scrollContainer = {
            let v = LTScrollContainer()
            v.stack.spacing = 24
            v.stack.alignment = .center
            v.stackEdge = UIEdgeInsets(top: 0, left: 48, bottom: 0, right: 48)
            contentContainer.addSubview(v)
            v.snp.makeConstraints { make in
                make.leading.equalToSuperview()//.offset(48)
                make.trailing.equalToSuperview()//.offset(-48)
                make.top.bottom.equalToSuperview()
            }
            return v
        }()

        titleLabel = {
            let v = UILabel()
            v.textColor = .text
            v.font = .t.ttm
            scrollContainer.stack.addArrangedSubview(v)
            return v
        }()

        descLabel = {
            let v = LineSpaceLabel()
            v.textColor = .text
            let typo = CLSystemToken.typography(token: .tbl)
            v.config(typo)
            scrollContainer.stack.addArrangedSubview(v)
            return v
        }()

        block.bringSubviewToFront(closeButton)

        titleLabel.text = "Intro"
    }

    private func setupDats() {
        descLabel.text = introduction
        bgImageView.loadImage(imageUrl)
//        #warning("test")
//        testData()
    }

    private func testData() {
        descLabel.text = "She is a new intern teacher and has just graduated. You are the most rebellious student of the whole school workers. In order to prove her ability, she took the initiative to apply to be your class teacher. In the upcoming college entrance\nShe is a new intern teacher and has just graduated. You are the most rebellious student of the whole school workers. In order to prove her ability, she took the initiative to apply to be your class teacher. In the upcoming college entrance\nShe is a new intern teacher and has just graduated. You are the most rebellious student of the whole school workers. In order to prove her ability, she took the initiative to apply to be your class teacher. In the upcoming college entrance\nShe is a new intern teacher and has just graduated. You are the most rebellious student of the whole school workers. In order to prove her ability, she took the initiative to apply to be your class teacher. In the upcoming college entrance."
//        descLabel.text = "She is a new intern teacher and has just graduated. You are the most rebellious student of the whole school workers. In order to prove her ability, she took the initiative to apply to be your class teacher. In the upcoming college entrance"
    }

    private func setupEvents() {
    }
}
