Improved the FolderItem component to for the Browse module to support the folder swipe actions.
This commit is contained in:
parent
5c402f8958
commit
02c6626d94
@ -12,7 +12,8 @@ struct FolderItem: View {
|
|||||||
|
|
||||||
// MARK: Properties
|
// MARK: Properties
|
||||||
|
|
||||||
let name: String
|
let item: Model
|
||||||
|
let delete: ItemIdClosure
|
||||||
|
|
||||||
// MARK: Body
|
// MARK: Body
|
||||||
|
|
||||||
@ -22,7 +23,7 @@ struct FolderItem: View {
|
|||||||
.icon(size: 32)
|
.icon(size: 32)
|
||||||
.foregroundColor(.red)
|
.foregroundColor(.red)
|
||||||
|
|
||||||
Text(name)
|
Text(item.name)
|
||||||
.itemName()
|
.itemName()
|
||||||
|
|
||||||
Image.chevronRight
|
Image.chevronRight
|
||||||
@ -31,6 +32,24 @@ struct FolderItem: View {
|
|||||||
.font(.headline)
|
.font(.headline)
|
||||||
}
|
}
|
||||||
.padding(.vertical, 8)
|
.padding(.vertical, 8)
|
||||||
|
.swipeActions(
|
||||||
|
edge: .trailing,
|
||||||
|
allowsFullSwipe: true
|
||||||
|
) {
|
||||||
|
Button {
|
||||||
|
delete(item.id)
|
||||||
|
} label: {
|
||||||
|
Label {
|
||||||
|
Text(
|
||||||
|
"browse.swipe_action.delete_item.text",
|
||||||
|
bundle: .module
|
||||||
|
)
|
||||||
|
} icon: {
|
||||||
|
Image.trash
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.tint(.red)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -46,10 +65,20 @@ private extension Image {
|
|||||||
|
|
||||||
struct BrowseItem_Previews: PreviewProvider {
|
struct BrowseItem_Previews: PreviewProvider {
|
||||||
static var previews: some View {
|
static var previews: some View {
|
||||||
FolderItem(name: "Some folder name goes in here...")
|
FolderItem(item: Folder(
|
||||||
.previewDisplayName("Folder item")
|
id: "1234567890",
|
||||||
|
name: "Some folder name goes in here..."
|
||||||
|
)) { _ in
|
||||||
|
// delete closure with item id.
|
||||||
|
}
|
||||||
|
.previewDisplayName("Folder item")
|
||||||
|
|
||||||
FolderItem(name: "Some very, extremely long folder name goes in here...")
|
FolderItem(item: Folder(
|
||||||
.previewDisplayName("Folder item with long name")
|
id: "1234567890",
|
||||||
|
name: "Some very, extremely long folder name goes in here..."
|
||||||
|
)) { _ in
|
||||||
|
// delete closire with item id.
|
||||||
|
}
|
||||||
|
.previewDisplayName("Folder item with long name")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user