Skip to content

Commit

Permalink
Send Works
Browse files Browse the repository at this point in the history
  • Loading branch information
Gerardo Guijarro committed Jul 14, 2023
1 parent 013a97d commit c2c97ba
Show file tree
Hide file tree
Showing 11 changed files with 310 additions and 59 deletions.
23 changes: 23 additions & 0 deletions lib/design/circle_with_icon/circle_with_icon.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
import 'package:flutter/cupertino.dart';

class CircleWithIcon extends StatelessWidget {
final Icon icon;
final Color circleColor;
final EdgeInsets padding;

const CircleWithIcon({
super.key,
required this.icon,
required this.circleColor,
required this.padding,
});

@override
Widget build(BuildContext context) {
return Container(
padding: padding,
decoration: BoxDecoration(color: circleColor, shape: BoxShape.circle),
child: icon,
);
}
}
16 changes: 16 additions & 0 deletions lib/design/circle_with_icon/color_arrow_up.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
import 'package:flutter/material.dart';
import 'package:hypha_wallet/design/circle_with_icon/circle_with_icon.dart';
import 'package:hypha_wallet/design/hypha_colors.dart';

class ColorArrowUp extends StatelessWidget {
const ColorArrowUp({super.key});

@override
Widget build(BuildContext context) {
return const CircleWithIcon(
icon: Icon(Icons.arrow_upward, color: Colors.white),
circleColor: HyphaColors.lightBlue,
padding: EdgeInsets.all(4),
);
}
}
2 changes: 1 addition & 1 deletion lib/ui/send/components/send_review_bottom_sheet.dart
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,12 @@ import 'package:hypha_wallet/design/background/hypha_half_background.dart';
import 'package:hypha_wallet/design/background/hypha_page_background.dart';
import 'package:hypha_wallet/design/buttons/button_type.dart';
import 'package:hypha_wallet/design/buttons/hypha_app_button.dart';
import 'package:hypha_wallet/design/circle_with_icon/color_arrow_up.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/send/components/send_to_user_row.dart';
import 'package:hypha_wallet/ui/send/interactor/send_bloc.dart';
import 'package:hypha_wallet/ui/shared/components/color_arrow_up.dart';

class SendReviewBottomSheet extends StatelessWidget {
const SendReviewBottomSheet({super.key});
Expand Down
153 changes: 153 additions & 0 deletions lib/ui/send/components/send_success_bottom_sheet.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,153 @@
import 'package:flutter/material.dart';
import 'package:flutter_bloc/flutter_bloc.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';
import 'package:hypha_wallet/design/buttons/hypha_app_button.dart';
import 'package:hypha_wallet/design/circle_with_icon/circle_with_icon.dart';
import 'package:hypha_wallet/design/circle_with_icon/color_arrow_up.dart';
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/send/components/send_to_user_row.dart';
import 'package:hypha_wallet/ui/send/interactor/send_bloc.dart';
import 'package:intl/intl.dart';

class SendSuccessBottomSheet extends StatelessWidget {
final String transactionId;

const SendSuccessBottomSheet({
super.key,
required this.transactionId,
});

@override
Widget build(BuildContext context) {
return HyphaPageBackground(
withGradient: true,
child: Column(
mainAxisSize: MainAxisSize.min,
children: [
Stack(
children: [
const HyphaHalfBackground(showTopBar: true, height: 120),
Padding(
padding: const EdgeInsets.only(top: 60, left: 24, right: 24, bottom: 24),
child: Column(
mainAxisSize: MainAxisSize.min,
children: [
BlocBuilder<SendBloc, SendState>(
builder: (context, state) {
return Stack(
children: [
HyphaAvatarImage(
imageRadius: 50,
imageFromUrl: state.tokenData.image,
name: state.tokenData.name,
),
const Positioned(bottom: 0, right: 0, child: ColorArrowUp()),
],
);
},
),
const SizedBox(height: 12),
BlocBuilder<SendBloc, SendState>(
builder: (context, state) {
return Text(
state.formattedAmount,
style: context.hyphaTextTheme.popsExtraLargeAndLight,
);
},
),
BlocBuilder<SendBloc, SendState>(
builder: (context, state) {
return Text(
state.tokenData.name,
style: context.hyphaTextTheme.ralMediumBody.copyWith(height: 0),
);
},
),
const SizedBox(height: 24),
HyphaCard(
padding: const EdgeInsets.all(20),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
Text(
'Transferred on',
style: context.hyphaTextTheme.ralMediumSmallNote.copyWith(color: HyphaColors.midGrey),
),
const SizedBox(width: 4),
Text(
DateFormat('h:mma | d MMM yyyy').format(DateTime.now()),
style: context.hyphaTextTheme.ralMediumSmallNote,
textAlign: TextAlign.right,
maxLines: 1,
overflow: TextOverflow.ellipsis,
),
],
),
const SizedBox(height: 22),
const HyphaDivider(),
const SizedBox(height: 22),
const SendToUserRow(imageRadius: 30),
const SizedBox(height: 22),
const HyphaDivider(),
const SizedBox(height: 22),
Text(
'Transaction ID',
style: context.hyphaTextTheme.ralMediumBody.copyWith(color: HyphaColors.midGrey),
textAlign: TextAlign.left,
),
Text(
transactionId,
style: context.hyphaTextTheme.ralMediumBody.copyWith(color: HyphaColors.primaryBlu),
textAlign: TextAlign.left,
),
const SizedBox(height: 22),
const HyphaDivider(),
const SizedBox(height: 16),
Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Text(
'Status',
style: context.hyphaTextTheme.ralMediumBody.copyWith(color: HyphaColors.midGrey),
),
Text('Successful', style: context.hyphaTextTheme.ralMediumBody),
],
),
const CircleWithIcon(
icon: Icon(Icons.check, color: Colors.white),
circleColor: HyphaColors.success,
padding: EdgeInsets.all(20),
),
],
)
],
),
),
const SizedBox(height: 56),
HyphaAppButton(
title: 'Close',
onPressed: () {
context.read<SendBloc>().add(const SendEvent.onSendTapped());
},
)
],
),
),
],
),
],
),
);
}
}
1 change: 0 additions & 1 deletion lib/ui/send/components/send_view.dart
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,6 @@ class SendView extends StatelessWidget {
return HyphaSafeBottomNavigationBar(
child: HyphaAppButton(
onPressed: () {
// GERE
showModalBottomSheet(
isScrollControlled: true,
clipBehavior: Clip.hardEdge,
Expand Down
2 changes: 1 addition & 1 deletion lib/ui/send/interactor/page_command.dart
Original file line number Diff line number Diff line change
Expand Up @@ -2,5 +2,5 @@ part of 'send_bloc.dart';

@freezed
class PageCommand with _$PageCommand {
const factory PageCommand.navigateToSuccess() = _NavigateTo;
const factory PageCommand.navigateToSendSuccess(String transactionId) = _NavigateToSendSuccess;
}
6 changes: 2 additions & 4 deletions lib/ui/send/interactor/send_bloc.dart
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ import 'package:hypha_wallet/core/extension/scope_functions.dart';
import 'package:hypha_wallet/core/logging/log_helper.dart';
import 'package:hypha_wallet/core/network/models/user_profile_data.dart';
import 'package:hypha_wallet/ui/architecture/interactor/page_states.dart';
import 'package:hypha_wallet/ui/architecture/result/result.dart';
import 'package:hypha_wallet/ui/send/data/amount_percentage.dart';
import 'package:hypha_wallet/ui/send/data/keypad_key.dart';
import 'package:hypha_wallet/ui/send/usecases/send_token_use_case.dart';
Expand Down Expand Up @@ -87,10 +88,7 @@ class SendBloc extends Bloc<SendEvent, SendState> {
);

if(result.isValue) {
emit(state.copyWith(isSendButtonLoading: false));
/// Navigate to success
// TODO(gguij002): DOET
LogHelper.d('Gery: SENT SUCCESS ');
emit(state.copyWith(isSendButtonLoading: false, command: PageCommand.navigateToSendSuccess(result.valueOrCrash)));
} else {
emit(state.copyWith(isSendButtonLoading: false));
await _errorHandlerManager.handlerError(result.asError!.error);
Expand Down
Loading

0 comments on commit c2c97ba

Please sign in to comment.