diff --git a/lib/pages/validate_detail_page.dart b/lib/pages/validate_detail_page.dart index 2fddca8..feffb12 100644 --- a/lib/pages/validate_detail_page.dart +++ b/lib/pages/validate_detail_page.dart @@ -1,8 +1,43 @@ -import 'package:flutter/material.dart'; +import 'dart:developer'; -class ValidateDetailPage extends StatelessWidget { +import 'package:flutter/material.dart'; +import 'package:gap/gap.dart'; +import 'package:ocbo_esign_mobile/blocs/qr/functions/bloc_getqr.dart'; +import 'package:ocbo_esign_mobile/functions/get_api.dart'; +import 'package:ocbo_esign_mobile/widgets/box_widget.dart'; +import 'package:ocbo_esign_mobile/widgets/input_widget.dart'; +import 'package:ocbo_esign_mobile/widgets/text_widget.dart'; + +class ValidateDetailPage extends StatefulWidget { const ValidateDetailPage({super.key}); + @override + State createState() => _ValidateDetailPageState(); +} + +class _ValidateDetailPageState extends State { + final _searchController = TextEditingController(); + late double _total = 0; + + void _getTotalSigned() async { + final name = await blocGetQr(context); + final response = await getApi('get-transactions-count', name, null); + log(name.toString()); + log(response.toString()); + final total = response['result']; + + setState(() { + _total = double.parse(total); + }); + } + + @override + void initState() { + _getTotalSigned(); + + super.initState(); + } + @override Widget build(BuildContext context) { return Scaffold( @@ -23,6 +58,45 @@ class ValidateDetailPage extends StatelessWidget { ], ), ), + child: SizedBox( + width: MediaQuery.of(context).size.width - 90, + child: Column( + children: [ + const Gap(88), + InputWidget(controller: _searchController, password: false, placeholder: 'Specify Application Number'), + const Gap(24), + BoxWidget( + circular: 16, + content: Row( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Column( + children: [ + TextWidget(text: _total.toString(), size: 64, bold: true), + TextWidget(text: 'Total Signed Applications', size: 16), + ], + ), + ], + ), + ), + const Gap(16), + const BoxWidget( + circular: 16, + content: Row( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Column( + children: [ + TextWidget(text: '23-000123', size: 24, bold: true), + TextWidget(text: 'Total Signed Applications', size: 20), + ], + ), + ], + ), + ), + ], + ), + ), ), ); } diff --git a/lib/pages/validate_page.dart b/lib/pages/validate_page.dart index 04942b6..d0ac073 100644 --- a/lib/pages/validate_page.dart +++ b/lib/pages/validate_page.dart @@ -1,7 +1,10 @@ +import 'dart:developer'; + import 'package:flutter/material.dart'; import 'package:gap/gap.dart'; import 'package:go_router/go_router.dart'; import 'package:mobile_scanner/mobile_scanner.dart'; +import 'package:ocbo_esign_mobile/blocs/qr/functions/bloc_setqr.dart'; import 'package:ocbo_esign_mobile/functions/get_api.dart'; import 'package:ocbo_esign_mobile/widgets/button_widget.dart'; import 'package:ocbo_esign_mobile/widgets/text_widget.dart'; @@ -59,37 +62,50 @@ class _BarcodeScannerScreenState extends State { } } - // void tryQR() async { - // final value = "Use OCBO e-Sign Validator - scanid=0918d59e"; + void tryQR() async { + final value = "Use OCBO e-Sign Validator - scanid=0918d59e"; - // if (value.contains('OCBO e-Sign')) { - // final qr = value.substring(35); - // final response = await getApi('check-qr', qr, null); - // final result = response["result"].toString(); + if (value.contains('OCBO e-Sign')) { + final qr = value.substring(35); + final response = await getApi('check-qr', qr, null); + final result = response["result"]?.toString(); + log('result: $result'); - // if (result != '') { - // setState(() { - // qrResult = result; - // }); - // } else { - // setState(() { - // qrResult = 'result'; - // }); - // } - // } else { - // setState(() { - // qrResult = 'invalid'; - // }); + if (result != null) { + setState(() { + qrResult = result; + }); + } else { + setState(() { + qrResult = 'non-exist'; + }); - // Future.delayed(Duration(seconds: 3), () { - // setState(() { - // qrResult = ''; - // }); - // }); - // } - // } + Future.delayed(Duration(seconds: 3), () { + setState(() { + qrResult = ''; + }); + }); + } + } else { + setState(() { + qrResult = 'invalid'; + }); - void gotoDetails() { + Future.delayed(Duration(seconds: 3), () { + setState(() { + qrResult = ''; + }); + }); + } + } + + void updateBlockQr() async { + await blocSetQr(context, qrResult); + } + + void gotoDetails() async { + log('qr $qrResult'); + updateBlockQr(); context.push('/details'); } @@ -164,7 +180,7 @@ class _BarcodeScannerScreenState extends State { ), ), const Gap(24), - // ButtonWidget(text: 'Try API', disabled: false, onPressed: tryQR), + ButtonWidget(text: 'Try API', disabled: false, onPressed: tryQR), if (qrResult.isNotEmpty) Column( children: [ @@ -201,7 +217,7 @@ class _BarcodeScannerScreenState extends State { TextWidget(text: 'Not valid OCBO e-Sign QR', bold: true, size: 20, color: redColor), ], ) - else if (qrResult != 'non-exist') + else if (qrResult == 'non-exist') Column( crossAxisAlignment: CrossAxisAlignment.center, children: [