Skip to content

Commit e80bfd8

Browse files
committed
Use safe unwrapping of bindings
Not doing this could lead to crash when updating of the navigator was somehow delayed.
1 parent 5ed60d5 commit e80bfd8

1 file changed

Lines changed: 18 additions & 22 deletions

File tree

Sources/ProjectNavigator/FileNavigator.swift

Lines changed: 18 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -415,16 +415,15 @@ public struct FileNavigatorFolder<Payload: FileContents,
415415

416416
ForEach(folder.children.elements.filter{ navigatorFilter($0.key) }, id: \.value.id) { keyValue in
417417

418-
// FIXME: This is not nice...
419-
let i = folder.children.keys.firstIndex(of: keyValue.key)!
420-
FileNavigator(name: keyValue.key,
421-
isRoot: false,
422-
item: $folder.children.values[i],
423-
parent: Binding($folder),
424-
viewState: viewState,
425-
fileLabel: fileLabel,
426-
folderLabel: folderLabel)
427-
418+
if let $item = Binding(unwrap: $folder.children[keyValue.key]) {
419+
FileNavigator(name: keyValue.key,
420+
isRoot: false,
421+
item: $item,
422+
parent: Binding($folder),
423+
viewState: viewState,
424+
fileLabel: fileLabel,
425+
folderLabel: folderLabel)
426+
}
428427
}
429428

430429
} label: {
@@ -446,20 +445,17 @@ public struct FileNavigatorFolder<Payload: FileContents,
446445

447446
ForEach(folder.children.elements.filter{ navigatorFilter($0.key) }, id: \.value.id) { keyValue in
448447

449-
// FIXME: This is not nice...
450-
let i = folder.children.keys.firstIndex(of: keyValue.key)!
451-
FileNavigator(name: keyValue.key,
452-
isRoot: false,
453-
item: $folder.children.values[i],
454-
parent: Binding($folder),
455-
viewState: viewState,
456-
fileLabel: fileLabel,
457-
folderLabel: folderLabel)
458-
448+
if let $item = Binding(unwrap: $folder.children[keyValue.key]) {
449+
FileNavigator(name: keyValue.key,
450+
isRoot: false,
451+
item: $item,
452+
parent: Binding($folder),
453+
viewState: viewState,
454+
fileLabel: fileLabel,
455+
folderLabel: folderLabel)
456+
}
459457
}
460-
461458
}
462-
463459
}
464460
}
465461

0 commit comments

Comments
 (0)