mirror of
https://github.com/phranck/TUIkit.git
synced 2026-05-21 09:50:35 +00:00
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:
@@ -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))
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user