diff --git a/BeReal/UI/Views/ContentView.swift b/BeReal/UI/Views/ContentView.swift index dc7eccd..a3d61da 100644 --- a/BeReal/UI/Views/ContentView.swift +++ b/BeReal/UI/Views/ContentView.swift @@ -85,7 +85,6 @@ private extension ContentView { id: user.rootFolder.id, name: user.rootFolder.name ), - createFolder: createFolder, uploadFile: uploadFile, showProfile: showProfile, login: login diff --git a/Modules/Sources/Browse/UI/Views/BrowseView.swift b/Modules/Sources/Browse/UI/Views/BrowseView.swift index 067521c..4e13ccd 100644 --- a/Modules/Sources/Browse/UI/Views/BrowseView.swift +++ b/Modules/Sources/Browse/UI/Views/BrowseView.swift @@ -22,11 +22,11 @@ public struct BrowseView: View { @State private var items: [any FileSystemItem] = [] @State private var stack: Stack? @State private var itemToDelete: (any FileSystemItem)? + @State private var showCreateFolder: Bool = false // MARK: Properties private let folder: Folder - private let createFolder: ActionClosure private let uploadFile: ActionClosure private let showProfile: ActionClosure private let login: ActionClosure @@ -37,13 +37,11 @@ public struct BrowseView: View { public init( folder: Folder, - createFolder: @escaping ActionClosure, uploadFile: @escaping ActionClosure, showProfile: @escaping ActionClosure, login: @escaping ActionClosure ) { self.folder = folder - self.createFolder = createFolder self.uploadFile = uploadFile self.showProfile = showProfile self.login = login @@ -56,14 +54,24 @@ public struct BrowseView: View { .navigationTitle(folder.name) .toolbar { BrowseToolbar( - createFolder: createFolder, + createFolder: { + showCreateFolder = true + }, uploadFile: uploadFile, showProfile: showProfile ) } + .createFolder( + isPresenting: $showCreateFolder, + id: folder.id + ) { + Task { + await loadItems() + } + } .delete(item: $itemToDelete) { Task { - await updateItems() + await loadItems() } } .task(id: folder) { @@ -129,7 +137,6 @@ private extension BrowseView { .navigate( to: BrowseView( folder: folder, - createFolder: createFolder, uploadFile: uploadFile, showProfile: showProfile, login: login @@ -196,11 +203,6 @@ private extension BrowseView { status = .error } } - - func updateItems() async { - items = items.filter { $0.id != itemToDelete?.id } - itemToDelete = nil - } } // MARK: - Previews @@ -212,8 +214,6 @@ struct BrowseView_Previews: PreviewProvider { id: UUID().uuidString, name: "Some folder name" )) { - // create folder closure. - } uploadFile: { // upload file closure. } showProfile: { // show profile closure.