// Copyright © 2022 Rangeproof Pty Ltd. All rights reserved. import UIKit import SessionUIKit import SessionMessagingKit public class ThemePreviewView: UIView { // MARK: - Components private lazy var incomingMessagePreview: UIView = { let result: VisibleMessageCell = VisibleMessageCell() result.translatesAutoresizingMaskIntoConstraints = true result.update( with: MessageViewModel( variant: .standardIncoming, body: "APPEARANCE_PRIMARY_COLOR_PREVIEW_INC_MESSAGE".localized(), quote: Quote( interactionId: -1, authorId: "", timestampMs: 0, body: "APPEARANCE_PRIMARY_COLOR_PREVIEW_INC_QUOTE".localized(), attachmentId: nil ), cellType: .textOnlyMessage ), mediaCache: NSCache(), playbackInfo: nil, showExpandedReactions: false, lastSearchText: nil ) return result }() private lazy var outgoingMessagePreview: UIView = { let result: VisibleMessageCell = VisibleMessageCell() result.translatesAutoresizingMaskIntoConstraints = true result.update( with: MessageViewModel( variant: .standardOutgoing, body: "APPEARANCE_PRIMARY_COLOR_PREVIEW_OUT_MESSAGE".localized(), cellType: .textOnlyMessage, isLast: false // To hide the status indicator ), mediaCache: NSCache(), playbackInfo: nil, showExpandedReactions: false, lastSearchText: nil ) return result }() // MARK: - Initializtion init() { super.init(frame: .zero) setupUI() } required init?(coder: NSCoder) { fatalError("init(coder:) has not been implemented") } // MARK: - Layout private func setupUI() { self.themeBackgroundColor = .appearance_sectionBackground addSubview(incomingMessagePreview) addSubview(outgoingMessagePreview) setupLayout() } private func setupLayout() { incomingMessagePreview.pin(.top, to: .top, of: self) incomingMessagePreview.pin(.leading, to: .leading, of: self, withInset: Values.veryLargeSpacing) outgoingMessagePreview.pin(.top, to: .bottom, of: incomingMessagePreview) outgoingMessagePreview.pin(.trailing, to: .trailing, of: self, withInset: -Values.veryLargeSpacing) outgoingMessagePreview.pin(.bottom, to: .bottom, of: self, withInset: -Values.mediumSpacing) } }