Rewrite how the UI performs updates #570
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
The way we handled updates from SwiftUI to logic was through closures. However, the view hierarchy made this incredibly challenging to work with. To address this, we now perform updates via a
ConfigurationUpdater
that is passed down as an environment object. Internally, this component can perform targeted updates to the current configuration, such as updating a workflow, a group, a trigger, or any other relevant component. Additionally, it debounces updates to the storage to prevent excessive disk writes.Furthermore, the implementation includes significant renaming and organization of the UI components into different folders. Moreover, it employs more precise naming conventions to enhance clarity and maintainability.
Commit summary
WorkflowKeyboardTriggerView
to useConfigurationUpdater