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,
|
id: user.rootFolder.id,
|
||||||
name: user.rootFolder.name
|
name: user.rootFolder.name
|
||||||
),
|
),
|
||||||
createFolder: createFolder,
|
|
||||||
uploadFile: uploadFile,
|
uploadFile: uploadFile,
|
||||||
showProfile: showProfile,
|
showProfile: showProfile,
|
||||||
login: login
|
login: login
|
||||||
|
@ -22,11 +22,11 @@ public struct BrowseView: View {
|
|||||||
@State private var items: [any FileSystemItem] = []
|
@State private var items: [any FileSystemItem] = []
|
||||||
@State private var stack: Stack?
|
@State private var stack: Stack?
|
||||||
@State private var itemToDelete: (any FileSystemItem)?
|
@State private var itemToDelete: (any FileSystemItem)?
|
||||||
|
@State private var showCreateFolder: Bool = false
|
||||||
|
|
||||||
// MARK: Properties
|
// MARK: Properties
|
||||||
|
|
||||||
private let folder: Folder
|
private let folder: Folder
|
||||||
private let createFolder: ActionClosure
|
|
||||||
private let uploadFile: ActionClosure
|
private let uploadFile: ActionClosure
|
||||||
private let showProfile: ActionClosure
|
private let showProfile: ActionClosure
|
||||||
private let login: ActionClosure
|
private let login: ActionClosure
|
||||||
@ -37,13 +37,11 @@ public struct BrowseView: View {
|
|||||||
|
|
||||||
public init(
|
public init(
|
||||||
folder: Folder,
|
folder: Folder,
|
||||||
createFolder: @escaping ActionClosure,
|
|
||||||
uploadFile: @escaping ActionClosure,
|
uploadFile: @escaping ActionClosure,
|
||||||
showProfile: @escaping ActionClosure,
|
showProfile: @escaping ActionClosure,
|
||||||
login: @escaping ActionClosure
|
login: @escaping ActionClosure
|
||||||
) {
|
) {
|
||||||
self.folder = folder
|
self.folder = folder
|
||||||
self.createFolder = createFolder
|
|
||||||
self.uploadFile = uploadFile
|
self.uploadFile = uploadFile
|
||||||
self.showProfile = showProfile
|
self.showProfile = showProfile
|
||||||
self.login = login
|
self.login = login
|
||||||
@ -56,14 +54,24 @@ public struct BrowseView: View {
|
|||||||
.navigationTitle(folder.name)
|
.navigationTitle(folder.name)
|
||||||
.toolbar {
|
.toolbar {
|
||||||
BrowseToolbar(
|
BrowseToolbar(
|
||||||
createFolder: createFolder,
|
createFolder: {
|
||||||
|
showCreateFolder = true
|
||||||
|
},
|
||||||
uploadFile: uploadFile,
|
uploadFile: uploadFile,
|
||||||
showProfile: showProfile
|
showProfile: showProfile
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
.createFolder(
|
||||||
|
isPresenting: $showCreateFolder,
|
||||||
|
id: folder.id
|
||||||
|
) {
|
||||||
|
Task {
|
||||||
|
await loadItems()
|
||||||
|
}
|
||||||
|
}
|
||||||
.delete(item: $itemToDelete) {
|
.delete(item: $itemToDelete) {
|
||||||
Task {
|
Task {
|
||||||
await updateItems()
|
await loadItems()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
.task(id: folder) {
|
.task(id: folder) {
|
||||||
@ -129,7 +137,6 @@ private extension BrowseView {
|
|||||||
.navigate(
|
.navigate(
|
||||||
to: BrowseView(
|
to: BrowseView(
|
||||||
folder: folder,
|
folder: folder,
|
||||||
createFolder: createFolder,
|
|
||||||
uploadFile: uploadFile,
|
uploadFile: uploadFile,
|
||||||
showProfile: showProfile,
|
showProfile: showProfile,
|
||||||
login: login
|
login: login
|
||||||
@ -196,11 +203,6 @@ private extension BrowseView {
|
|||||||
status = .error
|
status = .error
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func updateItems() async {
|
|
||||||
items = items.filter { $0.id != itemToDelete?.id }
|
|
||||||
itemToDelete = nil
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// MARK: - Previews
|
// MARK: - Previews
|
||||||
@ -212,8 +214,6 @@ struct BrowseView_Previews: PreviewProvider {
|
|||||||
id: UUID().uuidString,
|
id: UUID().uuidString,
|
||||||
name: "Some folder name"
|
name: "Some folder name"
|
||||||
)) {
|
)) {
|
||||||
// create folder closure.
|
|
||||||
} uploadFile: {
|
|
||||||
// upload file closure.
|
// upload file closure.
|
||||||
} showProfile: {
|
} showProfile: {
|
||||||
// show profile closure.
|
// show profile closure.
|
||||||
|
Loading…
x
Reference in New Issue
Block a user