Releases: mchakravarty/ProjectNavigator
Releases · mchakravarty/ProjectNavigator
Strict concurrency and path bindings
This release is a major clean up with (unavoidable) API changes. See the demo app for details on passing around the file tree and on bindings.
- Adopts Swift 6.2 strict concurrency (using the approachable concurrency settings).
- Removes the use of computed
Binding(get:set:)bindings in favour of using key paths only. This is more efficient according to @chriseidhof's blog post: https://chris.eidhof.nl/post/swiftui-binding-tricks/ - The removal of
Binding(get:set:)bindings also makes view updates more predictable, at least in the latest OS versions.
Improves folder bindings
- Introduces path bindings for folders.
- Uses that for the dominant folder to fix update bugs .
Bug fix
1.5.3 Robustness
Fix resizing
Resizing must only apply to actual images and not to SF-Symbols.
Resizable images in EditableLabel
The images of EditableLabel are now being resized.
More flexible EditableLabel
An EditableLabel can now be initialised with any SwiftUI image (not just with a system image).
Bug fixes
Harden file wrapper extraction This prevents a crash in some cases.
Improved label editing
Label editing works properly on macOS 15 and iOS 18. The demo app also demonstrates how to edit the selected label with tap gestures and by pressing the return key.
Root as default
The root of a folder tree is by default the dominant folder if there is no selection.
Better support for sections
The top-level name can be omitted, which is useful when presenting folders in a navigator with sections.