fix: excluding selected cells
This commit is contained in:
parent
62aecb0941
commit
276fbc8c10
|
|
@ -46,11 +46,10 @@ public extension UICollectionViewLayout {
|
|||
let groupSize = NSCollectionLayoutSize(widthDimension: conf.itemSize.widthDimension,
|
||||
heightDimension: .fractionalHeight(1))
|
||||
let group = NSCollectionLayoutGroup.horizontal(layoutSize: groupSize, subitems: [item])
|
||||
group.interItemSpacing = .fixed(conf.horizontalItemSpacing)
|
||||
|
||||
let section = NSCollectionLayoutSection(group: group)
|
||||
section.contentInsets = NSDirectionalEdgeInsets(insets: conf.contentInsets)
|
||||
section.interGroupSpacing = conf.verticalItemSpacing
|
||||
section.interGroupSpacing = conf.horizontalItemSpacing
|
||||
section.orthogonalScrollingBehavior = .continuous
|
||||
|
||||
return UICollectionViewCompositionalLayout(section: section)
|
||||
|
|
|
|||
|
|
@ -48,7 +48,6 @@ open class DefaultFiltersViewModel: NSObject,
|
|||
}
|
||||
|
||||
open func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
|
||||
|
||||
let viewModel = cellsViewModels[indexPath.item]
|
||||
let cell = collectionView.dequeueReusableCell(withReuseIdentifier: viewModel.id, for: indexPath)
|
||||
filtersCollectionHolder?.configure(filterCell: cell, cellViewModel: viewModel)
|
||||
|
|
@ -63,10 +62,11 @@ open class DefaultFiltersViewModel: NSObject,
|
|||
|
||||
let changedFilters = filters
|
||||
.enumerated()
|
||||
.filter { selected.contains($0.element) || deselected.contains($0.element) }
|
||||
.filter { isFilterChanged($0.element, filters: selected) || isFilterChanged($0.element, filters: deselected) }
|
||||
|
||||
for (offset, element) in changedFilters {
|
||||
cellsViewModels[offset].isSelected = selectedFilters.contains(element)
|
||||
|
||||
filters[offset].isSelected = selectedFilters.contains(element)
|
||||
}
|
||||
|
||||
|
|
@ -78,4 +78,8 @@ open class DefaultFiltersViewModel: NSObject,
|
|||
|
||||
filtersCollectionHolder?.applyChange(changedItems)
|
||||
}
|
||||
|
||||
private func isFilterChanged(_ filter: DefaultFilterPropertyValue, filters: [DefaultFilterPropertyValue]) -> Bool {
|
||||
filters.contains(where: { $0.id == filter.id })
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue