LNHomeTopMenuView.swift 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114
  1. //
  2. // LNHomeTopMenuView.swift
  3. // Lanu
  4. //
  5. // Created by OneeChan on 2025/11/14.
  6. //
  7. import Foundation
  8. import UIKit
  9. import SnapKit
  10. class LNHomeTopMenuView: UIView {
  11. private let createRoom = UIButton()
  12. override init(frame: CGRect) {
  13. super.init(frame: frame)
  14. setupViews()
  15. }
  16. required init?(coder: NSCoder) {
  17. fatalError("init(coder:) has not been implemented")
  18. }
  19. }
  20. extension LNHomeTopMenuView {
  21. private func setupViews() {
  22. let logo = UIImageView()
  23. logo.image = .icHomeLogo
  24. #if DEBUG
  25. logo.isUserInteractionEnabled = true
  26. logo.onTap {
  27. LNBottomSheetMenu.showEnvMenu()
  28. }
  29. #endif
  30. addSubview(logo)
  31. logo.snp.makeConstraints { make in
  32. make.leading.equalToSuperview().offset(16)
  33. make.centerY.equalToSuperview()
  34. }
  35. #if DEBUG
  36. let envLabel = UILabel()
  37. envLabel.font = .heading_h4
  38. envLabel.textColor = .text_4
  39. envLabel.text = "(\(LNAppConfig.shared.curEnv.text))"
  40. addSubview(envLabel)
  41. envLabel.snp.makeConstraints { make in
  42. make.centerY.equalTo(logo)
  43. make.leading.equalTo(logo.snp.trailing).offset(5)
  44. }
  45. #endif
  46. let stackView = UIStackView()
  47. stackView.axis = .horizontal
  48. stackView.spacing = 12
  49. addSubview(stackView)
  50. stackView.snp.makeConstraints { make in
  51. make.top.bottom.equalToSuperview()
  52. make.trailing.equalToSuperview().offset(-16)
  53. }
  54. let search = UIButton()
  55. search.setImage(.icSearch, for: .normal)
  56. search.addAction(UIAction(handler: { [weak self] _ in
  57. guard let self else { return }
  58. pushToUserSearch()
  59. }), for: .touchUpInside)
  60. stackView.addArrangedSubview(search)
  61. // createRoom.layer.cornerRadius = 15
  62. // createRoom.layer.borderWidth = 1
  63. // createRoom.layer.borderColor = .fill
  64. // createRoom.backgroundColor = .fill.withAlphaComponent(0.5)
  65. // createRoom.setImage(.icRoomCreate.withTintColor(.text_6, renderingMode: .alwaysOriginal), for: .normal)
  66. // createRoom.setTitle(.init(key: "A00318"), for: .normal)
  67. // createRoom.setTitleColor(.text_6, for: .normal)
  68. // createRoom.titleLabel?.font = .heading_h5
  69. // createRoom.contentEdgeInsets = .init(top: 0, left: 6, bottom: 0, right: 6)
  70. // createRoom.addAction(UIAction(handler: { _ in
  71. // let panel = LNCreateRoomPanel()
  72. // panel.popup()
  73. // }), for: .touchUpInside)
  74. // stackView.addArrangedSubview(createRoom)
  75. }
  76. }
  77. #if DEBUG
  78. import SwiftUI
  79. struct LNHomeTopMenuViewPreview: UIViewRepresentable {
  80. func makeUIView(context: Context) -> some UIView {
  81. let container = UIView()
  82. container.backgroundColor = .lightGray
  83. let view = LNHomeTopMenuView()
  84. container.addSubview(view)
  85. view.snp.makeConstraints { make in
  86. make.leading.trailing.top.equalToSuperview()
  87. }
  88. return container
  89. }
  90. func updateUIView(_ uiView: UIViewType, context: Context) { }
  91. }
  92. #Preview(body: {
  93. LNHomeTopMenuViewPreview()
  94. })
  95. #endif