@@ -278,16 +278,11 @@ extension NewOrderViewModel {
278278 var billingAddress : Address ?
279279 var shippingAddress : Address ?
280280
281- /// Used to create `Order` and check if order details have changed from empty/default values.
282- /// Required because `Order` has `Date` properties that have to be the same to be Equatable.
283- ///
284- let emptyOrder = Order . empty
285-
286281 func toOrder( ) -> Order {
287- emptyOrder . copy ( status: . pending,
288- items: items. map { $0. orderItem } ,
289- billingAddress: billingAddress,
290- shippingAddress: shippingAddress)
282+ OrderFactory . emptyNewOrder . copy ( status: . pending,
283+ items: items. map { $0. orderItem } ,
284+ billingAddress: billingAddress,
285+ shippingAddress: shippingAddress)
291286 }
292287 }
293288
@@ -412,13 +407,13 @@ private extension NewOrderViewModel {
412407 /// Calculates what navigation trailing item should be shown depending on our internal state.
413408 ///
414409 func configureNavigationTrailingItem( ) {
415- Publishers . CombineLatest ( $orderDetails , $performingNetworkRequest)
416- . map { orderDetails , performingNetworkRequest -> NavigationItem in
410+ Publishers . CombineLatest ( orderSynchronizer . orderPublisher , $performingNetworkRequest)
411+ . map { order , performingNetworkRequest -> NavigationItem in
417412 guard !performingNetworkRequest else {
418413 return . loading
419414 }
420415
421- guard orderDetails . emptyOrder != orderDetails . toOrder ( ) else {
416+ guard OrderFactory . emptyNewOrder != order else {
422417 return . none
423418 }
424419
0 commit comments