diff --git a/VDS/Components/Checkbox/CheckboxModel.swift b/VDS/Components/Checkbox/CheckboxModel.swift index 9f0d96cc..84fce76e 100644 --- a/VDS/Components/Checkbox/CheckboxModel.swift +++ b/VDS/Components/Checkbox/CheckboxModel.swift @@ -16,7 +16,7 @@ extension CheckboxModel { } public struct DefaultCheckboxModel: CheckboxModel { - public var id: String? + public var id: UUID = UUID() public var selected: Bool = false public var labelText: String? diff --git a/VDS/Components/RadioButton/RadioButton.swift b/VDS/Components/RadioButton/RadioButton.swift index 2a4e5e25..7f2cccce 100644 --- a/VDS/Components/RadioButton/RadioButton.swift +++ b/VDS/Components/RadioButton/RadioButton.swift @@ -23,6 +23,7 @@ public class RadioButton: RadioButtonBase{ public struct RadioButtonGroupModel: SelectorGroupModel{ public typealias SelectorType = DefaultRadioButtonModel + public var id: UUID = UUID() public var inputId: String? public var value: AnyHashable? public var surface: Surface = .light @@ -36,19 +37,6 @@ public struct RadioButtonGroupModel: SelectorGroupModel{ public class RadioButtonGroup: SelectorGroup { - private func replace(viewModel: DefaultRadioButtonModel){ - guard let viewModelInputId = viewModel.inputId else { return } - if let index = model.selectors.firstIndex(where: { radio in - if let cachedInputId = radio.inputId { - return cachedInputId == viewModelInputId - } else { - return false - } - }) { - model.selectors[index] = viewModel - } - } - public override func didSelect(selected: DefaultRadioButtonModel) { for selectorModel in model.selectors { print("Pre Cached Selector: \(selectorModel.inputId): \(selectorModel.selected)") diff --git a/VDS/Components/RadioButton/RadioButtonModel.swift b/VDS/Components/RadioButton/RadioButtonModel.swift index f602437c..9f1910c7 100644 --- a/VDS/Components/RadioButton/RadioButtonModel.swift +++ b/VDS/Components/RadioButton/RadioButtonModel.swift @@ -17,7 +17,7 @@ extension RadioButtonModel { } public struct DefaultRadioButtonModel: RadioButtonModel { - public var id: String? + public var id: UUID = UUID() public var selected: Bool = false public var labelText: String? diff --git a/VDS/Components/SelectorBase/SelectorBase.swift b/VDS/Components/SelectorBase/SelectorBase.swift index cd840e4c..0104c775 100644 --- a/VDS/Components/SelectorBase/SelectorBase.swift +++ b/VDS/Components/SelectorBase/SelectorBase.swift @@ -69,7 +69,7 @@ open class SelectorBase: Control, Changable public var onChange: Blocks.ActionBlock? @Proxy(\.model.id) - open var id: String? + open var id: UUID //can't bind to @Proxy open override var isSelected: Bool { diff --git a/VDS/Components/SelectorBase/SelectorGroup.swift b/VDS/Components/SelectorBase/SelectorGroup.swift index 5d74e553..e98beaeb 100644 --- a/VDS/Components/SelectorBase/SelectorGroup.swift +++ b/VDS/Components/SelectorBase/SelectorGroup.swift @@ -15,6 +15,7 @@ public protocol SelectorGroupModel: Modelable, FormFieldable { } public struct DefaultSelectorGroupModel: SelectorGroupModel { + public var id: UUID = UUID() public var inputId: String? public var value: AnyHashable? public var surface: Surface = .light @@ -112,5 +113,13 @@ open class SelectorGroup