Added swipe actions to all the dummy items in the BrowseView view.

This commit is contained in:
Javier Cicchelli 2022-12-03 08:19:48 +01:00
parent 7c5aed8b8c
commit c9b148a2ff

View File

@ -12,50 +12,79 @@ struct BrowseView: View {
var body: some View { var body: some View {
List { List {
Group { Group {
FolderItem(name: "Some folder #1 name") Group {
FolderItem(name: "Some folder #2 name") FolderItem(name: "Some folder #1 name")
FolderItem(name: "Some folder #3 name") FolderItem(name: "Some folder #2 name")
FolderItem(name: "Some folder #4 name") FolderItem(name: "Some folder #3 name")
FolderItem(name: "Some folder #5 name") FolderItem(name: "Some folder #4 name")
FolderItem(name: "Some folder #6 name") FolderItem(name: "Some folder #5 name")
FolderItem(name: "Some folder #7 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"
)
}
} }
Group { .swipeActions(
DocumentItem( edge: .trailing,
name: "Some document #1 name", allowsFullSwipe: true
lastModified: "3 months ago", ) {
fileSize: "1,23 Mbytes" Button {
) // ...
DocumentItem( } label: {
name: "Some document #2 name", Label {
lastModified: "2 years ago", Text("Delete item")
fileSize: "123 Kbytes" } icon: {
) Image.trash
DocumentItem( }
name: "Some document #3 name", }
lastModified: "13 days ago", .tint(.red)
fileSize: "12 bytes"
) // TODO: allow download only if item is a file.
DocumentItem( Button {
name: "Some document #4 name", // ...
lastModified: "13 hours ago", } label: {
fileSize: "12,3 Gbytes" Label {
) Text("Download item")
DocumentItem( } icon: {
name: "Some document #5 name", Image.download
lastModified: "13 minutes ago", }
fileSize: "123 Tbytes" }
) .tint(.orange)
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"
)
} }
} }
.listStyle(.inset) .listStyle(.inset)
@ -78,6 +107,8 @@ struct BrowseView: View {
private extension Image { private extension Image {
static let profile = Image(systemName: "person.crop.circle.fill") static let profile = Image(systemName: "person.crop.circle.fill")
static let trash = Image(systemName: "trash")
static let download = Image(systemName: "arrow.down.doc")
} }
// MARK: - Previews // MARK: - Previews