Files
archery-bookkeeper/lib/presentation/pages/settings_page.dart
T
Mikkeli Matlock c57418ea8b Add swipe-in side navigation with Main/Settings pages
Implements professional navigation structure with Material Design drawer:

- MainNavigationPage: Central navigation hub with AppBar and Drawer
- SettingsPage: Placeholder settings page for future configuration options
- Drawer navigation: Swipe-in side menu with Main (Scorer) and Settings options
- App title updates dynamically based on current page selection
- Clean architecture separating navigation from scoring logic

Navigation features:
- Material Design drawer with branded header showing 'Archery Bookkeeper Alpha 0.1'
- Icons for visual clarity (sports for scorer, settings for configuration)
- Selected state highlighting for current page
- Automatic drawer close on navigation selection
- Professional app description in drawer footer

Updated main.dart to use MainNavigationPage as entry point
Modified ScoringPage to work as embedded page without its own AppBar
Maintained all sophisticated end interaction behaviors within scoring context

This establishes the foundation for additional pages and features while
preserving the advanced scoring functionality implemented in the previous release.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-23 22:42:32 +09:00

52 lines
1.4 KiB
Dart

import 'package:flutter/material.dart';
class SettingsPage extends StatelessWidget {
const SettingsPage({super.key});
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: const Text('Settings'),
backgroundColor: Theme.of(context).colorScheme.inversePrimary,
),
body: const Padding(
padding: EdgeInsets.all(16.0),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Text(
'Settings',
style: TextStyle(
fontSize: 24,
fontWeight: FontWeight.bold,
),
),
SizedBox(height: 24),
Text(
'This is a placeholder settings page.',
style: TextStyle(
fontSize: 16,
color: Colors.grey,
),
),
SizedBox(height: 16),
Text(
'Future settings will include:',
style: TextStyle(
fontSize: 16,
fontWeight: FontWeight.w500,
),
),
SizedBox(height: 8),
Text('• Color scheme preferences'),
Text('• Default arrow counts'),
Text('• Score input preferences'),
Text('• Export settings'),
Text('• Session management'),
],
),
),
);
}
}