updated trailing tooltip label

Signed-off-by: Matt Bruce <matt.bruce@verizon.com>
This commit is contained in:
Matt Bruce 2023-05-08 10:46:42 -05:00
parent 01c7df3c69
commit a2696ece91

View File

@ -16,16 +16,16 @@ open class TrailingTooltipLabel: View, TooltipLaunchable {
// MARK: - Private Properties // MARK: - Private Properties
//-------------------------------------------------- //--------------------------------------------------
private let tooltipAction = PassthroughSubject<Void, Never>() private let tooltipAction = PassthroughSubject<Void, Never>()
//-------------------------------------------------- //--------------------------------------------------
// MARK: - Public Properties // MARK: - Public Properties
//-------------------------------------------------- //--------------------------------------------------
open var label = Label() open var label = Label()
open var labelText: String? { didSet { didChange() }} open var labelText: String? { didSet { didChange() }}
open var labelAttributes: [any LabelAttributeModel]? { didSet { didChange() } } open var labelAttributes: [any LabelAttributeModel]? { didSet { didChange() } }
open var labelTextStyle: TextStyle = .defaultStyle { didSet { didChange() } } open var labelTextStyle: TextStyle = .defaultStyle { didSet { didChange() } }
open var labelTextPosition: TextPosition = .left { didSet { didChange() } } open var labelTextPosition: TextPosition = .left { didSet { didChange() } }
@ -36,8 +36,6 @@ open class TrailingTooltipLabel: View, TooltipLaunchable {
open var tooltipCloseButtonText: String = "Close" { didSet { didChange() } } open var tooltipCloseButtonText: String = "Close" { didSet { didChange() } }
open var tooltipSize: Tooltip.Size = .medium { didSet { didChange() } }
open var tooltipTitle: String = "" { didSet { didChange() } } open var tooltipTitle: String = "" { didSet { didChange() } }
open var tooltipContent: String = "" { didSet { didChange() } } open var tooltipContent: String = "" { didSet { didChange() } }
@ -68,43 +66,35 @@ open class TrailingTooltipLabel: View, TooltipLaunchable {
label.text = labelText label.text = labelText
label.textStyle = labelTextStyle label.textStyle = labelTextStyle
label.textPosition = labelTextPosition label.textPosition = labelTextPosition
label.attributes = labelAttributes
label.surface = surface label.surface = surface
label.disabled = disabled label.disabled = disabled
//add tooltip //add tooltip
if let labelText, !labelText.isEmpty, !tooltipTitle.isEmpty, !tooltipContent.isEmpty { if let labelText, !labelText.isEmpty, !tooltipTitle.isEmpty, !tooltipContent.isEmpty {
//create the model label.addTooltip(model: .init(surface: surface, closeButtonText: tooltipCloseButtonText, title: tooltipTitle, content: tooltipContent))
let model = Label.TooltipModel(surface: surface,
closeButtonText: tooltipCloseButtonText,
size: tooltipSize,
title: tooltipTitle,
content: tooltipContent)
//add the model
label.addTooltip(model: model)
} }
} }
} }
extension Label { extension Label {
public struct TooltipModel { public struct TooltipModel {
public var surface: Surface public var surface: Surface
public var closeButtonText: String public var closeButtonText: String
public var size: Tooltip.Size
public var title: String public var title: String
public var content: String public var content: String
public init(surface: Surface = .light, closeButtonText: String = "Close", size: Tooltip.Size = .medium, title: String, content: String) { public init(surface: Surface = .light, closeButtonText: String = "Close", title: String, content: String) {
self.surface = surface self.surface = surface
self.closeButtonText = closeButtonText self.closeButtonText = closeButtonText
self.size = size
self.title = title self.title = title
self.content = content self.content = content
} }
} }
public func addTooltip(model: TooltipModel) { public func addTooltip(model: TooltipModel) {
var newAttributes: [any LabelAttributeModel] = [] var newAttributes: [any LabelAttributeModel] = []
if let attributes { if let attributes {
attributes.forEach { attribute in attributes.forEach { attribute in
@ -113,11 +103,10 @@ extension Label {
} }
} }
} }
if let text = text, !text.isEmpty { if let text = text, !text.isEmpty {
let tooltip = TooltipLabelAttribute(surface: surface, let tooltip = TooltipLabelAttribute(surface: surface,
closeButtonText: model.closeButtonText, closeButtonText: model.closeButtonText,
size: model.size,
title: model.title, title: model.title,
content: model.content) content: model.content)
newAttributes.append(tooltip) newAttributes.append(tooltip)