Skip to content

Commit

Permalink
Success navigation
Browse files Browse the repository at this point in the history
  • Loading branch information
Gerardo Guijarro committed Jul 14, 2023
1 parent c2c97ba commit 29e4d6c
Show file tree
Hide file tree
Showing 8 changed files with 90 additions and 39 deletions.
5 changes: 3 additions & 2 deletions lib/ui/bottom_navigation/hypha_bottom_navigation.dart
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,13 @@ import 'package:hypha_wallet/ui/bottom_navigation/components/bottom_navigation_v
import 'package:hypha_wallet/ui/bottom_navigation/interactor/bottom_navigation_bloc.dart';

class HyphaBottomNavigation extends StatelessWidget {
const HyphaBottomNavigation({super.key});
final int? initialPage;
const HyphaBottomNavigation({super.key, this.initialPage});

@override
Widget build(BuildContext context) {
return BlocProvider(
create: (context) => GetIt.I.get<BottomNavigationBloc>()..add(const BottomNavigationEvent.initial()),
create: (context) => GetIt.I.get<BottomNavigationBloc>()..add(BottomNavigationEvent.initial(initialPage)),
child: BlocListener<BottomNavigationBloc, BottomNavigationState>(
listenWhen: (previous, current) => previous.command != current.command,
listener: (context, state) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ import 'dart:async';

import 'package:bloc/bloc.dart';
import 'package:freezed_annotation/freezed_annotation.dart';
import 'package:hypha_wallet/core/extension/scope_functions.dart';
import 'package:hypha_wallet/ui/architecture/interactor/page_states.dart';

part 'bottom_navigation_bloc.freezed.dart';
Expand All @@ -16,7 +17,9 @@ class BottomNavigationBloc extends Bloc<BottomNavigationEvent, BottomNavigationS
on<_ClearPageCommand>((_, emit) => emit(state.copyWith(command: null)));
}

Future<void> _initial(_Initial event, Emitter<BottomNavigationState> emit) async {}
Future<void> _initial(_Initial event, Emitter<BottomNavigationState> emit) async {
event.initialPage?.let((self) => emit(state.copyWith(selectedPage: self)));
}

FutureOr<void> _onPageSelected(_OnPageSelected event, Emitter<BottomNavigationState> emit) {
emit(state.copyWith(selectedPage: event.index));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,21 +18,21 @@ final _privateConstructorUsedError = UnsupportedError(
mixin _$BottomNavigationEvent {
@optionalTypeArgs
TResult when<TResult extends Object?>({
required TResult Function() initial,
required TResult Function(int? initialPage) initial,
required TResult Function() clearPageCommand,
required TResult Function(int index) onPageSelected,
}) =>
throw _privateConstructorUsedError;
@optionalTypeArgs
TResult? whenOrNull<TResult extends Object?>({
TResult? Function()? initial,
TResult? Function(int? initialPage)? initial,
TResult? Function()? clearPageCommand,
TResult? Function(int index)? onPageSelected,
}) =>
throw _privateConstructorUsedError;
@optionalTypeArgs
TResult maybeWhen<TResult extends Object?>({
TResult Function()? initial,
TResult Function(int? initialPage)? initial,
TResult Function()? clearPageCommand,
TResult Function(int index)? onPageSelected,
required TResult orElse(),
Expand Down Expand Up @@ -86,6 +86,8 @@ abstract class _$$_InitialCopyWith<$Res> {
factory _$$_InitialCopyWith(
_$_Initial value, $Res Function(_$_Initial) then) =
__$$_InitialCopyWithImpl<$Res>;
@useResult
$Res call({int? initialPage});
}

/// @nodoc
Expand All @@ -94,57 +96,82 @@ class __$$_InitialCopyWithImpl<$Res>
implements _$$_InitialCopyWith<$Res> {
__$$_InitialCopyWithImpl(_$_Initial _value, $Res Function(_$_Initial) _then)
: super(_value, _then);

@pragma('vm:prefer-inline')
@override
$Res call({
Object? initialPage = freezed,
}) {
return _then(_$_Initial(
freezed == initialPage
? _value.initialPage
: initialPage // ignore: cast_nullable_to_non_nullable
as int?,
));
}
}

/// @nodoc
class _$_Initial implements _Initial {
const _$_Initial();
const _$_Initial(this.initialPage);

@override
final int? initialPage;

@override
String toString() {
return 'BottomNavigationEvent.initial()';
return 'BottomNavigationEvent.initial(initialPage: $initialPage)';
}

@override
bool operator ==(dynamic other) {
return identical(this, other) ||
(other.runtimeType == runtimeType && other is _$_Initial);
(other.runtimeType == runtimeType &&
other is _$_Initial &&
(identical(other.initialPage, initialPage) ||
other.initialPage == initialPage));
}

@override
int get hashCode => runtimeType.hashCode;
int get hashCode => Object.hash(runtimeType, initialPage);

@JsonKey(ignore: true)
@override
@pragma('vm:prefer-inline')
_$$_InitialCopyWith<_$_Initial> get copyWith =>
__$$_InitialCopyWithImpl<_$_Initial>(this, _$identity);

@override
@optionalTypeArgs
TResult when<TResult extends Object?>({
required TResult Function() initial,
required TResult Function(int? initialPage) initial,
required TResult Function() clearPageCommand,
required TResult Function(int index) onPageSelected,
}) {
return initial();
return initial(initialPage);
}

@override
@optionalTypeArgs
TResult? whenOrNull<TResult extends Object?>({
TResult? Function()? initial,
TResult? Function(int? initialPage)? initial,
TResult? Function()? clearPageCommand,
TResult? Function(int index)? onPageSelected,
}) {
return initial?.call();
return initial?.call(initialPage);
}

@override
@optionalTypeArgs
TResult maybeWhen<TResult extends Object?>({
TResult Function()? initial,
TResult Function(int? initialPage)? initial,
TResult Function()? clearPageCommand,
TResult Function(int index)? onPageSelected,
required TResult orElse(),
}) {
if (initial != null) {
return initial();
return initial(initialPage);
}
return orElse();
}
Expand Down Expand Up @@ -185,7 +212,12 @@ class _$_Initial implements _Initial {
}

abstract class _Initial implements BottomNavigationEvent {
const factory _Initial() = _$_Initial;
const factory _Initial(final int? initialPage) = _$_Initial;

int? get initialPage;
@JsonKey(ignore: true)
_$$_InitialCopyWith<_$_Initial> get copyWith =>
throw _privateConstructorUsedError;
}

/// @nodoc
Expand Down Expand Up @@ -226,7 +258,7 @@ class _$_ClearPageCommand implements _ClearPageCommand {
@override
@optionalTypeArgs
TResult when<TResult extends Object?>({
required TResult Function() initial,
required TResult Function(int? initialPage) initial,
required TResult Function() clearPageCommand,
required TResult Function(int index) onPageSelected,
}) {
Expand All @@ -236,7 +268,7 @@ class _$_ClearPageCommand implements _ClearPageCommand {
@override
@optionalTypeArgs
TResult? whenOrNull<TResult extends Object?>({
TResult? Function()? initial,
TResult? Function(int? initialPage)? initial,
TResult? Function()? clearPageCommand,
TResult? Function(int index)? onPageSelected,
}) {
Expand All @@ -246,7 +278,7 @@ class _$_ClearPageCommand implements _ClearPageCommand {
@override
@optionalTypeArgs
TResult maybeWhen<TResult extends Object?>({
TResult Function()? initial,
TResult Function(int? initialPage)? initial,
TResult Function()? clearPageCommand,
TResult Function(int index)? onPageSelected,
required TResult orElse(),
Expand Down Expand Up @@ -360,7 +392,7 @@ class _$_OnPageSelected implements _OnPageSelected {
@override
@optionalTypeArgs
TResult when<TResult extends Object?>({
required TResult Function() initial,
required TResult Function(int? initialPage) initial,
required TResult Function() clearPageCommand,
required TResult Function(int index) onPageSelected,
}) {
Expand All @@ -370,7 +402,7 @@ class _$_OnPageSelected implements _OnPageSelected {
@override
@optionalTypeArgs
TResult? whenOrNull<TResult extends Object?>({
TResult? Function()? initial,
TResult? Function(int? initialPage)? initial,
TResult? Function()? clearPageCommand,
TResult? Function(int index)? onPageSelected,
}) {
Expand All @@ -380,7 +412,7 @@ class _$_OnPageSelected implements _OnPageSelected {
@override
@optionalTypeArgs
TResult maybeWhen<TResult extends Object?>({
TResult Function()? initial,
TResult Function(int? initialPage)? initial,
TResult Function()? clearPageCommand,
TResult Function(int index)? onPageSelected,
required TResult orElse(),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ part of 'bottom_navigation_bloc.dart';

@freezed
class BottomNavigationEvent with _$BottomNavigationEvent {
const factory BottomNavigationEvent.initial() = _Initial;
const factory BottomNavigationEvent.initial(int? initialPage) = _Initial;
const factory BottomNavigationEvent.clearPageCommand() = _ClearPageCommand;
const factory BottomNavigationEvent.onPageSelected(int index) = _OnPageSelected;
}
5 changes: 4 additions & 1 deletion lib/ui/send/components/send_review_bottom_sheet.dart
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import 'package:flutter/material.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:get/get.dart';
import 'package:hypha_wallet/design/avatar_image/hypha_avatar_image.dart';
import 'package:hypha_wallet/design/background/hypha_half_background.dart';
import 'package:hypha_wallet/design/background/hypha_page_background.dart';
Expand Down Expand Up @@ -110,7 +111,9 @@ class SendReviewBottomSheet extends StatelessWidget {
HyphaAppButton(
title: 'Edit',
buttonType: ButtonType.secondary,
onPressed: () {},
onPressed: () {
Get.back();
},
),
const SizedBox(height: 16),
BlocBuilder<SendBloc, SendState>(
Expand Down
17 changes: 13 additions & 4 deletions lib/ui/send/components/send_success_bottom_sheet.dart
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import 'package:flutter/material.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:get/get.dart';
import 'package:hypha_wallet/design/avatar_image/hypha_avatar_image.dart';
import 'package:hypha_wallet/design/background/hypha_half_background.dart';
import 'package:hypha_wallet/design/background/hypha_page_background.dart';
Expand All @@ -10,8 +11,10 @@ import 'package:hypha_wallet/design/dividers/hypha_divider.dart';
import 'package:hypha_wallet/design/hypha_card.dart';
import 'package:hypha_wallet/design/hypha_colors.dart';
import 'package:hypha_wallet/design/themes/extensions/theme_extension_provider.dart';
import 'package:hypha_wallet/ui/bottom_navigation/hypha_bottom_navigation.dart';
import 'package:hypha_wallet/ui/send/components/send_to_user_row.dart';
import 'package:hypha_wallet/ui/send/interactor/send_bloc.dart';
import 'package:hypha_wallet/ui/token/token_details/token_details_page.dart';
import 'package:intl/intl.dart';

class SendSuccessBottomSheet extends StatelessWidget {
Expand Down Expand Up @@ -135,10 +138,16 @@ class SendSuccessBottomSheet extends StatelessWidget {
),
),
const SizedBox(height: 56),
HyphaAppButton(
title: 'Close',
onPressed: () {
context.read<SendBloc>().add(const SendEvent.onSendTapped());
BlocBuilder<SendBloc, SendState>(
builder: (context, state) {
return HyphaAppButton(
title: 'Close',
onPressed: () {
/// Navigate to home page, then to token details in the wallet page
Get.offAll(() => const HyphaBottomNavigation(initialPage: 1));
Get.to(TokensDetailsPage(data: state.tokenData));
},
);
},
)
],
Expand Down
17 changes: 9 additions & 8 deletions lib/ui/token/token_details/components/token_details_view.dart
Original file line number Diff line number Diff line change
Expand Up @@ -60,14 +60,15 @@ class TokenDetailsView extends StatelessWidget {
child: Row(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Expanded(
child: HyphaAppButton(
title: 'Receive',
onPressed: () {},
buttonType: ButtonType.secondary,
),
),
const SizedBox(width: 22),
// TODO(gguij): Complete receive
// Expanded(
// child: HyphaAppButton(
// title: 'Receive',
// onPressed: () {},
// buttonType: ButtonType.secondary,
// ),
// ),
// const SizedBox(width: 22),
Expanded(
child: BlocBuilder<TokenDetailsBloc, TokenDetailsState>(
builder: (context, state) {
Expand Down
6 changes: 4 additions & 2 deletions lib/ui/wallet/components/recent_transactions_widget.dart
Original file line number Diff line number Diff line change
Expand Up @@ -49,8 +49,10 @@ class RecentTransactionsWidget extends StatelessWidget {
child: HyphaCard(
child: Padding(
padding: const EdgeInsets.all(24),
child:
Text('You haven’t done any transaction yet', style: context.hyphaTextTheme.ralMediumSmallNote),
child: Text(
'You haven’t done any transaction yet',
style: context.hyphaTextTheme.ralMediumSmallNote,
),
),
),
);
Expand Down

0 comments on commit 29e4d6c

Please sign in to comment.