refactor old Toggle + Label = ToggleItem Signed-off-by: Matt Bruce <matt.bruce@verizon.com>
30 lines
614 B
Swift
30 lines
614 B
Swift
//
|
|
// Changeable.swift
|
|
// VDS
|
|
//
|
|
// Created by Matt Bruce on 4/3/23.
|
|
//
|
|
|
|
import Foundation
|
|
import UIKit
|
|
import Combine
|
|
|
|
public protocol Changeable: Handlerable where Self: UIControl {
|
|
var onChangeSubscriber: AnyCancellable? { get set }
|
|
}
|
|
|
|
extension Changeable {
|
|
public var onChange: ((Self) -> ())? {
|
|
get { return nil }
|
|
set {
|
|
onChangeSubscriber?.cancel()
|
|
if let newValue {
|
|
onChangeSubscriber = publisher(for: .valueChanged)
|
|
.sink { c in
|
|
newValue(c)
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|