115 lines
3.6 KiB
Swift
115 lines
3.6 KiB
Swift
//
|
|
// BrowseView.swift
|
|
// Browse
|
|
//
|
|
// Created by Javier Cicchelli on 03/12/2022.
|
|
// Copyright © 2022 Röck+Cöde. All rights reserved.
|
|
//
|
|
|
|
import SwiftUI
|
|
|
|
struct BrowseView: View {
|
|
var body: some View {
|
|
List {
|
|
Group {
|
|
Group {
|
|
FolderItem(name: "Some folder #1 name")
|
|
FolderItem(name: "Some folder #2 name")
|
|
FolderItem(name: "Some folder #3 name")
|
|
FolderItem(name: "Some folder #4 name")
|
|
FolderItem(name: "Some folder #5 name")
|
|
FolderItem(name: "Some folder #6 name")
|
|
FolderItem(name: "Some folder #7 name")
|
|
}
|
|
Group {
|
|
DocumentItem(
|
|
name: "Some document #1 name",
|
|
lastModified: "3 months ago",
|
|
fileSize: "1,23 Mbytes"
|
|
)
|
|
DocumentItem(
|
|
name: "Some document #2 name",
|
|
lastModified: "2 years ago",
|
|
fileSize: "123 Kbytes"
|
|
)
|
|
DocumentItem(
|
|
name: "Some document #3 name",
|
|
lastModified: "13 days ago",
|
|
fileSize: "12 bytes"
|
|
)
|
|
DocumentItem(
|
|
name: "Some document #4 name",
|
|
lastModified: "13 hours ago",
|
|
fileSize: "12,3 Gbytes"
|
|
)
|
|
DocumentItem(
|
|
name: "Some document #5 name",
|
|
lastModified: "13 minutes ago",
|
|
fileSize: "123 Tbytes"
|
|
)
|
|
DocumentItem(
|
|
name: "Some document #6 name",
|
|
lastModified: "13 seconds ago",
|
|
fileSize: "123 Tbytes"
|
|
)
|
|
DocumentItem(
|
|
name: "Some document #7 name",
|
|
lastModified: "13 nanoseconds ago",
|
|
fileSize: "123 Tbytes"
|
|
)
|
|
}
|
|
}
|
|
.swipeActions(
|
|
edge: .trailing,
|
|
allowsFullSwipe: true
|
|
) {
|
|
Button {
|
|
// TODO: Implement the removal of the item from the API.
|
|
} label: {
|
|
Label {
|
|
Text("Delete item")
|
|
} icon: {
|
|
Image.trash
|
|
}
|
|
}
|
|
.tint(.red)
|
|
|
|
// TODO: allow download only if item is a file.
|
|
Button {
|
|
// TODO: Implement the downloading of the data of the item from the API into the device.
|
|
} label: {
|
|
Label {
|
|
Text("Download item")
|
|
} icon: {
|
|
Image.download
|
|
}
|
|
}
|
|
.tint(.orange)
|
|
}
|
|
}
|
|
.listStyle(.inset)
|
|
.background(Color.red)
|
|
.navigationTitle("Folder name")
|
|
.toolbar {
|
|
BrowseToolbar()
|
|
}
|
|
}
|
|
}
|
|
|
|
// MARK: - Image+Constants
|
|
|
|
private extension Image {
|
|
static let trash = Image(systemName: "trash")
|
|
static let download = Image(systemName: "arrow.down.doc")
|
|
}
|
|
|
|
// MARK: - Previews
|
|
|
|
struct BrowseView_Previews: PreviewProvider {
|
|
static var previews: some View {
|
|
NavigationView {
|
|
BrowseView()
|
|
}
|
|
}
|
|
}
|