Optimizing for light mode. Selected accessory icons are tinted in the accent color

This commit is contained in:
Alexander Heinrich
2021-03-11 08:57:44 +01:00
committed by Milan Stute
parent 25dd8ac2d3
commit c3a4610b87
3 changed files with 12 additions and 11 deletions
@@ -14,6 +14,7 @@ struct AccessoryListEntry: View {
@Binding var accessoryColor: Color
@Binding var accessoryName: String
@Binding var alertType: OpenHaystackMainView.AlertType?
var isSelected: Bool
var delete: (Accessory) -> Void
var deployAccessoryToMicrobit: (Accessory) -> Void
var zoomOn: (Accessory) -> Void
@@ -37,7 +38,7 @@ struct AccessoryListEntry: View {
var body: some View {
HStack {
IconSelectionView(selectedImageName: $accessoryIcon, selectedColor: $accessoryColor)
IconSelectionView(selectedImageName: $accessoryIcon, selectedColor: $accessoryColor, isSelected: self.isSelected)
VStack(alignment: .leading) {
if self.editingName {
@@ -97,16 +98,11 @@ struct AccessoryListEntry: View {
}
struct AccessoryListEntry_Previews: PreviewProvider {
@StateObject static var accessory = PreviewData.accessories.first!
@State static var alertType: OpenHaystackMainView.AlertType?
static var previews: some View {
PreviewWrapper()
.frame(width: 300)
}
struct PreviewWrapper: View {
@StateObject var accessory = PreviewData.accessories.first!
@State var alertType: OpenHaystackMainView.AlertType?
var body: some View {
Group {
AccessoryListEntry(
accessory: accessory,
accessoryIcon: Binding(
@@ -122,10 +118,12 @@ struct AccessoryListEntry: View {
set: { accessory.name = $0 }
),
alertType: self.$alertType,
isSelected: false,
delete: { _ in () },
deployAccessoryToMicrobit: { _ in () },
zoomOn: { _ in () })
}
.frame(width: 300)
}
}
}
@@ -12,6 +12,7 @@ struct IconSelectionView: View {
@State var showImagePicker = false
@Binding var selectedImageName: String
@Binding var selectedColor: Color
var isSelected: Bool
var body: some View {
@@ -29,6 +30,7 @@ struct IconSelectionView: View {
ZStack {
Circle().fill(Color("PinColor"))
Image(systemName: self.selectedImageName)
.foregroundColor(self.isSelected ? Color.accentColor : nil)
}
)
.frame(width: 32, height: 32)
@@ -52,7 +54,7 @@ struct ColorSelectionView_Previews: PreviewProvider {
static var previews: some View {
Group {
IconSelectionView(selectedImageName: self.$selectedImageName, selectedColor: self.$selectedColor)
IconSelectionView(selectedImageName: self.$selectedImageName, selectedColor: self.$selectedColor, isSelected: false)
ImageSelectionList(selectedImageName: self.$selectedImageName, selectedColor: self.$selectedColor, dismiss: { () })
}
@@ -67,6 +67,7 @@ struct ManageAccessoriesView: View {
set: { accessory.name = $0 }
),
alertType: self.$alertType,
isSelected: self.focusedAccessory == accessory,
delete: self.delete(accessory:),
deployAccessoryToMicrobit: self.deploy(accessory:),
zoomOn: { self.focusedAccessory = $0 })