| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970 |
- //
- // LNIMChatImageMessageCell.swift
- // Lanu
- //
- // Created by OneeChan on 2025/12/5.
- //
- import Foundation
- import UIKit
- import SnapKit
- private extension LNIMMessageData {
- var thumbImageUrl: String? {
- imMessage.imageElem?.imageList.first { $0.type == .IMAGE_TYPE_THUMB }?.url
- }
-
- var originImageUrl: String? {
- imMessage.imageElem?.imageList.first { $0.type == .IMAGE_TYPE_ORIGIN }?.url
- }
-
- var largeImageUrl: String? {
- imMessage.imageElem?.imageList.first { $0.type == .IMAGE_TYPE_LARGE }?.url
- }
- }
- class LNIMChatImageMessageCell: LNIMChatBaseMessageCell {
- private let imageIc = UIImageView()
- private let contentLabel = UILabel()
-
- private var curItem: LNIMMessageData?
-
- override func setupViews() {
- super.setupViews()
-
- imageIc.contentMode = .scaleAspectFill
- imageIc.layer.cornerRadius = 12
- imageIc.clipsToBounds = true
- container.addSubview(imageIc)
- imageIc.snp.makeConstraints { make in
- make.edges.equalToSuperview()
- make.width.equalTo(266)
- make.height.equalTo(202)
- }
-
- imageIc.onTap { [weak self] in
- guard let self else { return }
- guard let curItem else { return }
- if curItem.imMessage.isSelf, let url = curItem.content {
- presentImagePreview([url], 0)
- } else if let url = curItem.largeImageUrl {
- presentImagePreview([url], 0)
- }
- }
- }
-
- override func update(_ data: LNIMMessageData, viewModel: LNIMChatViewModel) {
- super.update(data, viewModel: viewModel)
-
- curItem = data
-
- let thumbUrl = data.content ?? ""
- if thumbUrl.hasPrefix("http") {
- imageIc.sd_setImage(with: URL(string: thumbUrl))
- } else {
- imageIc.sd_setImage(with: URL(fileURLWithPath: thumbUrl))
- }
- }
- }
|