diff --git a/lib/src/features/auth/ui/onboarding/onboarding_sequence.dart b/lib/src/features/auth/ui/onboarding/onboarding_sequence.dart index ad815ba0..4b20e249 100644 --- a/lib/src/features/auth/ui/onboarding/onboarding_sequence.dart +++ b/lib/src/features/auth/ui/onboarding/onboarding_sequence.dart @@ -1,4 +1,5 @@ import 'package:flutter/material.dart'; +import 'package:spark/src/core/design_system/components/atoms/buttons/app_button.dart'; import 'package:spark/src/core/l10n/app_localizations.dart'; import 'package:spark/src/features/auth/ui/onboarding/onboarding_step.dart'; @@ -133,9 +134,12 @@ class _OnboardingSequenceState extends State { children: [ if (_currentIndex > 0) Expanded( - child: OutlinedButton( + child: AppButton( + label: l10n.buttonBack, onPressed: _goToPrevious, - child: Text(l10n.buttonBack), + variant: AppButtonVariant.neutral, + size: AppButtonSize.medium, + fullWidth: true, ), ) else @@ -143,23 +147,27 @@ class _OnboardingSequenceState extends State { const SizedBox(width: 12), Expanded( flex: 2, - child: ElevatedButton( + child: AppButton( + label: _currentIndex < widget.steps.length - 1 + ? l10n.buttonContinue + : l10n.buttonConfirm, onPressed: widget.isCompleteLoading ? null : _goToNext, - child: + size: AppButtonSize.medium, + fullWidth: true, + leading: widget.isCompleteLoading && _currentIndex == widget.steps.length - 1 - ? const SizedBox( - width: 20, - height: 20, + ? SizedBox( + width: 18, + height: 18, child: CircularProgressIndicator( strokeWidth: 2, + color: colorScheme.onSurface.withValues( + alpha: 0.55, + ), ), ) - : Text( - _currentIndex < widget.steps.length - 1 - ? l10n.buttonContinue - : l10n.buttonConfirm, - ), + : null, ), ), ], diff --git a/lib/src/features/auth/ui/onboarding/steps/onboarding_avatar_step.dart b/lib/src/features/auth/ui/onboarding/steps/onboarding_avatar_step.dart index c60d865c..39a541dd 100644 --- a/lib/src/features/auth/ui/onboarding/steps/onboarding_avatar_step.dart +++ b/lib/src/features/auth/ui/onboarding/steps/onboarding_avatar_step.dart @@ -1,4 +1,5 @@ import 'package:flutter/material.dart'; +import 'package:spark/src/core/design_system/components/atoms/buttons/app_button.dart'; import 'package:spark/src/core/l10n/app_localizations.dart'; import 'package:spark/src/core/ui/widgets/default_profile_avatar.dart'; @@ -83,34 +84,36 @@ class _OnboardingAvatarStepState extends State { spacing: 10, runSpacing: 10, children: [ - OutlinedButton.icon( + AppButton( + label: l10n.buttonAdd, onPressed: widget.onPickAvatar, - style: OutlinedButton.styleFrom( - padding: const EdgeInsets.symmetric( - horizontal: 20, - vertical: 14, - ), - ), - icon: const Icon(Icons.add_a_photo_outlined), - label: Text(l10n.buttonAdd), + variant: AppButtonVariant.secondary, + size: AppButtonSize.compact, + leading: const Icon(Icons.add_a_photo_outlined, size: 18), ), if (widget.hasLocalAvatar) - TextButton.icon( + AppButton( + label: l10n.tooltipRevert, onPressed: widget.onRevertAvatar, - icon: const Icon(Icons.undo), - label: Text(l10n.tooltipRevert), + variant: AppButtonVariant.neutral, + size: AppButtonSize.compact, + leading: const Icon(Icons.undo, size: 18), ), if (widget.isAvatarActive) - TextButton.icon( + AppButton( + label: l10n.buttonRemove, onPressed: widget.onClearAvatar, - icon: const Icon(Icons.close), - label: Text(l10n.buttonRemove), + variant: AppButtonVariant.destructive, + size: AppButtonSize.compact, + leading: const Icon(Icons.close, size: 18), ), if (!widget.isAvatarActive && widget.hasInitialAvatar) - TextButton.icon( + AppButton( + label: l10n.onboardingUseBskyAvatar, onPressed: widget.onRevertAvatar, - icon: const Icon(Icons.undo), - label: Text(l10n.onboardingUseBskyAvatar), + variant: AppButtonVariant.neutral, + size: AppButtonSize.compact, + leading: const Icon(Icons.undo, size: 18), ), ], ), diff --git a/lib/src/features/auth/ui/pages/onboarding_page.dart b/lib/src/features/auth/ui/pages/onboarding_page.dart index d5cb3525..a0c38db0 100644 --- a/lib/src/features/auth/ui/pages/onboarding_page.dart +++ b/lib/src/features/auth/ui/pages/onboarding_page.dart @@ -1,6 +1,8 @@ import 'package:auto_route/auto_route.dart'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; +import 'package:spark/src/core/design_system/components/atoms/buttons/app_button.dart'; +import 'package:spark/src/core/design_system/components/atoms/buttons/app_leading_button.dart'; import 'package:spark/src/core/l10n/app_localizations.dart'; import 'package:spark/src/core/routing/app_router.dart'; import 'package:spark/src/features/auth/providers/onboarding_notifier.dart'; @@ -81,7 +83,7 @@ class _OnboardingPageState extends ConsumerState { elevation: 0, centerTitle: true, title: Text(l10n.pageTitleCompleteProfile), - leading: const AutoLeadingButton(), + leading: AppLeadingButton(tooltip: l10n.buttonBack), ), body: onboardingStateAsync.when( loading: () => const Center(child: CircularProgressIndicator()), @@ -91,9 +93,10 @@ class _OnboardingPageState extends ConsumerState { children: [ Text('${l10n.errorGeneric}: $err'), const SizedBox(height: 8), - ElevatedButton( + AppButton( + label: l10n.buttonRetry, onPressed: notifier.reloadProfile, - child: Text(l10n.buttonRetry), + size: AppButtonSize.compact, ), ], ),