         view.layer.borderColor = UIColor.clear.cgColor
         view.insets = NSDirectionalEdgeInsets(top: 7, leading: 7, bottom: -7, trailing: -7)
         return view
-	}()
-
-	lazy var projectSourceLabel: InsetLabelView = {
-		let insetLabel = InsetLabelView()
-
-		insetLabel.translatesAutoresizingMaskIntoConstraints = false
-		insetLabel.label.setContentCompressionResistancePriority(.required, for: .vertical)
-		insetLabel.label.font = UIFont.wmf_font(.caption1, compatibleWithTraitCollection: traitCollection)
-		insetLabel.label.adjustsFontForContentSizeCategory = true
-		insetLabel.label.numberOfLines = 1
-		insetLabel.label.text = "EN"
-		insetLabel.label.textAlignment = .center
-
-		insetLabel.layer.cornerRadius = 3
-		insetLabel.layer.borderWidth = 1
-		insetLabel.layer.borderColor = UIColor.black.cgColor
+    }()
+
+    lazy var projectSourceLabel: InsetLabelView = {
+        let insetLabel = InsetLabelView()
+
+        insetLabel.translatesAutoresizingMaskIntoConstraints = false
+        insetLabel.label.setContentCompressionResistancePriority(.required, for: .vertical)
+        insetLabel.label.font = UIFont.wmf_font(.caption1, compatibleWithTraitCollection: traitCollection)
+        insetLabel.label.adjustsFontForContentSizeCategory = true
+        insetLabel.label.numberOfLines = 1
+        insetLabel.label.text = "EN"
+        insetLabel.label.textAlignment = .center
+
+        insetLabel.layer.cornerRadius = 3
+        insetLabel.layer.borderWidth = 1
+        insetLabel.layer.borderColor = UIColor.black.cgColor
         insetLabel.insets = NSDirectionalEdgeInsets(top: 4, leading: 4, bottom: -4, trailing: -4)
-        
+
         insetLabel.isHidden = true
 
-		return insetLabel
-	}()
-
-	lazy var projectSourceImage: UIImageView = {
-		let imageView = UIImageView()
-		imageView.translatesAutoresizingMaskIntoConstraints = false
-		imageView.image = UIImage(named: "notifications-project-commons")
-		imageView.contentMode = .scaleAspectFit
-        
+        return insetLabel
+    }()
+
+    lazy var projectSourceImage: UIImageView = {
+        let imageView = UIImageView()
+        imageView.translatesAutoresizingMaskIntoConstraints = false
+        imageView.image = UIImage(named: "notifications-project-commons")
+        imageView.contentMode = .scaleAspectFit
+
         imageView.isHidden = true
-        
-		return imageView
-	}()
-
-	lazy var headerLabel: UILabel = {
-		let label = UILabel()
-		label.translatesAutoresizingMaskIntoConstraints = false
-		label.setContentCompressionResistancePriority(.required, for: .vertical)
-		label.font = UIFont.wmf_font(.headline, compatibleWithTraitCollection: traitCollection)
-		label.adjustsFontForContentSizeCategory = true
-		label.textAlignment = .left
-		label.numberOfLines = 1
-		label.setContentCompressionResistancePriority(.defaultLow, for: .horizontal)
-		label.setContentHuggingPriority(.required, for: .horizontal)
-		label.text = ""
-		return label
-	}()
-
-	lazy var subheaderLabel: UILabel = {
-		let label = UILabel()
-		label.translatesAutoresizingMaskIntoConstraints = false
-		label.setContentCompressionResistancePriority(.required, for: .vertical)
-		label.font = UIFont.wmf_font(.subheadline, compatibleWithTraitCollection: traitCollection)
-		label.adjustsFontForContentSizeCategory = true
-		label.numberOfLines = 1
-		label.textAlignment = .left
-		label.text = ""
-		return label
-	}()
-
-	lazy var messageSummaryLabel: UILabel = {
-		let label = UILabel()
-		label.translatesAutoresizingMaskIntoConstraints = false
-		label.setContentCompressionResistancePriority(.required, for: .vertical)
-		label.font = UIFont.wmf_font(.body, compatibleWithTraitCollection: traitCollection)
-		label.adjustsFontForContentSizeCategory = true
-		label.lineBreakMode = .byTruncatingTail
-		label.textAlignment = .left
-		label.numberOfLines = 1
-		label.text = ""
-		return label
-	}()
-
-	lazy var relativeTimeAgoLabel: UILabel = {
-		let label = UILabel()
-		label.translatesAutoresizingMaskIntoConstraints = false
-		label.setContentCompressionResistancePriority(.required, for: .vertical)
-		label.font = UIFont.wmf_font(.boldFootnote, compatibleWithTraitCollection: traitCollection)
-		label.adjustsFontForContentSizeCategory = true
-		label.numberOfLines = 1
+
+        return imageView
+    }()
+
+    lazy var headerLabel: UILabel = {
+        let label = UILabel()
+        label.translatesAutoresizingMaskIntoConstraints = false
+        label.setContentCompressionResistancePriority(.required, for: .vertical)
+        label.font = UIFont.wmf_font(.headline, compatibleWithTraitCollection: traitCollection)
+        label.adjustsFontForContentSizeCategory = true
+        label.textAlignment = .left
+        label.numberOfLines = 1
+        label.setContentCompressionResistancePriority(.defaultLow, for: .horizontal)
+        label.setContentHuggingPriority(.required, for: .horizontal)
+        label.text = ""
+        return label
+    }()
+
+    lazy var subheaderLabel: UILabel = {
+        let label = UILabel()
+        label.translatesAutoresizingMaskIntoConstraints = false
+        label.setContentCompressionResistancePriority(.required, for: .vertical)
+        label.font = UIFont.wmf_font(.subheadline, compatibleWithTraitCollection: traitCollection)
+        label.adjustsFontForContentSizeCategory = true
+        label.numberOfLines = 1
+        label.textAlignment = .left
+        label.text = ""
+        return label
+    }()
+
+    lazy var messageSummaryLabel: UILabel = {
+        let label = UILabel()
+        label.translatesAutoresizingMaskIntoConstraints = false
+        label.setContentCompressionResistancePriority(.required, for: .vertical)
+        label.font = UIFont.wmf_font(.body, compatibleWithTraitCollection: traitCollection)
+        label.adjustsFontForContentSizeCategory = true
+        label.lineBreakMode = .byTruncatingTail
+        label.textAlignment = .left
+        label.numberOfLines = 1
+        label.text = ""
+        return label
+    }()
+
+    lazy var relativeTimeAgoLabel: UILabel = {
+        let label = UILabel()
+        label.translatesAutoresizingMaskIntoConstraints = false
+        label.setContentCompressionResistancePriority(.required, for: .vertical)
+        label.font = UIFont.wmf_font(.boldFootnote, compatibleWithTraitCollection: traitCollection)
+        label.adjustsFontForContentSizeCategory = true
+        label.numberOfLines = 1
         label.textAlignment = effectiveUserInterfaceLayoutDirection == .rightToLeft ? .left : .right
-		label.text = ""
-		return label
-	}()
-
-	lazy var metaActionButton: UIButton = {
+        label.text = ""
+        return label
+    }()
+
+    lazy var metaActionButton: UIButton = {
         let button = UIButton()
         button.translatesAutoresizingMaskIntoConstraints = false
         button.titleLabel?.numberOfLines = 1

        case .system(let iconName):
            image = UIImage(systemName: iconName)
        }
        
        metaActionButton.setImage(image, for: .normal)
    }


        messageSummaryLabel.text = messageSummaryText.isEmpty ? " " : viewModel.text.body
        relativeTimeAgoLabel.text = viewModel.text.date
    }

    func updateProject(forViewModel viewModel: NotificationsCenterCellViewModel) {

        // Show or hide project source label and image
        if let projectText = viewModel.text.project {
            projectSourceLabel.label.text = projectText
