So here is all the code
Table(artViewModel.filteredArtPieces, selection: $selection, sortOrder: $sortOrder, columnCustomization: $columnCustomization) {
TableColumn("Image") { artPiece in
if let imageData = artPiece.artImage.first, let image = UIImage(data: imageData!) {
Image(uiImage: image)
.resizable()
.frame(width: 50, height: 50)
} else {
Image(systemName: "photo")
.resizable()
.frame(width: 50, height: 50)
}
}
.customizationID("Image")
TableColumn("Name", value: \.artName)
.customizationID("Name")
TableColumn ("Art ID", value: \.artPieceID) { artPiece in
Text(String(artPiece.artPieceID))
}
.customizationID("Art ID")
TableColumn ("Price", value: \.artPrice) { artPiece in
Text (formatMoneyDouble(artPiece.artPrice))
}
.customizationID("Price")
TableColumn ("Date", value: \.artcreateDate) { artPiece in
Text (artPiece.artcreateDate, style: .date)
}
// .resizable()
.customizationID("Date")
TableColumn("Artist", value: \.artistName)
.customizationID("Artist")
TableColumn("Meduim", value: \.artMedium)
.customizationID("Meduim")
TableColumn("Type", value: \.artType)
.customizationID("Type")
TableColumn("Status", value: \.artStatus)
.customizationID("Status")
TableColumn("Location", value: \.artLocation)
.customizationID("Location")
/* I want to create columns for this variable
var artDefinedFields: [ArtDefinedFields] = []
which is defined in the datasource . */
}
.tableStyle(.inset)
struct ArtDefinedFields: Identifiable, Codable, Hashable {
var id = UUID()
var name: String
var value: String
var isVisible: Bool
}