@@ -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