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>
This commit is contained in:
@@ -0,0 +1,52 @@
|
||||
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'),
|
||||
],
|
||||
),
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user