diff --git a/OpenHaystack/OpenHaystack/HaystackApp/Views/AccessoryListEntry.swift b/OpenHaystack/OpenHaystack/HaystackApp/Views/AccessoryListEntry.swift index 6e0765a..1adc086 100644 --- a/OpenHaystack/OpenHaystack/HaystackApp/Views/AccessoryListEntry.swift +++ b/OpenHaystack/OpenHaystack/HaystackApp/Views/AccessoryListEntry.swift @@ -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) } } } diff --git a/OpenHaystack/OpenHaystack/HaystackApp/Views/IconSelectionView.swift b/OpenHaystack/OpenHaystack/HaystackApp/Views/IconSelectionView.swift index 470293c..e4187e4 100644 --- a/OpenHaystack/OpenHaystack/HaystackApp/Views/IconSelectionView.swift +++ b/OpenHaystack/OpenHaystack/HaystackApp/Views/IconSelectionView.swift @@ -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: { () }) } diff --git a/OpenHaystack/OpenHaystack/HaystackApp/Views/ManageAccessoriesView.swift b/OpenHaystack/OpenHaystack/HaystackApp/Views/ManageAccessoriesView.swift index 7aa2ff5..ed4ff32 100644 --- a/OpenHaystack/OpenHaystack/HaystackApp/Views/ManageAccessoriesView.swift +++ b/OpenHaystack/OpenHaystack/HaystackApp/Views/ManageAccessoriesView.swift @@ -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 })