updated nameforreuse

Signed-off-by: Matt Bruce <matt.bruce@verizon.com>
This commit is contained in:
Matt Bruce 2024-04-25 09:55:50 -05:00
parent 9292e6a8d0
commit e25a0cadc1

View File

@ -42,7 +42,8 @@ open class TileContainer: VDS.TileContainer, VDSMoleculeViewProtocol{
public func viewModelDidUpdate() {
if let moleculeModel = viewModel.molecule {
if let molecule {
if let molecule,
moleculeModel.moleculeName == molecule.model?.moleculeName {
molecule.set(with: moleculeModel, delegateObject, additionalData)
} else if let moleculeView = ModelRegistry.createMolecule(moleculeModel, delegateObject: delegateObject, additionalData: additionalData) {
molecule = moleculeView
@ -106,10 +107,13 @@ open class TileContainer: VDS.TileContainer, VDSMoleculeViewProtocol{
/// Allows the molecule to set its name for reuse. Default could be moleculeName. Mainly used for list or collections.
public static func nameForReuse(with model: MoleculeModelProtocol, _ delegateObject: MVMCoreUIDelegateObject?) -> String? {
// This will aggregate names of molecules to make an id.
guard let model = model as? ButtonGroupModel else {
return "tileContainer<>"
}
return "tileContainer<\(model.moleculeName)>"
guard let containerModel = model as? TileContainerModel,
let molecule = containerModel.molecule,
let moleculeClass = ModelRegistry.getMoleculeClass(molecule),
let moleculeName = moleculeClass.nameForReuse(with: molecule, delegateObject)
else { return "\(model.moleculeName)<>" }
return "\(model.moleculeName)<\(moleculeName)>"
}
//--------------------------------------------------