Bahn-X / swift-composable-navigator

An open source library for building deep-linkable SwiftUI applications with composition, testing and ergonomics in mind
MIT License
580 stars 25 forks source link

Improve NavigationTree #53

Closed ohitsdaniel closed 3 years ago

ohitsdaniel commented 3 years ago

Problem

Conditional path builders call the non-matching path builders with empty paths to ensure the onDismiss PathBuilder gets triggered. This leads to unnecessary invocations of the build functions which can be avoided now as onDismiss is now View-based and correctly reacts to the dismissal of a path element.

Calling through to the non-matching paths blocked us from using ResultBuilder's built-in support of Swift control flow mechanisms.

Solution

github-actions[bot] commented 3 years ago

Current coverage for ComposableDeeplinking.framework is 100.00%

No files affecting coverage found


Current coverage for ComposableNavigator.framework is 96.82%

Files changed - -
NavigationTree+ControlFlow.swift 0.00% :skull:
PathBuilder+Wildcard.swift 75.68% :warning:
PathBuilder+Screen.swift 84.06% :white_check_mark:
Root.swift 85.11% :white_check_mark:
PathBuilder+Conditional.swift 86.36% :white_check_mark:
NavigationTree+Screen.swift 94.44% :white_check_mark:
NavigationNode.swift 98.96% :white_check_mark:
NavigationTree+Conditional.swift 100.00% :white_check_mark:
NavigationTree+Empty.swift 100.00% :white_check_mark:
PathComponentUpdate.swift 100.00% :white_check_mark:
_PathBuilder.swift 100.00% :white_check_mark:
NavigationTree.swift 100.00% :white_check_mark:
Generated.PathBuilder+AnyOf.swift 100.00% :white_check_mark:
PathBuilder+OnDismiss.swift 100.00% :white_check_mark:
PathBuilder+BeforeBuild.swift 100.00% :white_check_mark:
PathBuilder+Empty.swift 100.00% :white_check_mark:
NavigationTree+Wildcard.swift 100.00% :white_check_mark:

Current coverage for ComposableNavigatorTCA.framework is 98.46%

Files changed - -
PathBuilder+IfLetStore.swift 96.30% :white_check_mark:
PathBuilder+OnDismiss+TCA.swift 100.00% :white_check_mark:

Powered by xcov

Generated by :no_entry_sign: Danger