This commit is contained in:
Suresh, Kamlesh 2019-11-19 15:32:35 -05:00
parent 478498a9b6
commit bf20fb3104
10 changed files with 35 additions and 14 deletions

View File

@ -8,8 +8,6 @@
import Foundation
extension KeyedDecodingContainer where Key : CodingKey{
private enum TypeCodingKey: String, CodingKey {
case moleculeName

View File

@ -29,7 +29,6 @@ import Foundation
let typeContainer = try decoder.container(keyedBy: CodingKeys.self)
self.moleculeName = try typeContainer.decode(String.self, forKey: .moleculeName)
self.molecule = try typeContainer.decodeIfPresent(codingKey: .molecule)
}
public func encode(to encoder: Encoder) throws {

View File

@ -13,9 +13,4 @@ import Foundation
public static var identifier: String = "label"
public var moleculeName: String?
public var text: String?
public init(text: String?) {
self.text = text
self.moleculeName = Self.identifier
}
}

View File

@ -38,4 +38,5 @@ import Foundation
try container.encode(moleculeName, forKey: .moleculeName)
try container.encodeIfPresent(self.molecule, forKey: .molecule)
try container.encodeIfPresent(actionMap, forKey: .actionMap)
}}
}
}

View File

@ -9,7 +9,7 @@
import Foundation
@objcMembers public class MoleculeStackItemModel: MoleculeProtocol {
public static var identifier: String = "moleculeStackItem"
public static var identifier: String = "stackItem"
public var moleculeName: String?
public var molecule: MoleculeProtocol?

View File

@ -9,6 +9,7 @@
import Foundation
@objcMembers public class MoleculeStackModel: MoleculeProtocol {
public static var identifier: String = "moleculeStack"
public var moleculeName: String?
public var molecules: [MoleculeStackItemModel]?
@ -19,4 +20,24 @@ import Foundation
self.molecules = molecules
self.moleculeName = Self.identifier
}
enum CodingKeys: String, CodingKey {
case moleculeName
case molecules
case axis
}
required public init(from decoder: Decoder) throws {
let typeContainer = try decoder.container(keyedBy: CodingKeys.self)
self.moleculeName = try typeContainer.decodeIfPresent(String.self, forKey: .moleculeName)
self.molecules = try typeContainer.decode([MoleculeStackItemModel].self, forKey: .molecules)
self.axis = try typeContainer.decodeIfPresent(String.self, forKey: .axis)
}
public func encode(to encoder: Encoder) throws {
var container = encoder.container(keyedBy: CodingKeys.self)
try container.encode(moleculeName, forKey: .moleculeName)
try container.encodeIfPresent(molecules, forKey: .molecules)
try container.encode(axis, forKey: .axis)
}
}

View File

@ -15,4 +15,5 @@ import UIKit
public var isAtomicTabs: Bool? = false
public var header: HeaderModel?
public var molecules: [ListItemModel]?
public var moleculeStack: MoleculeStackModel?
}

View File

@ -8,6 +8,7 @@
import Foundation
public extension MVMCoreUIMoleculeMappingObject {
func createMolecule(_ model: MoleculeProtocol, _ delegateObject: MVMCoreUIDelegateObject?) -> (UIView & MVMCoreUIMoleculeViewProtocol)? {
@ -28,7 +29,8 @@ public extension MVMCoreUIMoleculeMappingObject {
}
}
if constrainIfNeeded, let castMolecule = molecule as? MVMCoreUIViewConstrainingProtocol, castMolecule.needsToBeConstrained?() ?? false {
if constrainIfNeeded, let castMolecule = molecule as? MVMCoreUIViewConstrainingProtocol,
castMolecule.needsToBeConstrained?() ?? false {
let view = ViewConstrainingView(molecule: molecule, alignment: castMolecule.alignment?() ?? .fill)
setData(view)
return view

View File

@ -14,8 +14,8 @@ import Foundation
ModelRegistry.register(HeaderModel.self)
ModelRegistry.register(HeadlineBodyModel.self)
ModelRegistry.register(MoleculeStackModel.self)
ModelRegistry.register(ListItemModel.self)
ModelRegistry.register(MoleculeStackItemModel.self)
ModelRegistry.register(ListItemModel.self)
ModelRegistry.register(TextFieldModel.self)
ModelRegistry.register(LineModel.self)
}

View File

@ -30,9 +30,13 @@ open class MoleculeStackTemplate: ThreeLayerViewController {
}
open override func viewForTop() -> UIView? {
guard let moleculeJSON = loadObject?.pageJSON?.optionalDictionaryForKey("header"), let molecule = MVMCoreUIMoleculeMappingObject.shared()?.createMolecule(forJSON: moleculeJSON, delegateObject: delegateObject() as? MVMCoreUIDelegateObject, constrainIfNeeded: true) else {
return nil
guard let moleculeModel = pageModel?.header,
let molecule = MVMCoreUIMoleculeMappingObject.shared()?.createMolecule(moleculeModel, delegateObject() as? MVMCoreUIDelegateObject, true) else {
return nil
}
// guard let moleculeJSON = loadObject?.pageJSON?.optionalDictionaryForKey("header"), let molecule = MVMCoreUIMoleculeMappingObject.shared()?.createMolecule(forJSON: moleculeJSON, delegateObject: delegateObject() as? MVMCoreUIDelegateObject, constrainIfNeeded: true) else {
// return nil
// }
return molecule
}