Implemented the stack navigation for the DocumentItem views in the BrowseView view for the Browse module.

This commit is contained in:
Javier Cicchelli 2022-12-16 01:18:01 +01:00
parent 3ec892ae93
commit 6391419756

View File

@ -89,13 +89,7 @@ private extension BrowseView {
case is Folder:
makeFolderItem(for: item)
case is Document:
DocumentItem(item: item) {
// TODO: show the item id in a viewer...
} download: {
// TODO: download the item id from the backend.
} delete: {
// TODO: delete the item id from the backend.
}
makeDocumentItem(for: item)
default:
EmptyView()
}
@ -120,27 +114,50 @@ private extension BrowseView {
@ViewBuilder func makeFolderItem(
for item: any FileSystemItemIdentifiable
) -> some View {
let folder = Folder(
id: item.id,
name: item.name
)
FolderItem(item: item) {
stack = .browse(folder)
} delete: {
// TODO: delete the item id from the backend.
if let folder = item as? Folder {
FolderItem(item: item) {
stack = .browse(folder)
} delete: {
// TODO: delete the item id from the backend.
}
.navigate(
to: BrowseView(
folder: folder,
createFolder: createFolder,
uploadFile: uploadFile,
showProfile: showProfile,
login: login
),
tagged: .browse(folder),
in: $stack
)
} else {
EmptyView()
}
}
@ViewBuilder func makeDocumentItem(
for item: any FileSystemItemIdentifiable
) -> some View {
if let document = item as? Document {
DocumentItem(item: item) {
stack = .open(document)
} download: {
// TODO: download the item id from the backend.
} delete: {
// TODO: delete the item id from the backend.
}
.navigate(
to: DocumentView(
document: document,
login: login
),
tagged: .open(document),
in: $stack
)
} else {
EmptyView()
}
.navigate(
to: BrowseView(
folder: folder,
createFolder: createFolder,
uploadFile: uploadFile,
showProfile: showProfile,
login: login
),
tagged: .browse(folder),
in: $stack
)
}
}