diff --git a/assets/icons/icon-ceklis-outline.png b/assets/icons/icon-ceklis-outline.png new file mode 100644 index 0000000..bb47c97 Binary files /dev/null and b/assets/icons/icon-ceklis-outline.png differ diff --git a/lib/application/assets/path_assets.dart b/lib/application/assets/path_assets.dart index 9bccc8c..bd69ff6 100644 --- a/lib/application/assets/path_assets.dart +++ b/lib/application/assets/path_assets.dart @@ -33,6 +33,8 @@ class PathAssets { static const String iconMoneyReceive = 'assets/icons/icon-money-receive.png'; static const String iconCoins = 'assets/icons/icon-coins.png'; static const String iconQuestion = 'assets/icons/icon-question.png'; + static const String iconChecklistOutlined = + 'assets/icons/icon-ceklis-outline.png'; /// IMAGE static const String imgSplashLogo = 'assets/images/splash-logo.png'; diff --git a/lib/application/component/list_tile/list_tile_view.dart b/lib/application/component/list_tile/list_tile_view.dart new file mode 100644 index 0000000..683e277 --- /dev/null +++ b/lib/application/component/list_tile/list_tile_view.dart @@ -0,0 +1,70 @@ +import 'package:cims_apps/application/assets/path_assets.dart'; +import 'package:cims_apps/application/component/image/image_view.dart'; +import 'package:cims_apps/application/theme/color_palette.dart'; +import 'package:cims_apps/core/utils/size_config.dart'; +import 'package:flutter/material.dart'; + +class ListTileView extends StatelessWidget { + final String title; + final VoidCallback? onPressed; + final Widget? prefixIcon, suffixIcon; + final Color? colorTitle; + const ListTileView( + {Key? key, + required this.title, + this.onPressed, + this.prefixIcon, + this.suffixIcon, + this.colorTitle}) + : super(key: key); + + @override + Widget build(BuildContext context) { + return Container( + width: SizeConfig.width, + padding: const EdgeInsets.symmetric(vertical: 16.0, horizontal: 8.0), + margin: const EdgeInsets.symmetric(vertical: 16.0), + decoration: BoxDecoration( + color: ColorPalette.blue50, + borderRadius: BorderRadius.circular(10), + border: Border.all( + color: ColorPalette.greyLights, + width: 1, + ), + ), + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + prefixIcon ?? + const ImageView( + image: PathAssets.iconChecklistOutlined, + width: 38, + height: 38, + ), + const SizedBox( + width: 16, + ), + Expanded( + child: Text( + title, + style: TextStyle( + fontWeight: FontWeight.w600, + color: colorTitle ?? ColorPalette.slate500, + ), + ), + ), + suffixIcon != null + ? IconButton( + onPressed: onPressed, + icon: const Icon( + Icons.arrow_forward_ios, + color: ColorPalette.primary, + size: 20, + ), + ) + : const SizedBox(), + ], + ), + ); + } +} diff --git a/lib/features/auth/registration/view/submission_data/data_bank/confirm_bank_account.dart b/lib/features/auth/registration/view/submission_data/data_bank/confirm_bank_account.dart new file mode 100644 index 0000000..272e284 --- /dev/null +++ b/lib/features/auth/registration/view/submission_data/data_bank/confirm_bank_account.dart @@ -0,0 +1,112 @@ +import 'package:cims_apps/application/component/button/button_back.dart'; +import 'package:cims_apps/application/component/button/button_view.dart'; +import 'package:cims_apps/application/component/list_tile/list_tile_view.dart'; +import 'package:cims_apps/application/component/text_caption/text_caption.dart'; +import 'package:cims_apps/application/theme/color_palette.dart'; +import 'package:cims_apps/core/route/route.dart'; +import 'package:cims_apps/core/utils/size_config.dart'; +import 'package:cims_apps/features/auth/registration/view/submission_data/submission_parent.dart'; +import 'package:flutter/material.dart'; + +class ConfirmBankAccount extends StatelessWidget { + const ConfirmBankAccount({Key? key}) : super(key: key); + + @override + Widget build(BuildContext context) { + List listData = [ + {'title': 'Bank Name', 'subtitle': 'Bank Mandiri'}, + {'title': 'Account Number', 'subtitle': '123002212084'}, + {'title': 'Account Owner Name', 'subtitle': 'Muhamad Rosyidin'}, + {'title': 'Name on ID card', 'subtitle': 'Muhamad Rosyidin'}, + ]; + return Scaffold( + appBar: AppBar( + toolbarHeight: 70, + backgroundColor: Colors.white, + surfaceTintColor: Colors.white, + automaticallyImplyLeading: false, + title: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + const ButtonBack(), + const Text('Registration'), + SizedBox( + width: SizeConfig.width * 0.1, + ) + ], + ), + shape: const RoundedRectangleBorder( + side: BorderSide(color: ColorPalette.slate200)), + ), + body: SingleChildScrollView( + padding: const EdgeInsets.all(16.0), + child: SizedBox( + height: SizeConfig.height * .85, + child: Column( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + const TextCaption(title: 'Bank account confirmation'), + SizedBox( + height: SizeConfig.height * .6, + child: Column( + mainAxisAlignment: MainAxisAlignment.start, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + ...listData.map((e) { + return Padding( + padding: const EdgeInsets.only(bottom: 16.0), + child: Column( + mainAxisAlignment: MainAxisAlignment.start, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + e['title'], + style: const TextStyle( + color: ColorPalette.slate400, fontSize: 16), + ), + Text( + e['subtitle'], + style: const TextStyle( + fontSize: 16, + color: ColorPalette.slate800, + fontWeight: FontWeight.w600), + ), + ], + ), + ); + }).toList(), + const ListTileView( + title: + 'Make sure your data is correct as it will affect the disbursement process', + ), + ], + ), + ), + Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + ButtonView( + name: 'Recheck', + isOutlined: true, + width: SizeConfig.width * .42, + onPressed: () { + Navigator.pop(context); + }, + ), + ButtonView( + name: 'Confirm', + width: SizeConfig.width * .42, + onPressed: () { + routePush(context, page: const SubmissionParent()); + }, + ), + ], + ) + ], + ), + ), + ), + ); + } +} diff --git a/lib/features/auth/registration/view/submission_data/data_bank/submit_bank_account.dart b/lib/features/auth/registration/view/submission_data/data_bank/submit_bank_account.dart index d0618be..7697f92 100644 --- a/lib/features/auth/registration/view/submission_data/data_bank/submit_bank_account.dart +++ b/lib/features/auth/registration/view/submission_data/data_bank/submit_bank_account.dart @@ -1,10 +1,12 @@ import 'package:cims_apps/application/assets/path_assets.dart'; +import 'package:cims_apps/application/component/button/button_view.dart'; import 'package:cims_apps/application/component/image/image_view.dart'; import 'package:cims_apps/application/component/select_form/select_form_view.dart'; import 'package:cims_apps/application/component/text_caption/text_caption.dart'; import 'package:cims_apps/application/component/text_form/text_form_view.dart'; import 'package:cims_apps/application/theme/color_palette.dart'; import 'package:cims_apps/core/route/route.dart'; +import 'package:cims_apps/features/auth/registration/view/submission_data/data_bank/confirm_bank_account.dart'; import 'package:cims_apps/features/auth/registration/view/submission_data/data_bank/guide_screen.dart'; import 'package:flutter/material.dart'; @@ -20,7 +22,7 @@ class SubmitBankAccount extends StatelessWidget { ItemSelectForm('key4', 'BANK MANDIRI'), ItemSelectForm('key5', 'CIMB NIAGA'), ]; - return SingleChildScrollView( + return SizedBox( child: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ @@ -48,6 +50,13 @@ class SubmitBankAccount extends StatelessWidget { style: TextStyle( color: ColorPalette.slate400, ), + ), + const Spacer(), + ButtonView( + name: 'Next', + onPressed: () { + routePush(context, page: ConfirmBankAccount()); + }, ) ], ), diff --git a/lib/features/auth/registration/view/submission_data/submission_parent.dart b/lib/features/auth/registration/view/submission_data/submission_parent.dart index cdaa065..b81c231 100644 --- a/lib/features/auth/registration/view/submission_data/submission_parent.dart +++ b/lib/features/auth/registration/view/submission_data/submission_parent.dart @@ -1,8 +1,10 @@ +import 'package:cims_apps/application/component/button/button_back.dart'; import 'package:cims_apps/application/component/button/button_view.dart'; import 'package:cims_apps/application/theme/color_palette.dart'; import 'package:cims_apps/core/route/route.dart'; import 'package:cims_apps/core/utils/size_config.dart'; import 'package:cims_apps/features/auth/registration/view/submission_data/data_bank/submit_bank_account.dart'; +import 'package:cims_apps/features/auth/registration/view/submission_data/risk_profile/risk_profile_view.dart'; import 'package:cims_apps/features/auth/registration/view/submission_data/submit_data_id_card.dart'; import 'package:cims_apps/features/auth/registration/view/submission_data/submit_photo_ktp.dart'; import 'package:cims_apps/features/auth/registration/view/submission_data/submit_email.dart'; @@ -55,9 +57,7 @@ class _SubmissionParentState extends State { child: Text("Step 7"), ); case 8: - return Container( - child: Text("Step 8"), - ); + return const RiskProfileView(); case 9: return Container( child: Text("Step 9"), @@ -79,7 +79,22 @@ class _SubmissionParentState extends State { }, child: Scaffold( appBar: AppBar( - title: const Text('Registration'), + toolbarHeight: 70, + backgroundColor: Colors.white, + surfaceTintColor: Colors.white, + automaticallyImplyLeading: false, + title: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + const ButtonBack(), + const Text('Registration'), + SizedBox( + width: SizeConfig.width * 0.1, + ) + ], + ), + shape: const RoundedRectangleBorder( + side: BorderSide(color: ColorPalette.slate200)), ), body: Stack( children: [ @@ -111,7 +126,8 @@ class _SubmissionParentState extends State { ), ), provider.getCurrentStep == 3 || - provider.getCurrentStep == 4 + provider.getCurrentStep == 4 || + provider.getCurrentStep == 6 ? const SizedBox() : Align( alignment: Alignment.bottomCenter, diff --git a/lib/features/dashboard/dashboard_public/view/dashboard_public_view.dart b/lib/features/dashboard/dashboard_public/view/dashboard_public_view.dart index c20971f..e320808 100644 --- a/lib/features/dashboard/dashboard_public/view/dashboard_public_view.dart +++ b/lib/features/dashboard/dashboard_public/view/dashboard_public_view.dart @@ -5,8 +5,8 @@ import 'package:cims_apps/application/theme/color_palette.dart'; import 'package:cims_apps/core/route/route.dart'; import 'package:cims_apps/core/utils/size_config.dart'; import 'package:cims_apps/features/auth/login/view/login_view.dart'; +import 'package:cims_apps/features/auth/registration/view/initial_registration_step.dart'; import 'package:cims_apps/features/auth/registration/view/registration_view.dart'; -import 'package:cims_apps/features/bottom_navigation_view.dart'; import 'package:flutter/material.dart'; class DashboardPublicView extends StatelessWidget { @@ -93,7 +93,9 @@ class DashboardPublicView extends StatelessWidget { image: PathAssets.iconGoogle, width: 26, ), - onPressed: () {}, + onPressed: () { + routePush(context, page: const InitialRegistrationStep()); + }, ), Row( mainAxisAlignment: MainAxisAlignment.spaceBetween,