Integrated the create folder feature into the BrowseView view for the Browse module.
This commit is contained in:
parent
55a89975be
commit
c0c7d0a4df
@ -85,7 +85,6 @@ private extension ContentView {
|
||||
id: user.rootFolder.id,
|
||||
name: user.rootFolder.name
|
||||
),
|
||||
createFolder: createFolder,
|
||||
uploadFile: uploadFile,
|
||||
showProfile: showProfile,
|
||||
login: login
|
||||
|
@ -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.
|
||||
|
Loading…
x
Reference in New Issue
Block a user