struct SelectHabitsView: View {

    @State private var selectedHabits: Set<String> = []

    let habits = ["H1", "H2", "H3"]

    var body: some View {
        List {
            ForEach(habits, id: \.self) { habit in
                HabitView(
                    habitatName: habit,
                    onSelect: { toggleSelection(for: habit) },
                    isSelected: isSelected(habit)
                )
            }
        }
    }

    func toggleSelection(for habit: String) {
        if selectedHabits.contains(habit) {
            selectedHabits.remove(habit)
        } else {
            selectedHabits.insert(habit)
        }
    }

    func isSelected(_ habit: String) -> Bool {
        selectedHabits.contains(habit)
    }
}

struct HabitView: View {

    var habitatName: String
    var onSelect: () -> Void
    var isSelected: Bool

    var body: some View {
        HStack {
            Text(habitatName)
            Spacer()
        }
            .onTapGesture {
                self.onSelect()
            }
            .background(isSelected ? Color.blue : Color.clear)
    }
}
