// Copyright © 2023 Rangeproof Pty Ltd. All rights reserved. import UIKit import SignalUtilitiesKit import SessionUtilitiesKit import SessionMessagingKit import SessionUIKit final class UnreadMarkerCell: MessageCell { public static let height: CGFloat = 32 // MARK: - UI private let leftLine: UIView = { let result: UIView = UIView() result.themeBackgroundColor = .unreadMarker result.set(.height, to: 1) // Intentionally 1 instead of 'separatorThickness' return result }() private lazy var titleLabel: UILabel = { let result = UILabel() result.font = .boldSystemFont(ofSize: Values.smallFontSize) result.text = "UNREAD_MESSAGES".localized() result.themeTextColor = .unreadMarker result.textAlignment = .center return result }() private let rightLine: UIView = { let result: UIView = UIView() result.themeBackgroundColor = .unreadMarker result.set(.height, to: 1) // Intentionally 1 instead of 'separatorThickness' return result }() // MARK: - Initialization override func setUpViewHierarchy() { super.setUpViewHierarchy() addSubview(leftLine) addSubview(titleLabel) addSubview(rightLine) leftLine.pin(.leading, to: .leading, of: self, withInset: Values.mediumSpacing) leftLine.pin(.trailing, to: .leading, of: titleLabel, withInset: -Values.smallSpacing) leftLine.center(.vertical, in: self) titleLabel.center(.horizontal, in: self) titleLabel.center(.vertical, in: self) titleLabel.pin(.top, to: .top, of: self, withInset: Values.smallSpacing) titleLabel.pin(.bottom, to: .bottom, of: self, withInset: -Values.smallSpacing) rightLine.pin(.leading, to: .trailing, of: titleLabel, withInset: Values.smallSpacing) rightLine.pin(.trailing, to: .trailing, of: self, withInset: -Values.mediumSpacing) rightLine.center(.vertical, in: self) } // MARK: - Updating override func update( with cellViewModel: MessageViewModel, mediaCache: NSCache, playbackInfo: ConversationViewModel.PlaybackInfo?, showExpandedReactions: Bool, lastSearchText: String? ) { guard cellViewModel.cellType == .unreadMarker else { return } } override func dynamicUpdate(with cellViewModel: MessageViewModel, playbackInfo: ConversationViewModel.PlaybackInfo?) {} }