updated action to combine

Signed-off-by: Matt Bruce <matt.bruce@verizon.com>
This commit is contained in:
Matt Bruce 2022-08-17 07:59:31 -05:00
parent cade12b0cd
commit 85f6722d4c
2 changed files with 9 additions and 9 deletions

View File

@ -7,9 +7,10 @@
import Foundation
import UIKit
import Combine
public protocol LabelAttributeActionable: LabelAttributeModel {
var action: Blocks.ActionBlock { get set }
var action: PassthroughSubject<Void, Never> { get set }
}
public struct LabelAttributeActionModel: LabelAttributeActionable {
@ -19,16 +20,15 @@ public struct LabelAttributeActionModel: LabelAttributeActionable {
//--------------------------------------------------
public var location: Int
public var length: Int
public var action: Blocks.ActionBlock = {}
public var action = PassthroughSubject<Void, Never>()
//--------------------------------------------------
// MARK: - Initializer
//--------------------------------------------------
public init(location: Int, length: Int, action: @escaping Blocks.ActionBlock) {
public init(location: Int, length: Int) {
self.location = location
self.length = length
self.action = action
}
private enum CodingKeys: String, CodingKey {

View File

@ -29,7 +29,7 @@ open class LabelBase<ModelType: LabelModel>: UILabel, ModelHandlerable, ViewProt
@Proxy(\.model.disabled)
open var disabled: Bool
@Proxy(\.model.attributes)
open var attributes: [LabelAttributeModel]?
@ -163,7 +163,7 @@ open class LabelBase<ModelType: LabelModel>: UILabel, ModelHandlerable, ViewProt
}
}
}
//only enabled if enabled and has actions
isUserInteractionEnabled = !viewModel.disabled && !actions.isEmpty
@ -213,14 +213,14 @@ open class LabelBase<ModelType: LabelModel>: UILabel, ModelHandlerable, ViewProt
private struct LabelAction {
var range: NSRange
var actionBlock: Blocks.ActionBlock
var actionBlock: PassthroughSubject<Void, Never>
var accessibilityId: Int = 0
func performAction() {
actionBlock()
actionBlock.send()
}
init(range: NSRange, actionBlock: @escaping Blocks.ActionBlock, accessibilityID: Int = 0) {
init(range: NSRange, actionBlock: PassthroughSubject<Void, Never>, accessibilityID: Int = 0) {
self.range = range
self.actionBlock = actionBlock
self.accessibilityId = accessibilityID