diff --git a/Reader/Screens/Items/ItemsViewController.swift b/Reader/Screens/Items/ItemsViewController.swift index 576d419..a64ba90 100644 --- a/Reader/Screens/Items/ItemsViewController.swift +++ b/Reader/Screens/Items/ItemsViewController.swift @@ -60,6 +60,22 @@ class ItemsViewController: UIViewController { var configuration = UICollectionLayoutListConfiguration(appearance: .plain) configuration.backgroundColor = .clear + configuration.trailingSwipeActionsConfigurationProvider = { [unowned self] indexPath in + guard let itemID = self.dataSource.itemIdentifier(for: indexPath) else { + return nil + } + let item = fervorController.persistentContainer.viewContext.object(with: itemID) as! Item + let action = UIContextualAction(style: .normal, title: item.read ? "Mark as Unread" : "Mark as Read") { _, _, completion in + Task { + await self.fervorController.markItem(item, read: !item.read) + completion(true) + } + } + action.image = UIImage(systemName: item.read ? "checkmark.circle" : "checkmark.circle.fill") + return UISwipeActionsConfiguration(actions: [ + action + ]) + } let layout = UICollectionViewCompositionalLayout.list(using: configuration) collectionView = UICollectionView(frame: view.bounds, collectionViewLayout: layout) collectionView.delegate = self