From ad6bd90e792367379b715fa1535ea04fd3aee1b4 Mon Sep 17 00:00:00 2001 From: Novian Andika Date: Thu, 5 Jan 2023 10:41:25 +0700 Subject: [PATCH] feat: better submit pengajuan with loading --- assets/images/home/send.zip | Bin 0 -> 4375 bytes .../views/insight_debitur_view.dart | 5 +- .../login-page/views/login_page_view.dart | 47 ------------ .../pengajuan_submit_analis_controller.dart | 11 ++- .../views/pengajuan_submit_analis_view.dart | 1 - .../pengutus_submit_controller.dart | 10 +++ .../views/pengutus_submit_view.dart | 4 +- .../reviewer_submit_controller.dart | 8 ++ .../views/reviewer_submit_view.dart | 4 +- lib/app/widget/send_screen.dart | 69 ++++++++++++++++++ 10 files changed, 103 insertions(+), 56 deletions(-) create mode 100644 assets/images/home/send.zip create mode 100644 lib/app/widget/send_screen.dart diff --git a/assets/images/home/send.zip b/assets/images/home/send.zip new file mode 100644 index 0000000000000000000000000000000000000000..dbad091ccc3bd3cd5da8761826aceba0ff95b4da GIT binary patch literal 4375 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 { controller.insightDebitur.value, ); }, - text: 'Kirim Pengajuan', + text: controller.insightDebitur.value + .pengajuan!.isNotEmpty + ? 'Kirim Pengajuan (lagi ?)' + : 'Kirim Pengajuan', textStyle: const TextStyle( color: Colors.white, fontSize: 20.0, diff --git a/lib/app/modules/login-page/views/login_page_view.dart b/lib/app/modules/login-page/views/login_page_view.dart index 6928a942..6c54835c 100644 --- a/lib/app/modules/login-page/views/login_page_view.dart +++ b/lib/app/modules/login-page/views/login_page_view.dart @@ -41,53 +41,6 @@ class LoginPageView extends GetView { Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ - // Stack( - // children: [ - // Center( - // child: Container( - // padding: const EdgeInsets.symmetric( - // vertical: 40, horizontal: 20), - // child: Image.asset( - // 'assets/images/home/stackable.png', - // fit: BoxFit.cover, - // ), - // ), - // ), - // Positioned( - // top: 160, - // left: 0, - // right: 0, - // child: Column( - // children: [ - // Text( - // 'Welcome back', - // style: TextStyle( - // color: Colors.black87, - // fontSize: 35, - // fontFamily: - // GoogleFonts.montserrat().fontFamily, - // fontWeight: FontWeight.w600, - // ), - // ), - // const SizedBox( - // height: 10, - // ), - // Text( - // 'Sign in to your account', - // style: TextStyle( - // color: Colors.black87, - // fontSize: 15, - // fontWeight: FontWeight.bold, - // // add custom google font - // fontFamily: - // GoogleFonts.montserrat().fontFamily, - // ), - // ), - // ], - // ), - // ), - // ], - // ), const SizedBox( height: 50, ), diff --git a/lib/app/modules/pengajuan_submit_analis/controllers/pengajuan_submit_analis_controller.dart b/lib/app/modules/pengajuan_submit_analis/controllers/pengajuan_submit_analis_controller.dart index f66640ec..2ece18fd 100644 --- a/lib/app/modules/pengajuan_submit_analis/controllers/pengajuan_submit_analis_controller.dart +++ b/lib/app/modules/pengajuan_submit_analis/controllers/pengajuan_submit_analis_controller.dart @@ -1,4 +1,6 @@ // 🐦 Flutter imports: +import 'package:akm/app/modules/insight_debitur/controllers/insight_debitur_controller.dart'; +import 'package:akm/app/widget/send_screen.dart'; import 'package:flutter/material.dart'; // 📦 Package imports: @@ -14,6 +16,7 @@ import 'package:akm/app/modules/home/controllers/home_controller.dart'; class PengajuanSubmitAnalisController extends GetxController { // Inject home controller final homeCtrl = Get.put(HomeController()); + final insightCtrl = Get.put(InsightDebiturController()); DebiturInsight data = Get.arguments; var isPengajuanLoading = false.obs; @@ -58,11 +61,17 @@ class PengajuanSubmitAnalisController extends GetxController { try { isPengajuanLoading(true); + Get.dialog( + const SendScreen(), + barrierDismissible: false, + ); PengajuanSubmitProvider().submitPengajuanAnalis(body).then((resp) { isPengajuanLoading(false); homeCtrl.getMySubmission(); + insightCtrl.fetchOneDebitur(data.id!); resetForm(); - + Get.back(); + Get.back(); Get.snackbar( 'Success', 'Data berhasil disimpan', diff --git a/lib/app/modules/pengajuan_submit_analis/views/pengajuan_submit_analis_view.dart b/lib/app/modules/pengajuan_submit_analis/views/pengajuan_submit_analis_view.dart index 190aa7a3..583b42dd 100644 --- a/lib/app/modules/pengajuan_submit_analis/views/pengajuan_submit_analis_view.dart +++ b/lib/app/modules/pengajuan_submit_analis/views/pengajuan_submit_analis_view.dart @@ -308,7 +308,6 @@ class PengajuanSubmitAnalisView debugPrint(listFinal.toString()); controller.submitPengajuanAnalis(); - Get.back(); } else { Get.dialog( const AlertDialog( diff --git a/lib/app/modules/pengutus_submit/controllers/pengutus_submit_controller.dart b/lib/app/modules/pengutus_submit/controllers/pengutus_submit_controller.dart index 4ff2f5bd..f5d0d4f3 100644 --- a/lib/app/modules/pengutus_submit/controllers/pengutus_submit_controller.dart +++ b/lib/app/modules/pengutus_submit/controllers/pengutus_submit_controller.dart @@ -1,4 +1,5 @@ // 🐦 Flutter imports: +import 'package:akm/app/widget/send_screen.dart'; import 'package:flutter/material.dart'; // 📦 Package imports: @@ -183,12 +184,21 @@ class PengutusSubmitController extends GetxController { try { isSubmitLoading(true); + Get.dialog( + const SendScreen(), + barrierDismissible: false, + ); PengajuanSubmitPutusanProvider() .submitPengajuanPemutus(pengajuan.id!, body) .then((resp) { isSubmitLoading(false); homeCtrl.getMyPendingPemutusan(); homeCtrl.getMyCompletedPutusan(); + + resetForm(); + Get.back(); + Get.back(); + Get.back(); Get.snackbar( 'Success', 'Data berhasil disimpan', diff --git a/lib/app/modules/pengutus_submit/views/pengutus_submit_view.dart b/lib/app/modules/pengutus_submit/views/pengutus_submit_view.dart index 1688369b..b2f80ce2 100644 --- a/lib/app/modules/pengutus_submit/views/pengutus_submit_view.dart +++ b/lib/app/modules/pengutus_submit/views/pengutus_submit_view.dart @@ -1101,7 +1101,7 @@ class PengutusSubmitView extends GetView { children: const [ Center( child: Text( - 'Tambahkan Bahasan Analis', + 'Tambahkan Bahasan Pemutus', style: TextStyle( fontSize: 24, fontWeight: FontWeight.w400, @@ -1240,8 +1240,6 @@ class PengutusSubmitView extends GetView { debugPrint(listFinal.toString()); controller.savePutusan(); - Get.back(); - Get.back(); }, child: const Text('Ya'), ), diff --git a/lib/app/modules/reviewer_submit/controllers/reviewer_submit_controller.dart b/lib/app/modules/reviewer_submit/controllers/reviewer_submit_controller.dart index 641b6367..1bc3d4e5 100644 --- a/lib/app/modules/reviewer_submit/controllers/reviewer_submit_controller.dart +++ b/lib/app/modules/reviewer_submit/controllers/reviewer_submit_controller.dart @@ -1,4 +1,5 @@ // 🐦 Flutter imports: +import 'package:akm/app/widget/send_screen.dart'; import 'package:flutter/material.dart'; // 📦 Package imports: @@ -186,6 +187,10 @@ class ReviewerSubmitController extends GetxController { try { isSubmitLoading(true); + Get.dialog( + const SendScreen(), + barrierDismissible: false, + ); PengajuanSubmitReviewProvider() .submitPengajuanAnalis(pengajuan.id!, body) .then((resp) { @@ -193,6 +198,9 @@ class ReviewerSubmitController extends GetxController { homeReviewCtrl.getMyPendingReview(); homeReviewCtrl.getMyCompletedReview(); resetForm(); + Get.back(); + Get.back(); + Get.back(); Get.snackbar( 'Success', 'Data berhasil disimpan', diff --git a/lib/app/modules/reviewer_submit/views/reviewer_submit_view.dart b/lib/app/modules/reviewer_submit/views/reviewer_submit_view.dart index 8863c60f..f0c2b7cf 100644 --- a/lib/app/modules/reviewer_submit/views/reviewer_submit_view.dart +++ b/lib/app/modules/reviewer_submit/views/reviewer_submit_view.dart @@ -1097,7 +1097,7 @@ class ReviewerSubmitView extends GetView { children: const [ Center( child: Text( - 'Tambahkan Bahasan Analis', + 'Tambahkan Bahasan Reviewer', style: TextStyle( fontSize: 24, fontWeight: FontWeight.w400, @@ -1188,8 +1188,6 @@ class ReviewerSubmitView extends GetView { debugPrint(listFinal.toString()); controller.saveReview(); - Get.back(); - Get.back(); }, child: const Text('Ya'), ), diff --git a/lib/app/widget/send_screen.dart b/lib/app/widget/send_screen.dart new file mode 100644 index 00000000..f92ab2df --- /dev/null +++ b/lib/app/widget/send_screen.dart @@ -0,0 +1,69 @@ +// 🐦 Flutter imports: +import 'package:flutter/material.dart'; + +// 📦 Package imports: +import 'package:lottie/lottie.dart'; +import 'package:scaffold_gradient_background/scaffold_gradient_background.dart'; + +class SendScreen extends StatelessWidget { + const SendScreen({super.key}); + + @override + Widget build(BuildContext context) { + return ScaffoldGradientBackground( + gradient: LinearGradient( + begin: Alignment.topLeft, + end: Alignment.bottomRight, + colors: [ + Colors.blue, + Colors.blue.shade900, + ], + ), + body: Align( + alignment: Alignment.center, + child: Container( + padding: const EdgeInsets.all(32), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + mainAxisAlignment: MainAxisAlignment.center, + children: [ + const Center( + child: Text( + 'Sedang Mengirim', + textAlign: TextAlign.center, + style: TextStyle( + color: Colors.white, + fontSize: 35, + fontWeight: FontWeight.bold, + ), + ), + ), + Center( + child: Lottie.asset( + 'assets/images/home/send.zip', + frameRate: FrameRate.max, + fit: BoxFit.cover, + height: 200, + repeat: true, + errorBuilder: (context, error, stackTrace) { + return const Text( + 'Gagal memuat animasi', + style: TextStyle( + color: Colors.red, + ), + ); + }, + ), + ), + const Center( + child: CircularProgressIndicator( + color: Colors.white, + ), + ), + ], + ), + ), + ), + ); + } +}