aboutsummaryrefslogtreecommitdiff
path: root/Map/Presentation/Base Components/EvolutionPicker/EvolutionPickerMenu.swift
diff options
context:
space:
mode:
Diffstat (limited to 'Map/Presentation/Base Components/EvolutionPicker/EvolutionPickerMenu.swift')
-rw-r--r--Map/Presentation/Base Components/EvolutionPicker/EvolutionPickerMenu.swift81
1 files changed, 81 insertions, 0 deletions
diff --git a/Map/Presentation/Base Components/EvolutionPicker/EvolutionPickerMenu.swift b/Map/Presentation/Base Components/EvolutionPicker/EvolutionPickerMenu.swift
new file mode 100644
index 0000000..3a396aa
--- /dev/null
+++ b/Map/Presentation/Base Components/EvolutionPicker/EvolutionPickerMenu.swift
@@ -0,0 +1,81 @@
+import SwiftUI
+
+struct EvolutionPickerMenu: View {
+
+ @Binding var selectedEvolution: StageType
+
+ private func select(_ evolution: StageType) {
+ selectedEvolution = evolution
+ }
+
+ var body: some View {
+ VStack(alignment: .leading, spacing: 1.0) {
+ Section(header: EvolutionPickerMenuHeader(key: "stage_type.section.types")) {
+ ForEach(StageType.types) { stage in
+ EvolutionPickerMenuItem(stage: stage, isSelected: selectedEvolution == stage)
+ .onTapGesture {
+ selectedEvolution = stage
+ }
+ }
+ }
+ Section(header: EvolutionPickerMenuHeader(key: "stage_type.section.characteristics")) {
+ ForEach(StageType.characteristics) { stage in
+ EvolutionPickerMenuItem(stage: stage, isSelected: selectedEvolution == stage)
+ .onTapGesture {
+ selectedEvolution = stage
+ }
+ }
+ }
+ Section(header: EvolutionPickerMenuHeader(key: "stage_type.section.general_properties")) {
+ ForEach(StageType.properties) { stage in
+ EvolutionPickerMenuItem(stage: stage, isSelected: selectedEvolution == stage)
+ .onTapGesture {
+ selectedEvolution = stage
+ }
+ }
+ }
+ Section(header: EvolutionPickerMenuHeader(key: "stage_type.section.other")) {
+ ForEach(StageType.custom) { stage in
+ EvolutionPickerMenuItem(stage: stage, isSelected: selectedEvolution == stage)
+ .onTapGesture {
+ selectedEvolution = stage
+ }
+ }
+ }
+ }
+ .padding(Dimensions.Spacing.coziest)
+ .ignoresSafeArea()
+
+ }
+}
+
+#Preview {
+ EvolutionPickerMenu(selectedEvolution: .constant(.ubiquity))
+}
+
+/*
+Picker(selection: $selectedEvolution) {
+ Divider()
+ ForEach(StageType.characteristics) { stage in
+ Text(Stage.title(stage))
+ .font(selectedEvolution == stage ? .Theme.Body.emphasized : .Theme.Body.regular)
+ .tag(stage)
+ }
+ Divider()
+ ForEach(StageType.properties) { stage in
+ Text(Stage.title(stage))
+ .font(selectedEvolution == stage ? .Theme.Body.emphasized : .Theme.Body.regular)
+ .tag(stage)
+ }
+ Divider()
+ ForEach(StageType.custom) { stage in
+ Text(Stage.title(stage))
+ .font(selectedEvolution == stage ? .Theme.Body.emphasized : .Theme.Body.regular)
+ .tag(stage)
+ }
+} label: {
+ Label("evolution_picker.label", image: "Icons/Evolution")
+ .font(.Theme.Body.regular)
+}.padding(.horizontal, Dimensions.Spacing.regular)
+ .padding(.vertical, Dimensions.Spacing.cozy)
+ */