IGListKit/Examples/Examples-iOS/IGListKitExamples/Models/LoadingCellModel.swift

34 lines
1.1 KiB
Swift
Raw Normal View History

/*
* Copyright (c) Meta Platforms, Inc. and affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
import UIKit
import IGListKit
final class LoadingCellModel {
let identifier = "loading-cell"
}
// MARK: - ListDiffable Implementation
// Even simple models like this loading indicator need to conform to ListDiffable
// in order to be used with IGListKit
extension LoadingCellModel: ListDiffable {
// The diffIdentifier uniquely identifies this object
// For a singleton loading indicator, a static string ID is sufficient
func diffIdentifier() -> any NSObjectProtocol {
return self.identifier as NSObjectProtocol
}
// isEqual compares properties that affect the visual representation
// For this simple case, comparing identifiers is enough
func isEqual(toDiffableObject object: (any ListDiffable)?) -> Bool {
guard let object = object as? LoadingCellModel else { return false }
return self.identifier == object.identifier
}
}