Given these two tables
lists
| id | name | weight | 
|---|---|---|
| 1 | Groceries | 0 | 
| 2 | Pharmacy | 1 | 
| 3 | Misc | 2 | 
| /* | |
| Usage: | |
| Store( | |
| initialState: .init(), | |
| reducer: UserRecipesListReducer().relay { [unowned self] featureAction in | |
| // Handle action here | |
| } | |
| ) | |
| */ | 
| /* | |
| Example usage: | |
| confirmationDialog( | |
| store: store.scope(state: \.destination, action: UserRecipesListReducer.Action.destination), | |
| state: /UserRecipesListReducer.Destination.State.confirmation, | |
| action: UserRecipesListReducer.Destination.Action.confirmation | |
| ).store(in: &subscriptions) | |
| alert( | 
| import CloudKit | |
| import Combine | |
| /// A publisher that wraps a `CKFetchRecordZoneChangesOperation` and emits events as the operation completes. | |
| /// | |
| /// The `FetchRecordZoneChangesPublisher` fetches changes from the given record zones. New and deleted records are | |
| /// posted individually via the `.recordChanged` and `.recordDeleted` actions. | |
| /// | |
| /// Errors are automatically retried if possible. Resetting the change token in case it expired is also automatically | |
| /// handled. Because emitting errors fails a publisher all errors are posted as actions. There may still be running | 
Given these two tables
lists
| id | name | weight | 
|---|---|---|
| 1 | Groceries | 0 | 
| 2 | Pharmacy | 1 | 
| 3 | Misc | 2 | 
| extension Reducer { | |
| /// Wraps a reducer to inject a debounced action back into the reducer. | |
| /// | |
| /// Use this higher order reducer when you want to schedule some work to happen after any other action is recieved by | |
| /// the reducer. | |
| /// | |
| /// **Usage:** | |
| /// ``` | |
| /// otherReducer.debounceReactiveAction( | |
| /// id: DebounceID(), | 
| import CloudKit | |
| extension Error { | |
| /// `true` if the error represents a CloudKit conflict. | |
| var isCloudKitConflictError: Bool { | |
| (self as? CKError).map { $0.code == CKError.Code.serverRecordChanged } ?? false | |
| } | |
| /// `true` if the error represents a CloudKit zone deleted error. | 
| import Combine | |
| import ComposableArchitecture | |
| import UIKit | |
| /// The state store cell is a cell superclass designed to work with Composable Architecture state stores. It removes | |
| /// much of the boiler plate involved with creating a custom cell subclass. | |
| open class StateStoreCell<State: Equatable, Action>: UICollectionViewCell { | |
| // MARK: Properties | 
| import CloudKit | |
| import Combine | |
| /// Fetches the user's CloudKit Account status. | |
| /// | |
| /// - Parameter container: The container to check the status in. | |
| /// | |
| /// - Returns: A deferred future that resolves to the user's CloudKit Account status. | |
| func getAccountStatus(for container: CKContainer) -> AnyPublisher<CKAccountStatus, Error> { | |
| Deferred { | 
| import UIKit | |
| public protocol CellConfinable: UIView { | |
| associatedtype Item | |
| var isSelected: Bool { get set } | |
| var isHighlighted: Bool { get set } | |
| func prepareForReuse() | |
| func configure(for item: Item) | |
| } | 
| private final class OfferingButton: UIViewController { | |
| @Published private var frame: CGRect = .zero | |
| private var subscriptions: [AnyCancellable] = [] | |
| override func viewWillAppear(_ animated: Bool) { | |
| super.viewWillAppear(animated) | |
| $frame.removeDuplicates() |