diff --git a/ViewModels/Sources/ViewModels/View Models/CollectionItemsViewModel.swift b/ViewModels/Sources/ViewModels/View Models/CollectionItemsViewModel.swift index 303ae85..a24f499 100644 --- a/ViewModels/Sources/ViewModels/View Models/CollectionItemsViewModel.swift +++ b/ViewModels/Sources/ViewModels/View Models/CollectionItemsViewModel.swift @@ -97,7 +97,11 @@ public class CollectionItemsViewModel: ObservableObject { } // swiftlint:disable:next function_body_length cyclomatic_complexity - public func viewModel(indexPath: IndexPath) -> Any { + public func viewModel(indexPath: IndexPath) -> Any? { + guard indexPath.section < lastUpdate.sections.count, + indexPath.item < lastUpdate.sections[indexPath.section].items.count + else { return nil } + let item = lastUpdate.sections[indexPath.section].items[indexPath.item] let cachedViewModel = viewModelCache[item] diff --git a/ViewModels/Sources/ViewModels/View Models/CollectionViewModel.swift b/ViewModels/Sources/ViewModels/View Models/CollectionViewModel.swift index 9ca62bd..5106121 100644 --- a/ViewModels/Sources/ViewModels/View Models/CollectionViewModel.swift +++ b/ViewModels/Sources/ViewModels/View Models/CollectionViewModel.swift @@ -22,7 +22,7 @@ public protocol CollectionViewModel { func viewedAtTop(indexPath: IndexPath) func select(indexPath: IndexPath) func canSelect(indexPath: IndexPath) -> Bool - func viewModel(indexPath: IndexPath) -> Any + func viewModel(indexPath: IndexPath) -> Any? func toggleExpandAll() func applyAccountListEdit(viewModel: AccountViewModel, edit: CollectionItemEvent.AccountListEdit) } diff --git a/ViewModels/Sources/ViewModels/View Models/ProfileViewModel.swift b/ViewModels/Sources/ViewModels/View Models/ProfileViewModel.swift index 8b116c2..8aa993a 100644 --- a/ViewModels/Sources/ViewModels/View Models/ProfileViewModel.swift +++ b/ViewModels/Sources/ViewModels/View Models/ProfileViewModel.swift @@ -178,7 +178,7 @@ extension ProfileViewModel: CollectionViewModel { collectionViewModel.value.canSelect(indexPath: indexPath) } - public func viewModel(indexPath: IndexPath) -> Any { + public func viewModel(indexPath: IndexPath) -> Any? { collectionViewModel.value.viewModel(indexPath: indexPath) }