Feat: Integrate List component into example app menu

- Add .list case to DemoPage enum
- Add ListPage to menu with shortcut 9
- Shift Spinners to shortcut 0
- Update status bar menu range to include all shortcuts
- 617 tests passing
This commit is contained in:
phranck
2026-02-06 21:02:14 +01:00
parent 7ea5e51478
commit 924492f46b
2 changed files with 35 additions and 26 deletions
+21 -13
View File
@@ -19,6 +19,7 @@ enum DemoPage: Int, CaseIterable {
case buttons
case toggles
case radioButtons
case list
case spinners
}
@@ -49,14 +50,18 @@ struct ContentView: View {
return true // Consumed
}
return false // Let default handler exit the app
case .character("8"):
// Quick jump to Radio Buttons
currentPage = .radioButtons
return true
case .character("9"):
// Quick jump to Spinners
currentPage = .spinners
return true
case .character("8"):
// Quick jump to Radio Buttons
currentPage = .radioButtons
return true
case .character("9"):
// Quick jump to List
currentPage = .list
return true
case .character("0"):
// Quick jump to Spinners
currentPage = .spinners
return true
default:
return false // Let other handlers process
}
@@ -68,11 +73,11 @@ struct ContentView: View {
switch page {
case .menu:
MainMenuPage(currentPage: $currentPage, menuSelection: $menuSelection)
.statusBarItems {
StatusBarItem(shortcut: Shortcut.arrowsUpDown, label: "nav")
StatusBarItem(shortcut: Shortcut.enter, label: "select", key: .enter)
StatusBarItem(shortcut: Shortcut.range("1", "8"), label: "jump")
}
.statusBarItems {
StatusBarItem(shortcut: Shortcut.arrowsUpDown, label: "nav")
StatusBarItem(shortcut: Shortcut.enter, label: "select", key: .enter)
StatusBarItem(shortcut: Shortcut.range("1", "9") + ", 0", label: "jump")
}
case .textStyles:
TextStylesPage()
.statusBarItems(subPageItems(pageSetter: pageSetter))
@@ -96,6 +101,9 @@ struct ContentView: View {
case .radioButtons:
RadioButtonPage()
.statusBarItems(subPageItems(pageSetter: pageSetter))
case .list:
ListPage()
.statusBarItems(subPageItems(pageSetter: pageSetter))
case .spinners:
SpinnersPage()
.statusBarItems(subPageItems(pageSetter: pageSetter))
+14 -13
View File
@@ -50,19 +50,20 @@ struct MainMenuPage: View {
HStack {
Spacer()
Menu(
title: "Select a Demo",
items: [
MenuItem(label: "Text Styles", shortcut: "1"),
MenuItem(label: "Colors", shortcut: "2"),
MenuItem(label: "Container Views", shortcut: "3"),
MenuItem(label: "Overlays & Modals", shortcut: "4"),
MenuItem(label: "Layout System", shortcut: "5"),
MenuItem(label: "Buttons & Focus", shortcut: "6"),
MenuItem(label: "Toggles & Checkboxes", shortcut: "7"),
MenuItem(label: "Radio Buttons", shortcut: "8"),
MenuItem(label: "Spinners", shortcut: "9"),
],
Menu(
title: "Select a Demo",
items: [
MenuItem(label: "Text Styles", shortcut: "1"),
MenuItem(label: "Colors", shortcut: "2"),
MenuItem(label: "Container Views", shortcut: "3"),
MenuItem(label: "Overlays & Modals", shortcut: "4"),
MenuItem(label: "Layout System", shortcut: "5"),
MenuItem(label: "Buttons & Focus", shortcut: "6"),
MenuItem(label: "Toggles & Checkboxes", shortcut: "7"),
MenuItem(label: "Radio Buttons", shortcut: "8"),
MenuItem(label: "Scrollable List", shortcut: "9"),
MenuItem(label: "Spinners", shortcut: "0"),
],
selection: $menuSelection,
onSelect: { index in
// Navigate to the selected page