优化
This commit is contained in:
@@ -50,23 +50,31 @@ class CompleteScreen extends StatelessWidget {
|
||||
children: [
|
||||
const SizedBox(height: 40),
|
||||
|
||||
// Success Icon
|
||||
const Text(
|
||||
'✨',
|
||||
style: TextStyle(fontSize: 64),
|
||||
),
|
||||
|
||||
const SizedBox(height: 32),
|
||||
|
||||
// You focused for X minutes
|
||||
Text(
|
||||
l10n.youFocusedFor,
|
||||
style: AppTextStyles.headline,
|
||||
),
|
||||
const SizedBox(height: 8),
|
||||
Text(
|
||||
l10n.minutesValue(focusedMinutes, l10n.minutes(focusedMinutes)),
|
||||
style: AppTextStyles.largeNumber,
|
||||
// You focused for X minutes with success icon - left-right layout
|
||||
Row(
|
||||
mainAxisAlignment: MainAxisAlignment.center,
|
||||
crossAxisAlignment: CrossAxisAlignment.center,
|
||||
children: [
|
||||
// Star icon on the left
|
||||
const Text('✨', style: TextStyle(fontSize: 64)),
|
||||
const SizedBox(width: 20),
|
||||
// Text content on the right
|
||||
Column(
|
||||
mainAxisAlignment: MainAxisAlignment.center,
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
Text(l10n.youFocusedFor, style: AppTextStyles.headline),
|
||||
const SizedBox(height: 8),
|
||||
Text(
|
||||
l10n.minutesValue(
|
||||
focusedMinutes,
|
||||
l10n.minutes(focusedMinutes),
|
||||
),
|
||||
style: AppTextStyles.largeNumber,
|
||||
),
|
||||
],
|
||||
),
|
||||
],
|
||||
),
|
||||
|
||||
const SizedBox(height: 32),
|
||||
@@ -99,7 +107,10 @@ class CompleteScreen extends StatelessWidget {
|
||||
),
|
||||
const SizedBox(height: 12),
|
||||
Text(
|
||||
l10n.distractionsCount(todayDistractions, l10n.times(todayDistractions)),
|
||||
l10n.distractionsCount(
|
||||
todayDistractions,
|
||||
l10n.times(todayDistractions),
|
||||
),
|
||||
style: AppTextStyles.bodyText,
|
||||
),
|
||||
const SizedBox(height: 20),
|
||||
@@ -207,30 +218,29 @@ class CompleteScreen extends StatelessWidget {
|
||||
color: AppColors.primary,
|
||||
),
|
||||
),
|
||||
const Text(
|
||||
' ⚡',
|
||||
style: TextStyle(fontSize: 24),
|
||||
),
|
||||
const Text(' ⚡', style: TextStyle(fontSize: 24)),
|
||||
],
|
||||
),
|
||||
|
||||
const SizedBox(height: 16),
|
||||
Divider(thickness: 1, color: AppColors.textSecondary.withValues(alpha: 0.2)),
|
||||
Divider(
|
||||
thickness: 1,
|
||||
color: AppColors.textSecondary.withValues(alpha: 0.2),
|
||||
),
|
||||
const SizedBox(height: 12),
|
||||
|
||||
// Points breakdown
|
||||
_buildPointRow(
|
||||
l10n.basePoints,
|
||||
'+$basePoints',
|
||||
AppColors.success,
|
||||
),
|
||||
_buildPointRow(l10n.basePoints, '+$basePoints', AppColors.success),
|
||||
if (honestyBonus > 0) ...[
|
||||
const SizedBox(height: 8),
|
||||
_buildPointRow(
|
||||
l10n.honestyBonus,
|
||||
'+$honestyBonus',
|
||||
AppColors.success,
|
||||
subtitle: l10n.distractionsRecorded(distractionCount, l10n.distractions(distractionCount)),
|
||||
subtitle: l10n.distractionsRecorded(
|
||||
distractionCount,
|
||||
l10n.distractions(distractionCount),
|
||||
),
|
||||
),
|
||||
],
|
||||
],
|
||||
@@ -300,7 +310,10 @@ class CompleteScreen extends StatelessWidget {
|
||||
}
|
||||
|
||||
/// Build achievement unlocked cards
|
||||
List<Widget> _buildAchievementCards(BuildContext context, AppLocalizations l10n) {
|
||||
List<Widget> _buildAchievementCards(
|
||||
BuildContext context,
|
||||
AppLocalizations l10n,
|
||||
) {
|
||||
return newAchievements.map((achievementId) {
|
||||
final achievement = AchievementConfig.getById(achievementId);
|
||||
if (achievement == null) return const SizedBox.shrink();
|
||||
@@ -328,10 +341,7 @@ class CompleteScreen extends StatelessWidget {
|
||||
Row(
|
||||
mainAxisAlignment: MainAxisAlignment.center,
|
||||
children: [
|
||||
Text(
|
||||
achievement.icon,
|
||||
style: const TextStyle(fontSize: 32),
|
||||
),
|
||||
Text(achievement.icon, style: const TextStyle(fontSize: 32)),
|
||||
const SizedBox(width: 12),
|
||||
Text(
|
||||
l10n.achievementUnlocked,
|
||||
|
||||
Reference in New Issue
Block a user