Clear active state on arrow count switch and simplify dialog
- Adds _disarmActiveState() to clear selection and retract keypad after mode switch - Simplifies 'Keep scores?' dialog to just title and Yes/No buttons - Prevents confusing active end highlighting after rule changes Note: Hardcoded strings identified for future localization setup 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -88,20 +88,15 @@ class _ScoringPageState extends State<ScoringPage> with SingleTickerProviderStat
|
||||
context: context,
|
||||
builder: (BuildContext context) {
|
||||
return AlertDialog(
|
||||
title: const Text('Keep current scores?'),
|
||||
content: const Text(
|
||||
'You have existing scores on the scorecard. Do you want to keep them when switching arrow count modes?\n\n'
|
||||
'• Yes: Existing scores will be preserved\n'
|
||||
'• No: All scores will be cleared',
|
||||
),
|
||||
title: const Text('Keep scores?'),
|
||||
actions: [
|
||||
TextButton(
|
||||
onPressed: () => Navigator.of(context).pop(false),
|
||||
child: const Text('No - Clear scores'),
|
||||
child: const Text('No'),
|
||||
),
|
||||
TextButton(
|
||||
onPressed: () => Navigator.of(context).pop(true),
|
||||
child: const Text('Yes - Keep scores'),
|
||||
child: const Text('Yes'),
|
||||
),
|
||||
],
|
||||
);
|
||||
@@ -127,6 +122,9 @@ class _ScoringPageState extends State<ScoringPage> with SingleTickerProviderStat
|
||||
_initializeScores();
|
||||
}
|
||||
|
||||
// Clear active state and retract keypad
|
||||
_disarmActiveState();
|
||||
|
||||
// Notify parent of changes
|
||||
widget.onArrowsPerEndChanged(arrows);
|
||||
widget.onScoresUpdated(scores);
|
||||
@@ -139,6 +137,9 @@ class _ScoringPageState extends State<ScoringPage> with SingleTickerProviderStat
|
||||
endsPerSet = arrows == 3 ? 10 : 6;
|
||||
_initializeScores();
|
||||
|
||||
// Clear active state and retract keypad
|
||||
_disarmActiveState();
|
||||
|
||||
// Notify parent of changes
|
||||
widget.onArrowsPerEndChanged(arrows);
|
||||
widget.onScoresUpdated(scores);
|
||||
@@ -281,6 +282,16 @@ class _ScoringPageState extends State<ScoringPage> with SingleTickerProviderStat
|
||||
});
|
||||
}
|
||||
|
||||
void _disarmActiveState() {
|
||||
if (isKeypadVisible) {
|
||||
_animationController.reverse();
|
||||
}
|
||||
isKeypadVisible = false;
|
||||
activeEndIndex = null;
|
||||
selectedRow = -1;
|
||||
selectedColumn = -1;
|
||||
}
|
||||
|
||||
void _onBackgroundTapped() {
|
||||
if (isKeypadVisible) {
|
||||
_animationController.reverse().then((_) {
|
||||
|
||||
Reference in New Issue
Block a user