Refactor UI components across various screens to use SVG avatars, enhance biometric authentication check, and improve code readability with consistent formatting.
This commit is contained in:
parent
a2d1ac5226
commit
0d2dfc817e
@ -2,27 +2,27 @@ C/C++ Structured Log`
|
|||||||
^
|
^
|
||||||
\D:\development_kits\flutter_sdk\packages\flutter_tools\gradle\src\main\groovy\CMakeLists.txtC
|
\D:\development_kits\flutter_sdk\packages\flutter_tools\gradle\src\main\groovy\CMakeLists.txtC
|
||||||
A
|
A
|
||||||
?com.android.build.gradle.internal.cxx.io.EncodedFileFingerPrint ¥þÿ÷ò2¤ »æ’…â2Z
|
?com.android.build.gradle.internal.cxx.io.EncodedFileFingerPrint çͰøò2¤ »æ’…â2Z
|
||||||
X
|
X
|
||||||
VD:\work\kmobile\android\app\.cxx\Debug\y4m3m96g\arm64-v8a\additional_project_files.txt ¥þÿ÷ò2 ÏÓÜÔò2W
|
VD:\work\kmobile\android\app\.cxx\Debug\y4m3m96g\arm64-v8a\additional_project_files.txt çͰøò2 ÏÓÜÔò2W
|
||||||
U
|
U
|
||||||
SD:\work\kmobile\android\app\.cxx\Debug\y4m3m96g\arm64-v8a\android_gradle_build.json ¥þÿ÷ò2è ÖÓÜÔò2\
|
SD:\work\kmobile\android\app\.cxx\Debug\y4m3m96g\arm64-v8a\android_gradle_build.json çͰøò2è ÖÓÜÔò2\
|
||||||
Z
|
Z
|
||||||
XD:\work\kmobile\android\app\.cxx\Debug\y4m3m96g\arm64-v8a\android_gradle_build_mini.json ¥þÿ÷ò2Ý äÓÜÔò2I
|
XD:\work\kmobile\android\app\.cxx\Debug\y4m3m96g\arm64-v8a\android_gradle_build_mini.json çͰøò2Ý äÓÜÔò2I
|
||||||
G
|
G
|
||||||
ED:\work\kmobile\android\app\.cxx\Debug\y4m3m96g\arm64-v8a\build.ninja ¥þÿ÷ò2ÈÅ ›ÓÜÔò2M
|
ED:\work\kmobile\android\app\.cxx\Debug\y4m3m96g\arm64-v8a\build.ninja çͰøò2ÈÅ ›ÓÜÔò2M
|
||||||
K
|
K
|
||||||
ID:\work\kmobile\android\app\.cxx\Debug\y4m3m96g\arm64-v8a\build.ninja.txt ¥þÿ÷ò2R
|
ID:\work\kmobile\android\app\.cxx\Debug\y4m3m96g\arm64-v8a\build.ninja.txt çͰøò2R
|
||||||
P
|
P
|
||||||
ND:\work\kmobile\android\app\.cxx\Debug\y4m3m96g\arm64-v8a\build_file_index.txt ¥þÿ÷ò2
\ êÓÜÔò2S
|
ND:\work\kmobile\android\app\.cxx\Debug\y4m3m96g\arm64-v8a\build_file_index.txt çͰøò2
\ êÓÜÔò2S
|
||||||
Q
|
Q
|
||||||
OD:\work\kmobile\android\app\.cxx\Debug\y4m3m96g\arm64-v8a\compile_commands.json ¥þÿ÷ò2 W
|
OD:\work\kmobile\android\app\.cxx\Debug\y4m3m96g\arm64-v8a\compile_commands.json çͰøò2 W
|
||||||
U
|
U
|
||||||
SD:\work\kmobile\android\app\.cxx\Debug\y4m3m96g\arm64-v8a\compile_commands.json.bin ¥þÿ÷ò2
|
SD:\work\kmobile\android\app\.cxx\Debug\y4m3m96g\arm64-v8a\compile_commands.json.bin çͰøò2
|
||||||
]
|
]
|
||||||
[
|
[
|
||||||
YD:\work\kmobile\android\app\.cxx\Debug\y4m3m96g\arm64-v8a\metadata_generation_command.txt ¥þÿ÷ò2ý èÓÜÔò2P
|
YD:\work\kmobile\android\app\.cxx\Debug\y4m3m96g\arm64-v8a\metadata_generation_command.txt çͰøò2ý èÓÜÔò2P
|
||||||
N
|
N
|
||||||
LD:\work\kmobile\android\app\.cxx\Debug\y4m3m96g\arm64-v8a\prefab_config.json ¥þÿ÷ò2
( éÓÜÔò2U
|
LD:\work\kmobile\android\app\.cxx\Debug\y4m3m96g\arm64-v8a\prefab_config.json çͰøò2
( éÓÜÔò2U
|
||||||
S
|
S
|
||||||
QD:\work\kmobile\android\app\.cxx\Debug\y4m3m96g\arm64-v8a\symbol_folder_index.txt ¥þÿ÷ò2
H éÓÜÔò2
|
QD:\work\kmobile\android\app\.cxx\Debug\y4m3m96g\arm64-v8a\symbol_folder_index.txt çͰøò2
H éÓÜÔò2
|
@ -2,27 +2,27 @@ C/C++ Structured Log`
|
|||||||
^
|
^
|
||||||
\D:\development_kits\flutter_sdk\packages\flutter_tools\gradle\src\main\groovy\CMakeLists.txtC
|
\D:\development_kits\flutter_sdk\packages\flutter_tools\gradle\src\main\groovy\CMakeLists.txtC
|
||||||
A
|
A
|
||||||
?com.android.build.gradle.internal.cxx.io.EncodedFileFingerPrint ¿þÿ÷ò2¤ »æ’…â2\
|
?com.android.build.gradle.internal.cxx.io.EncodedFileFingerPrint €Î°øò2¤ »æ’…â2\
|
||||||
Z
|
Z
|
||||||
XD:\work\kmobile\android\app\.cxx\Debug\y4m3m96g\armeabi-v7a\additional_project_files.txt ¿þÿ÷ò2 øüÞÔò2Y
|
XD:\work\kmobile\android\app\.cxx\Debug\y4m3m96g\armeabi-v7a\additional_project_files.txt €Î°øò2 øüÞÔò2Y
|
||||||
W
|
W
|
||||||
UD:\work\kmobile\android\app\.cxx\Debug\y4m3m96g\armeabi-v7a\android_gradle_build.json ¿þÿ÷ò2ì ûüÞÔò2^
|
UD:\work\kmobile\android\app\.cxx\Debug\y4m3m96g\armeabi-v7a\android_gradle_build.json €Î°øò2ì ûüÞÔò2^
|
||||||
\
|
\
|
||||||
ZD:\work\kmobile\android\app\.cxx\Debug\y4m3m96g\armeabi-v7a\android_gradle_build_mini.json ¿þÿ÷ò2á þüÞÔò2K
|
ZD:\work\kmobile\android\app\.cxx\Debug\y4m3m96g\armeabi-v7a\android_gradle_build_mini.json €Î°øò2á þüÞÔò2K
|
||||||
I
|
I
|
||||||
GD:\work\kmobile\android\app\.cxx\Debug\y4m3m96g\armeabi-v7a\build.ninja ¿þÿ÷ò2ÒÅ ´üÞÔò2O
|
GD:\work\kmobile\android\app\.cxx\Debug\y4m3m96g\armeabi-v7a\build.ninja €Î°øò2ÒÅ ´üÞÔò2O
|
||||||
M
|
M
|
||||||
KD:\work\kmobile\android\app\.cxx\Debug\y4m3m96g\armeabi-v7a\build.ninja.txt ¿þÿ÷ò2T
|
KD:\work\kmobile\android\app\.cxx\Debug\y4m3m96g\armeabi-v7a\build.ninja.txt €Î°øò2T
|
||||||
R
|
R
|
||||||
PD:\work\kmobile\android\app\.cxx\Debug\y4m3m96g\armeabi-v7a\build_file_index.txt ¿þÿ÷ò2
\ ‚ýÞÔò2U
|
PD:\work\kmobile\android\app\.cxx\Debug\y4m3m96g\armeabi-v7a\build_file_index.txt €Î°øò2
\ ‚ýÞÔò2U
|
||||||
S
|
S
|
||||||
QD:\work\kmobile\android\app\.cxx\Debug\y4m3m96g\armeabi-v7a\compile_commands.json ¿þÿ÷ò2 Y
|
QD:\work\kmobile\android\app\.cxx\Debug\y4m3m96g\armeabi-v7a\compile_commands.json €Î°øò2 Y
|
||||||
W
|
W
|
||||||
UD:\work\kmobile\android\app\.cxx\Debug\y4m3m96g\armeabi-v7a\compile_commands.json.bin ¿þÿ÷ò2
|
UD:\work\kmobile\android\app\.cxx\Debug\y4m3m96g\armeabi-v7a\compile_commands.json.bin €Î°øò2
|
||||||
_
|
_
|
||||||
]
|
]
|
||||||
[D:\work\kmobile\android\app\.cxx\Debug\y4m3m96g\armeabi-v7a\metadata_generation_command.txt ¿þÿ÷ò2‡ €ýÞÔò2R
|
[D:\work\kmobile\android\app\.cxx\Debug\y4m3m96g\armeabi-v7a\metadata_generation_command.txt €Î°øò2‡ €ýÞÔò2R
|
||||||
P
|
P
|
||||||
ND:\work\kmobile\android\app\.cxx\Debug\y4m3m96g\armeabi-v7a\prefab_config.json ¿þÿ÷ò2
( <20>ýÞÔò2W
|
ND:\work\kmobile\android\app\.cxx\Debug\y4m3m96g\armeabi-v7a\prefab_config.json €Î°øò2
( <20>ýÞÔò2W
|
||||||
U
|
U
|
||||||
SD:\work\kmobile\android\app\.cxx\Debug\y4m3m96g\armeabi-v7a\symbol_folder_index.txt ¿þÿ÷ò2
J <20>ýÞÔò2
|
SD:\work\kmobile\android\app\.cxx\Debug\y4m3m96g\armeabi-v7a\symbol_folder_index.txt €Î°øò2
J <20>ýÞÔò2
|
@ -2,27 +2,27 @@ C/C++ Structured Log`
|
|||||||
^
|
^
|
||||||
\D:\development_kits\flutter_sdk\packages\flutter_tools\gradle\src\main\groovy\CMakeLists.txtC
|
\D:\development_kits\flutter_sdk\packages\flutter_tools\gradle\src\main\groovy\CMakeLists.txtC
|
||||||
A
|
A
|
||||||
?com.android.build.gradle.internal.cxx.io.EncodedFileFingerPrint Ðþÿ÷ò2¤ »æ’…â2T
|
?com.android.build.gradle.internal.cxx.io.EncodedFileFingerPrint –ΰøò2¤ »æ’…â2T
|
||||||
R
|
R
|
||||||
PD:\work\kmobile\android\app\.cxx\Debug\y4m3m96g\x86\additional_project_files.txt Ðþÿ÷ò2 <20><>ßÔò2Q
|
PD:\work\kmobile\android\app\.cxx\Debug\y4m3m96g\x86\additional_project_files.txt –ΰøò2 <20><>ßÔò2Q
|
||||||
O
|
O
|
||||||
MD:\work\kmobile\android\app\.cxx\Debug\y4m3m96g\x86\android_gradle_build.json Ðþÿ÷ò2Ü <20><>ßÔò2V
|
MD:\work\kmobile\android\app\.cxx\Debug\y4m3m96g\x86\android_gradle_build.json –ΰøò2Ü <20><>ßÔò2V
|
||||||
T
|
T
|
||||||
RD:\work\kmobile\android\app\.cxx\Debug\y4m3m96g\x86\android_gradle_build_mini.json Ðþÿ÷ò2Ñ ‘<>ßÔò2C
|
RD:\work\kmobile\android\app\.cxx\Debug\y4m3m96g\x86\android_gradle_build_mini.json –ΰøò2Ñ ‘<>ßÔò2C
|
||||||
A
|
A
|
||||||
?D:\work\kmobile\android\app\.cxx\Debug\y4m3m96g\x86\build.ninja Ðþÿ÷ò2ªÅ í<>ßÔò2G
|
?D:\work\kmobile\android\app\.cxx\Debug\y4m3m96g\x86\build.ninja –ΰøò2ªÅ í<>ßÔò2G
|
||||||
E
|
E
|
||||||
CD:\work\kmobile\android\app\.cxx\Debug\y4m3m96g\x86\build.ninja.txt Ðþÿ÷ò2L
|
CD:\work\kmobile\android\app\.cxx\Debug\y4m3m96g\x86\build.ninja.txt –ΰøò2L
|
||||||
J
|
J
|
||||||
HD:\work\kmobile\android\app\.cxx\Debug\y4m3m96g\x86\build_file_index.txt Ðþÿ÷ò2
\ ’<>ßÔò2M
|
HD:\work\kmobile\android\app\.cxx\Debug\y4m3m96g\x86\build_file_index.txt –ΰøò2
\ ’<>ßÔò2M
|
||||||
K
|
K
|
||||||
ID:\work\kmobile\android\app\.cxx\Debug\y4m3m96g\x86\compile_commands.json Ðþÿ÷ò2 Q
|
ID:\work\kmobile\android\app\.cxx\Debug\y4m3m96g\x86\compile_commands.json –ΰøò2 Q
|
||||||
O
|
O
|
||||||
MD:\work\kmobile\android\app\.cxx\Debug\y4m3m96g\x86\compile_commands.json.bin Ðþÿ÷ò2
|
MD:\work\kmobile\android\app\.cxx\Debug\y4m3m96g\x86\compile_commands.json.bin –ΰøò2
|
||||||
W
|
W
|
||||||
U
|
U
|
||||||
SD:\work\kmobile\android\app\.cxx\Debug\y4m3m96g\x86\metadata_generation_command.txt Ðþÿ÷ò2ß ‘<>ßÔò2J
|
SD:\work\kmobile\android\app\.cxx\Debug\y4m3m96g\x86\metadata_generation_command.txt –ΰøò2ß ‘<>ßÔò2J
|
||||||
H
|
H
|
||||||
FD:\work\kmobile\android\app\.cxx\Debug\y4m3m96g\x86\prefab_config.json Ðþÿ÷ò2
( ‘<>ßÔò2O
|
FD:\work\kmobile\android\app\.cxx\Debug\y4m3m96g\x86\prefab_config.json –ΰøò2
( ‘<>ßÔò2O
|
||||||
M
|
M
|
||||||
KD:\work\kmobile\android\app\.cxx\Debug\y4m3m96g\x86\symbol_folder_index.txt Ðþÿ÷ò2
B ‘<>ßÔò2
|
KD:\work\kmobile\android\app\.cxx\Debug\y4m3m96g\x86\symbol_folder_index.txt –ΰøò2
B ‘<>ßÔò2
|
@ -2,27 +2,27 @@ C/C++ Structured Log`
|
|||||||
^
|
^
|
||||||
\D:\development_kits\flutter_sdk\packages\flutter_tools\gradle\src\main\groovy\CMakeLists.txtC
|
\D:\development_kits\flutter_sdk\packages\flutter_tools\gradle\src\main\groovy\CMakeLists.txtC
|
||||||
A
|
A
|
||||||
?com.android.build.gradle.internal.cxx.io.EncodedFileFingerPrint âþÿ÷ò2¤ »æ’…â2W
|
?com.android.build.gradle.internal.cxx.io.EncodedFileFingerPrint °Î°øò2¤ »æ’…â2W
|
||||||
U
|
U
|
||||||
SD:\work\kmobile\android\app\.cxx\Debug\y4m3m96g\x86_64\additional_project_files.txt âþÿ÷ò2 Ú¨ßÔò2T
|
SD:\work\kmobile\android\app\.cxx\Debug\y4m3m96g\x86_64\additional_project_files.txt °Î°øò2 Ú¨ßÔò2T
|
||||||
R
|
R
|
||||||
PD:\work\kmobile\android\app\.cxx\Debug\y4m3m96g\x86_64\android_gradle_build.json âþÿ÷ò2â Û¨ßÔò2Y
|
PD:\work\kmobile\android\app\.cxx\Debug\y4m3m96g\x86_64\android_gradle_build.json °Î°øò2â Û¨ßÔò2Y
|
||||||
W
|
W
|
||||||
UD:\work\kmobile\android\app\.cxx\Debug\y4m3m96g\x86_64\android_gradle_build_mini.json âþÿ÷ò2× Þ¨ßÔò2F
|
UD:\work\kmobile\android\app\.cxx\Debug\y4m3m96g\x86_64\android_gradle_build_mini.json °Î°øò2× Þ¨ßÔò2F
|
||||||
D
|
D
|
||||||
BD:\work\kmobile\android\app\.cxx\Debug\y4m3m96g\x86_64\build.ninja âþÿ÷ò2¹Å »¨ßÔò2J
|
BD:\work\kmobile\android\app\.cxx\Debug\y4m3m96g\x86_64\build.ninja °Î°øò2¹Å »¨ßÔò2J
|
||||||
H
|
H
|
||||||
FD:\work\kmobile\android\app\.cxx\Debug\y4m3m96g\x86_64\build.ninja.txt âþÿ÷ò2O
|
FD:\work\kmobile\android\app\.cxx\Debug\y4m3m96g\x86_64\build.ninja.txt °Î°øò2O
|
||||||
M
|
M
|
||||||
KD:\work\kmobile\android\app\.cxx\Debug\y4m3m96g\x86_64\build_file_index.txt âþÿ÷ò2
\ ߨßÔò2P
|
KD:\work\kmobile\android\app\.cxx\Debug\y4m3m96g\x86_64\build_file_index.txt °Î°øò2
\ ߨßÔò2P
|
||||||
N
|
N
|
||||||
LD:\work\kmobile\android\app\.cxx\Debug\y4m3m96g\x86_64\compile_commands.json âþÿ÷ò2 T
|
LD:\work\kmobile\android\app\.cxx\Debug\y4m3m96g\x86_64\compile_commands.json °Î°øò2 T
|
||||||
R
|
R
|
||||||
PD:\work\kmobile\android\app\.cxx\Debug\y4m3m96g\x86_64\compile_commands.json.bin âþÿ÷ò2
|
PD:\work\kmobile\android\app\.cxx\Debug\y4m3m96g\x86_64\compile_commands.json.bin °Î°øò2
|
||||||
Z
|
Z
|
||||||
X
|
X
|
||||||
VD:\work\kmobile\android\app\.cxx\Debug\y4m3m96g\x86_64\metadata_generation_command.txt âþÿ÷ò2î Þ¨ßÔò2M
|
VD:\work\kmobile\android\app\.cxx\Debug\y4m3m96g\x86_64\metadata_generation_command.txt °Î°øò2î Þ¨ßÔò2M
|
||||||
K
|
K
|
||||||
ID:\work\kmobile\android\app\.cxx\Debug\y4m3m96g\x86_64\prefab_config.json âþÿ÷ò2
( Þ¨ßÔò2R
|
ID:\work\kmobile\android\app\.cxx\Debug\y4m3m96g\x86_64\prefab_config.json °Î°øò2
( Þ¨ßÔò2R
|
||||||
P
|
P
|
||||||
ND:\work\kmobile\android\app\.cxx\Debug\y4m3m96g\x86_64\symbol_folder_index.txt âþÿ÷ò2
E Þ¨ßÔò2
|
ND:\work\kmobile\android\app\.cxx\Debug\y4m3m96g\x86_64\symbol_folder_index.txt °Î°øò2
E Þ¨ßÔò2
|
@ -40,7 +40,7 @@ class _MPinScreenState extends State<MPinScreen> {
|
|||||||
final storage = getIt<SecureStorage>();
|
final storage = getIt<SecureStorage>();
|
||||||
final enabled = await storage.read('biometric_enabled');
|
final enabled = await storage.read('biometric_enabled');
|
||||||
log('biometric_enabled: $enabled');
|
log('biometric_enabled: $enabled');
|
||||||
if (enabled) {
|
if (enabled != null && enabled) {
|
||||||
final auth = LocalAuthentication();
|
final auth = LocalAuthentication();
|
||||||
if (await auth.canCheckBiometrics) {
|
if (await auth.canCheckBiometrics) {
|
||||||
final didAuth = await auth.authenticate(
|
final didAuth = await auth.authenticate(
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
|
import 'package:flutter_svg/svg.dart';
|
||||||
import 'package:material_symbols_icons/material_symbols_icons.dart';
|
import 'package:material_symbols_icons/material_symbols_icons.dart';
|
||||||
|
|
||||||
class AddBeneficiaryScreen extends StatefulWidget {
|
class AddBeneficiaryScreen extends StatefulWidget {
|
||||||
@ -71,13 +72,19 @@ class _AddBeneficiaryScreen extends State<AddBeneficiaryScreen>{
|
|||||||
title: const Text('Add Beneficiary', style: TextStyle(color: Colors.black,
|
title: const Text('Add Beneficiary', style: TextStyle(color: Colors.black,
|
||||||
fontWeight: FontWeight.w500),),
|
fontWeight: FontWeight.w500),),
|
||||||
centerTitle: false,
|
centerTitle: false,
|
||||||
actions: const [
|
actions: [
|
||||||
Padding(
|
Padding(
|
||||||
padding: EdgeInsets.only(right: 10.0),
|
padding: const EdgeInsets.only(right: 10.0),
|
||||||
child: CircleAvatar(
|
child: CircleAvatar(
|
||||||
backgroundImage: AssetImage('assets/images/avatar.jpg'), // Replace with your image
|
backgroundColor: Colors.grey[200],
|
||||||
radius: 20,
|
radius: 20,
|
||||||
),
|
child: SvgPicture.asset(
|
||||||
|
'assets/images/avatar_male.svg',
|
||||||
|
width: 40,
|
||||||
|
height: 40,
|
||||||
|
fit: BoxFit.cover,
|
||||||
|
),
|
||||||
|
),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
|
import 'package:flutter_svg/svg.dart';
|
||||||
import 'package:kmobile/features/beneficiaries/screens/add_beneficiary_screen.dart';
|
import 'package:kmobile/features/beneficiaries/screens/add_beneficiary_screen.dart';
|
||||||
import 'package:material_symbols_icons/material_symbols_icons.dart';
|
import 'package:material_symbols_icons/material_symbols_icons.dart';
|
||||||
|
|
||||||
@ -6,10 +7,11 @@ class ManageBeneficiariesScreen extends StatefulWidget {
|
|||||||
const ManageBeneficiariesScreen({super.key});
|
const ManageBeneficiariesScreen({super.key});
|
||||||
|
|
||||||
@override
|
@override
|
||||||
State<ManageBeneficiariesScreen> createState() => _ManageBeneficiariesScreen();
|
State<ManageBeneficiariesScreen> createState() =>
|
||||||
|
_ManageBeneficiariesScreen();
|
||||||
}
|
}
|
||||||
|
|
||||||
class _ManageBeneficiariesScreen extends State<ManageBeneficiariesScreen>{
|
class _ManageBeneficiariesScreen extends State<ManageBeneficiariesScreen> {
|
||||||
final List<Map<String, String>> beneficiaries = [
|
final List<Map<String, String>> beneficiaries = [
|
||||||
{
|
{
|
||||||
'bank': 'State Bank Of India',
|
'bank': 'State Bank Of India',
|
||||||
@ -33,24 +35,33 @@ class _ManageBeneficiariesScreen extends State<ManageBeneficiariesScreen>{
|
|||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return Scaffold(
|
return Scaffold(
|
||||||
appBar: AppBar(
|
appBar: AppBar(
|
||||||
leading: IconButton(icon: const Icon(Symbols.arrow_back_ios_new),
|
leading: IconButton(
|
||||||
|
icon: const Icon(Symbols.arrow_back_ios_new),
|
||||||
onPressed: () {
|
onPressed: () {
|
||||||
Navigator.pop(context);
|
Navigator.pop(context);
|
||||||
},),
|
},
|
||||||
title: const Text('Beneficiaries', style: TextStyle(color: Colors.black,
|
),
|
||||||
fontWeight: FontWeight.w500),),
|
title: const Text(
|
||||||
|
'Beneficiaries',
|
||||||
|
style: TextStyle(color: Colors.black, fontWeight: FontWeight.w500),
|
||||||
|
),
|
||||||
centerTitle: false,
|
centerTitle: false,
|
||||||
actions: const [
|
actions: [
|
||||||
Padding(
|
Padding(
|
||||||
padding: EdgeInsets.only(right: 10.0),
|
padding: const EdgeInsets.only(right: 10.0),
|
||||||
child: CircleAvatar(
|
child: CircleAvatar(
|
||||||
backgroundImage: AssetImage('assets/images/avatar.jpg'), // Replace with your image
|
backgroundColor: Colors.grey[200],
|
||||||
radius: 20,
|
radius: 20,
|
||||||
|
child: SvgPicture.asset(
|
||||||
|
'assets/images/avatar_male.svg',
|
||||||
|
width: 40,
|
||||||
|
height: 40,
|
||||||
|
fit: BoxFit.cover,
|
||||||
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
|
|
||||||
body: Padding(
|
body: Padding(
|
||||||
padding: const EdgeInsets.all(8.0),
|
padding: const EdgeInsets.all(8.0),
|
||||||
child: ListView.builder(
|
child: ListView.builder(
|
||||||
@ -59,8 +70,7 @@ class _ManageBeneficiariesScreen extends State<ManageBeneficiariesScreen>{
|
|||||||
final beneficiary = beneficiaries[index];
|
final beneficiary = beneficiaries[index];
|
||||||
return ListTile(
|
return ListTile(
|
||||||
leading: const CircleAvatar(
|
leading: const CircleAvatar(
|
||||||
backgroundColor: Colors.blue,
|
backgroundColor: Colors.blue, child: Text('A')),
|
||||||
child: Text('A')),
|
|
||||||
title: Text(beneficiary['name']!),
|
title: Text(beneficiary['name']!),
|
||||||
subtitle: Text(beneficiary['bank']!),
|
subtitle: Text(beneficiary['bank']!),
|
||||||
trailing: IconButton(
|
trailing: IconButton(
|
||||||
@ -77,8 +87,10 @@ class _ManageBeneficiariesScreen extends State<ManageBeneficiariesScreen>{
|
|||||||
padding: const EdgeInsets.only(bottom: 8.0),
|
padding: const EdgeInsets.only(bottom: 8.0),
|
||||||
child: FloatingActionButton(
|
child: FloatingActionButton(
|
||||||
onPressed: () {
|
onPressed: () {
|
||||||
Navigator.push(context, MaterialPageRoute(
|
Navigator.push(
|
||||||
builder: (context) => const AddBeneficiaryScreen()));
|
context,
|
||||||
|
MaterialPageRoute(
|
||||||
|
builder: (context) => const AddBeneficiaryScreen()));
|
||||||
},
|
},
|
||||||
backgroundColor: Colors.grey[300],
|
backgroundColor: Colors.grey[300],
|
||||||
foregroundColor: Colors.blue[900],
|
foregroundColor: Colors.blue[900],
|
||||||
@ -88,5 +100,4 @@ class _ManageBeneficiariesScreen extends State<ManageBeneficiariesScreen>{
|
|||||||
),
|
),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
}
|
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
|
import 'package:flutter_svg/svg.dart';
|
||||||
import 'package:intl/intl.dart';
|
import 'package:intl/intl.dart';
|
||||||
import 'package:material_symbols_icons/material_symbols_icons.dart';
|
import 'package:material_symbols_icons/material_symbols_icons.dart';
|
||||||
|
|
||||||
@ -9,7 +10,7 @@ class BlockCardScreen extends StatefulWidget {
|
|||||||
State<BlockCardScreen> createState() => _BlockCardScreen();
|
State<BlockCardScreen> createState() => _BlockCardScreen();
|
||||||
}
|
}
|
||||||
|
|
||||||
class _BlockCardScreen extends State<BlockCardScreen>{
|
class _BlockCardScreen extends State<BlockCardScreen> {
|
||||||
final _formKey = GlobalKey<FormState>();
|
final _formKey = GlobalKey<FormState>();
|
||||||
final _cardController = TextEditingController();
|
final _cardController = TextEditingController();
|
||||||
final _cvvController = TextEditingController();
|
final _cvvController = TextEditingController();
|
||||||
@ -54,24 +55,33 @@ class _BlockCardScreen extends State<BlockCardScreen>{
|
|||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return Scaffold(
|
return Scaffold(
|
||||||
appBar: AppBar(
|
appBar: AppBar(
|
||||||
leading: IconButton(icon: const Icon(Symbols.arrow_back_ios_new),
|
leading: IconButton(
|
||||||
|
icon: const Icon(Symbols.arrow_back_ios_new),
|
||||||
onPressed: () {
|
onPressed: () {
|
||||||
Navigator.pop(context);
|
Navigator.pop(context);
|
||||||
},),
|
},
|
||||||
title: const Text('Block Card', style: TextStyle(color: Colors.black,
|
),
|
||||||
fontWeight: FontWeight.w500),),
|
title: const Text(
|
||||||
|
'Block Card',
|
||||||
|
style: TextStyle(color: Colors.black, fontWeight: FontWeight.w500),
|
||||||
|
),
|
||||||
centerTitle: false,
|
centerTitle: false,
|
||||||
actions: const [
|
actions: [
|
||||||
Padding(
|
Padding(
|
||||||
padding: EdgeInsets.only(right: 10.0),
|
padding: const EdgeInsets.only(right: 10.0),
|
||||||
child: CircleAvatar(
|
child: CircleAvatar(
|
||||||
backgroundImage: AssetImage('assets/images/avatar.jpg'), // Replace with your image
|
backgroundColor: Colors.grey[200],
|
||||||
radius: 20,
|
radius: 20,
|
||||||
|
child: SvgPicture.asset(
|
||||||
|
'assets/images/avatar_male.svg',
|
||||||
|
width: 40,
|
||||||
|
height: 40,
|
||||||
|
fit: BoxFit.cover,
|
||||||
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
|
|
||||||
body: Padding(
|
body: Padding(
|
||||||
padding: const EdgeInsets.all(10.0),
|
padding: const EdgeInsets.all(10.0),
|
||||||
child: Form(
|
child: Form(
|
||||||
@ -96,8 +106,9 @@ class _BlockCardScreen extends State<BlockCardScreen>{
|
|||||||
),
|
),
|
||||||
keyboardType: TextInputType.number,
|
keyboardType: TextInputType.number,
|
||||||
textInputAction: TextInputAction.next,
|
textInputAction: TextInputAction.next,
|
||||||
validator: (value) =>
|
validator: (value) => value != null && value.length == 16
|
||||||
value != null && value.length == 16 ? null : 'Enter valid card number',
|
? null
|
||||||
|
: 'Enter valid card number',
|
||||||
),
|
),
|
||||||
const SizedBox(height: 24),
|
const SizedBox(height: 24),
|
||||||
Row(
|
Row(
|
||||||
@ -121,8 +132,9 @@ class _BlockCardScreen extends State<BlockCardScreen>{
|
|||||||
keyboardType: TextInputType.number,
|
keyboardType: TextInputType.number,
|
||||||
textInputAction: TextInputAction.next,
|
textInputAction: TextInputAction.next,
|
||||||
obscureText: true,
|
obscureText: true,
|
||||||
validator: (value) =>
|
validator: (value) => value != null && value.length == 3
|
||||||
value != null && value.length == 3 ? null : 'CVV must be 3 digits',
|
? null
|
||||||
|
: 'CVV must be 3 digits',
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
const SizedBox(width: 16),
|
const SizedBox(width: 16),
|
||||||
@ -145,8 +157,9 @@ class _BlockCardScreen extends State<BlockCardScreen>{
|
|||||||
borderSide: BorderSide(color: Colors.black, width: 2),
|
borderSide: BorderSide(color: Colors.black, width: 2),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
validator: (value) =>
|
validator: (value) => value != null && value.isNotEmpty
|
||||||
value != null && value.isNotEmpty ? null : 'Select expiry date',
|
? null
|
||||||
|
: 'Select expiry date',
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
@ -170,8 +183,9 @@ class _BlockCardScreen extends State<BlockCardScreen>{
|
|||||||
),
|
),
|
||||||
textInputAction: TextInputAction.done,
|
textInputAction: TextInputAction.done,
|
||||||
keyboardType: TextInputType.phone,
|
keyboardType: TextInputType.phone,
|
||||||
validator: (value) =>
|
validator: (value) => value != null && value.length >= 10
|
||||||
value != null && value.length >= 10 ? null : 'Enter valid phone number',
|
? null
|
||||||
|
: 'Enter valid phone number',
|
||||||
),
|
),
|
||||||
const SizedBox(height: 45),
|
const SizedBox(height: 45),
|
||||||
Align(
|
Align(
|
||||||
@ -196,5 +210,4 @@ class _BlockCardScreen extends State<BlockCardScreen>{
|
|||||||
),
|
),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
}
|
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
|
import 'package:flutter_svg/svg.dart';
|
||||||
import 'package:kmobile/features/card/screens/block_card_screen.dart';
|
import 'package:kmobile/features/card/screens/block_card_screen.dart';
|
||||||
import 'package:kmobile/features/card/screens/card_pin_change_details_screen.dart';
|
import 'package:kmobile/features/card/screens/card_pin_change_details_screen.dart';
|
||||||
import 'package:material_symbols_icons/material_symbols_icons.dart';
|
import 'package:material_symbols_icons/material_symbols_icons.dart';
|
||||||
@ -10,60 +11,70 @@ class CardManagementScreen extends StatefulWidget {
|
|||||||
State<CardManagementScreen> createState() => _CardManagementScreen();
|
State<CardManagementScreen> createState() => _CardManagementScreen();
|
||||||
}
|
}
|
||||||
|
|
||||||
class _CardManagementScreen extends State<CardManagementScreen>{
|
class _CardManagementScreen extends State<CardManagementScreen> {
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return Scaffold(
|
return Scaffold(
|
||||||
appBar: AppBar(
|
appBar: AppBar(
|
||||||
automaticallyImplyLeading: false,
|
automaticallyImplyLeading: false,
|
||||||
title: const Text('Card Management', style: TextStyle(color: Colors.black,
|
title: const Text(
|
||||||
fontWeight: FontWeight.w500),),
|
'Card Management',
|
||||||
|
style: TextStyle(color: Colors.black, fontWeight: FontWeight.w500),
|
||||||
|
),
|
||||||
centerTitle: false,
|
centerTitle: false,
|
||||||
actions: const [
|
actions: [
|
||||||
Padding(
|
Padding(
|
||||||
padding: EdgeInsets.only(right: 10.0),
|
padding: const EdgeInsets.only(right: 10.0),
|
||||||
child: CircleAvatar(
|
child: CircleAvatar(
|
||||||
backgroundImage: AssetImage('assets/images/avatar.jpg'), // Replace with your image
|
backgroundColor: Colors.grey[200],
|
||||||
radius: 20,
|
radius: 20,
|
||||||
|
child: SvgPicture.asset(
|
||||||
|
'assets/images/avatar_male.svg',
|
||||||
|
width: 40,
|
||||||
|
height: 40,
|
||||||
|
fit: BoxFit.cover,
|
||||||
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
|
|
||||||
body: ListView(
|
body: ListView(
|
||||||
children: [
|
children: [
|
||||||
CardManagementTile(
|
CardManagementTile(
|
||||||
icon: Symbols.add,
|
icon: Symbols.add,
|
||||||
label: 'Apply Debit Card',
|
label: 'Apply Debit Card',
|
||||||
onTap: () {
|
onTap: () {},
|
||||||
|
),
|
||||||
},
|
const Divider(
|
||||||
|
height: 1,
|
||||||
),
|
),
|
||||||
|
|
||||||
const Divider(height: 1,),
|
|
||||||
|
|
||||||
CardManagementTile(
|
CardManagementTile(
|
||||||
icon: Symbols.remove_moderator,
|
icon: Symbols.remove_moderator,
|
||||||
label: 'Block / Unblock Card',
|
label: 'Block / Unblock Card',
|
||||||
onTap: () {
|
onTap: () {
|
||||||
Navigator.push(context, MaterialPageRoute(
|
Navigator.push(
|
||||||
builder: (context) => const BlockCardScreen()));
|
context,
|
||||||
|
MaterialPageRoute(
|
||||||
|
builder: (context) => const BlockCardScreen()));
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
|
const Divider(
|
||||||
const Divider(height: 1,),
|
height: 1,
|
||||||
|
),
|
||||||
CardManagementTile(
|
CardManagementTile(
|
||||||
icon: Symbols.password_2,
|
icon: Symbols.password_2,
|
||||||
label: 'Change Card PIN',
|
label: 'Change Card PIN',
|
||||||
onTap: () {
|
onTap: () {
|
||||||
Navigator.push(context, MaterialPageRoute(
|
Navigator.push(
|
||||||
builder: (context) => const CardPinChangeDetailsScreen()));
|
context,
|
||||||
|
MaterialPageRoute(
|
||||||
|
builder: (context) =>
|
||||||
|
const CardPinChangeDetailsScreen()));
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
|
const Divider(
|
||||||
const Divider(height: 1,),
|
height: 1,
|
||||||
|
),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
@ -92,4 +103,3 @@ class CardManagementTile extends StatelessWidget {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
|
import 'package:flutter_svg/svg.dart';
|
||||||
import 'package:intl/intl.dart';
|
import 'package:intl/intl.dart';
|
||||||
import 'package:kmobile/features/card/screens/card_pin_set_screen.dart';
|
import 'package:kmobile/features/card/screens/card_pin_set_screen.dart';
|
||||||
import 'package:material_symbols_icons/material_symbols_icons.dart';
|
import 'package:material_symbols_icons/material_symbols_icons.dart';
|
||||||
@ -7,10 +8,11 @@ class CardPinChangeDetailsScreen extends StatefulWidget {
|
|||||||
const CardPinChangeDetailsScreen({super.key});
|
const CardPinChangeDetailsScreen({super.key});
|
||||||
|
|
||||||
@override
|
@override
|
||||||
State<CardPinChangeDetailsScreen> createState() => _CardPinChangeDetailsScreen();
|
State<CardPinChangeDetailsScreen> createState() =>
|
||||||
|
_CardPinChangeDetailsScreen();
|
||||||
}
|
}
|
||||||
|
|
||||||
class _CardPinChangeDetailsScreen extends State<CardPinChangeDetailsScreen>{
|
class _CardPinChangeDetailsScreen extends State<CardPinChangeDetailsScreen> {
|
||||||
final _formKey = GlobalKey<FormState>();
|
final _formKey = GlobalKey<FormState>();
|
||||||
final _cardController = TextEditingController();
|
final _cardController = TextEditingController();
|
||||||
final _cvvController = TextEditingController();
|
final _cvvController = TextEditingController();
|
||||||
@ -43,24 +45,33 @@ class _CardPinChangeDetailsScreen extends State<CardPinChangeDetailsScreen>{
|
|||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return Scaffold(
|
return Scaffold(
|
||||||
appBar: AppBar(
|
appBar: AppBar(
|
||||||
leading: IconButton(icon: const Icon(Symbols.arrow_back_ios_new),
|
leading: IconButton(
|
||||||
|
icon: const Icon(Symbols.arrow_back_ios_new),
|
||||||
onPressed: () {
|
onPressed: () {
|
||||||
Navigator.pop(context);
|
Navigator.pop(context);
|
||||||
},),
|
},
|
||||||
title: const Text('Card Details', style: TextStyle(color: Colors.black,
|
),
|
||||||
fontWeight: FontWeight.w500),),
|
title: const Text(
|
||||||
|
'Card Details',
|
||||||
|
style: TextStyle(color: Colors.black, fontWeight: FontWeight.w500),
|
||||||
|
),
|
||||||
centerTitle: false,
|
centerTitle: false,
|
||||||
actions: const [
|
actions: [
|
||||||
Padding(
|
Padding(
|
||||||
padding: EdgeInsets.only(right: 10.0),
|
padding: const EdgeInsets.only(right: 10.0),
|
||||||
child: CircleAvatar(
|
child: CircleAvatar(
|
||||||
backgroundImage: AssetImage('assets/images/avatar.jpg'), // Replace with your image
|
backgroundColor: Colors.grey[200],
|
||||||
radius: 20,
|
radius: 20,
|
||||||
|
child: SvgPicture.asset(
|
||||||
|
'assets/images/avatar_male.svg',
|
||||||
|
width: 40,
|
||||||
|
height: 40,
|
||||||
|
fit: BoxFit.cover,
|
||||||
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
|
|
||||||
body: Padding(
|
body: Padding(
|
||||||
padding: const EdgeInsets.all(10.0),
|
padding: const EdgeInsets.all(10.0),
|
||||||
child: Form(
|
child: Form(
|
||||||
@ -85,8 +96,9 @@ class _CardPinChangeDetailsScreen extends State<CardPinChangeDetailsScreen>{
|
|||||||
),
|
),
|
||||||
keyboardType: TextInputType.number,
|
keyboardType: TextInputType.number,
|
||||||
textInputAction: TextInputAction.next,
|
textInputAction: TextInputAction.next,
|
||||||
validator: (value) =>
|
validator: (value) => value != null && value.length == 16
|
||||||
value != null && value.length == 16 ? null : 'Enter valid card number',
|
? null
|
||||||
|
: 'Enter valid card number',
|
||||||
),
|
),
|
||||||
const SizedBox(height: 24),
|
const SizedBox(height: 24),
|
||||||
Row(
|
Row(
|
||||||
@ -110,8 +122,9 @@ class _CardPinChangeDetailsScreen extends State<CardPinChangeDetailsScreen>{
|
|||||||
keyboardType: TextInputType.number,
|
keyboardType: TextInputType.number,
|
||||||
textInputAction: TextInputAction.next,
|
textInputAction: TextInputAction.next,
|
||||||
obscureText: true,
|
obscureText: true,
|
||||||
validator: (value) =>
|
validator: (value) => value != null && value.length == 3
|
||||||
value != null && value.length == 3 ? null : 'CVV must be 3 digits',
|
? null
|
||||||
|
: 'CVV must be 3 digits',
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
const SizedBox(width: 16),
|
const SizedBox(width: 16),
|
||||||
@ -134,8 +147,9 @@ class _CardPinChangeDetailsScreen extends State<CardPinChangeDetailsScreen>{
|
|||||||
borderSide: BorderSide(color: Colors.black, width: 2),
|
borderSide: BorderSide(color: Colors.black, width: 2),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
validator: (value) =>
|
validator: (value) => value != null && value.isNotEmpty
|
||||||
value != null && value.isNotEmpty ? null : 'Select expiry date',
|
? null
|
||||||
|
: 'Select expiry date',
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
@ -159,8 +173,9 @@ class _CardPinChangeDetailsScreen extends State<CardPinChangeDetailsScreen>{
|
|||||||
),
|
),
|
||||||
textInputAction: TextInputAction.done,
|
textInputAction: TextInputAction.done,
|
||||||
keyboardType: TextInputType.phone,
|
keyboardType: TextInputType.phone,
|
||||||
validator: (value) =>
|
validator: (value) => value != null && value.length >= 10
|
||||||
value != null && value.length >= 10 ? null : 'Enter valid phone number',
|
? null
|
||||||
|
: 'Enter valid phone number',
|
||||||
),
|
),
|
||||||
const SizedBox(height: 45),
|
const SizedBox(height: 45),
|
||||||
Align(
|
Align(
|
||||||
@ -185,5 +200,4 @@ class _CardPinChangeDetailsScreen extends State<CardPinChangeDetailsScreen>{
|
|||||||
),
|
),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
}
|
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
|
import 'package:flutter_svg/svg.dart';
|
||||||
import 'package:material_symbols_icons/material_symbols_icons.dart';
|
import 'package:material_symbols_icons/material_symbols_icons.dart';
|
||||||
|
|
||||||
class CardPinSetScreen extends StatefulWidget {
|
class CardPinSetScreen extends StatefulWidget {
|
||||||
@ -8,7 +9,7 @@ class CardPinSetScreen extends StatefulWidget {
|
|||||||
State<CardPinSetScreen> createState() => _CardPinSetScreen();
|
State<CardPinSetScreen> createState() => _CardPinSetScreen();
|
||||||
}
|
}
|
||||||
|
|
||||||
class _CardPinSetScreen extends State<CardPinSetScreen>{
|
class _CardPinSetScreen extends State<CardPinSetScreen> {
|
||||||
final _formKey = GlobalKey<FormState>();
|
final _formKey = GlobalKey<FormState>();
|
||||||
final _pinController = TextEditingController();
|
final _pinController = TextEditingController();
|
||||||
final _confirmPinController = TextEditingController();
|
final _confirmPinController = TextEditingController();
|
||||||
@ -44,24 +45,33 @@ class _CardPinSetScreen extends State<CardPinSetScreen>{
|
|||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return Scaffold(
|
return Scaffold(
|
||||||
appBar: AppBar(
|
appBar: AppBar(
|
||||||
leading: IconButton(icon: const Icon(Symbols.arrow_back_ios_new),
|
leading: IconButton(
|
||||||
|
icon: const Icon(Symbols.arrow_back_ios_new),
|
||||||
onPressed: () {
|
onPressed: () {
|
||||||
Navigator.pop(context);
|
Navigator.pop(context);
|
||||||
},),
|
},
|
||||||
title: const Text('Card PIN', style: TextStyle(color: Colors.black,
|
),
|
||||||
fontWeight: FontWeight.w500),),
|
title: const Text(
|
||||||
|
'Card PIN',
|
||||||
|
style: TextStyle(color: Colors.black, fontWeight: FontWeight.w500),
|
||||||
|
),
|
||||||
centerTitle: false,
|
centerTitle: false,
|
||||||
actions: const [
|
actions: [
|
||||||
Padding(
|
Padding(
|
||||||
padding: EdgeInsets.only(right: 10.0),
|
padding: const EdgeInsets.only(right: 10.0),
|
||||||
child: CircleAvatar(
|
child: CircleAvatar(
|
||||||
backgroundImage: AssetImage('assets/images/avatar.jpg'), // Replace with your image
|
backgroundColor: Colors.grey[200],
|
||||||
radius: 20,
|
radius: 20,
|
||||||
|
child: SvgPicture.asset(
|
||||||
|
'assets/images/avatar_male.svg',
|
||||||
|
width: 40,
|
||||||
|
height: 40,
|
||||||
|
fit: BoxFit.cover,
|
||||||
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
|
|
||||||
body: Padding(
|
body: Padding(
|
||||||
padding: const EdgeInsets.all(16.0),
|
padding: const EdgeInsets.all(16.0),
|
||||||
child: Form(
|
child: Form(
|
||||||
@ -145,4 +155,4 @@ class _CardPinSetScreen extends State<CardPinSetScreen>{
|
|||||||
),
|
),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
|
import 'package:flutter_svg/svg.dart';
|
||||||
import 'package:kmobile/features/enquiry/screens/enquiry_screen.dart';
|
import 'package:kmobile/features/enquiry/screens/enquiry_screen.dart';
|
||||||
import 'package:material_symbols_icons/material_symbols_icons.dart';
|
import 'package:material_symbols_icons/material_symbols_icons.dart';
|
||||||
|
|
||||||
@ -9,95 +10,98 @@ class ChequeManagementScreen extends StatefulWidget {
|
|||||||
State<ChequeManagementScreen> createState() => _ChequeManagementScreen();
|
State<ChequeManagementScreen> createState() => _ChequeManagementScreen();
|
||||||
}
|
}
|
||||||
|
|
||||||
class _ChequeManagementScreen extends State<ChequeManagementScreen>{
|
class _ChequeManagementScreen extends State<ChequeManagementScreen> {
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return Scaffold(
|
return Scaffold(
|
||||||
appBar: AppBar(
|
appBar: AppBar(
|
||||||
leading: IconButton(icon: const Icon(Symbols.arrow_back_ios_new),
|
leading: IconButton(
|
||||||
|
icon: const Icon(Symbols.arrow_back_ios_new),
|
||||||
onPressed: () {
|
onPressed: () {
|
||||||
Navigator.pop(context);
|
Navigator.pop(context);
|
||||||
},),
|
},
|
||||||
title: const Text('Cheque Management', style: TextStyle(color: Colors.black,
|
),
|
||||||
fontWeight: FontWeight.w500),),
|
title: const Text(
|
||||||
|
'Cheque Management',
|
||||||
|
style: TextStyle(color: Colors.black, fontWeight: FontWeight.w500),
|
||||||
|
),
|
||||||
centerTitle: false,
|
centerTitle: false,
|
||||||
actions: const [
|
actions: [
|
||||||
Padding(
|
Padding(
|
||||||
padding: EdgeInsets.only(right: 10.0),
|
padding: const EdgeInsets.only(right: 10.0),
|
||||||
child: CircleAvatar(
|
child: CircleAvatar(
|
||||||
backgroundImage: AssetImage('assets/images/avatar.jpg'), // Replace with your image
|
backgroundColor: Colors.grey[200],
|
||||||
radius: 20,
|
radius: 20,
|
||||||
|
child: SvgPicture.asset(
|
||||||
|
'assets/images/avatar_male.svg',
|
||||||
|
width: 40,
|
||||||
|
height: 40,
|
||||||
|
fit: BoxFit.cover,
|
||||||
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
|
|
||||||
body: ListView(
|
body: ListView(
|
||||||
children: [
|
children: [
|
||||||
const SizedBox(height: 15),
|
const SizedBox(height: 15),
|
||||||
ChequeManagementTile(
|
ChequeManagementTile(
|
||||||
icon: Symbols.add,
|
icon: Symbols.add,
|
||||||
label: 'Request Checkbook',
|
label: 'Request Checkbook',
|
||||||
onTap: () {
|
onTap: () {},
|
||||||
|
),
|
||||||
},
|
const Divider(
|
||||||
|
height: 1,
|
||||||
),
|
),
|
||||||
|
|
||||||
const Divider(height: 1,),
|
|
||||||
|
|
||||||
ChequeManagementTile(
|
ChequeManagementTile(
|
||||||
icon: Symbols.data_alert,
|
icon: Symbols.data_alert,
|
||||||
label: 'Enquiry',
|
label: 'Enquiry',
|
||||||
onTap: () {
|
onTap: () {
|
||||||
Navigator.push(context, MaterialPageRoute(
|
Navigator.push(
|
||||||
builder: (context) => const EnquiryScreen()));
|
context,
|
||||||
|
MaterialPageRoute(
|
||||||
|
builder: (context) => const EnquiryScreen()));
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
|
const Divider(
|
||||||
const Divider(height: 1,),
|
height: 1,
|
||||||
|
),
|
||||||
ChequeManagementTile(
|
ChequeManagementTile(
|
||||||
icon: Symbols.approval_delegation,
|
icon: Symbols.approval_delegation,
|
||||||
label: 'Cheque Deposit',
|
label: 'Cheque Deposit',
|
||||||
onTap: () {
|
onTap: () {},
|
||||||
},
|
),
|
||||||
|
const Divider(
|
||||||
|
height: 1,
|
||||||
),
|
),
|
||||||
|
|
||||||
const Divider(height: 1,),
|
|
||||||
|
|
||||||
ChequeManagementTile(
|
ChequeManagementTile(
|
||||||
icon: Symbols.front_hand,
|
icon: Symbols.front_hand,
|
||||||
label: 'Stop Cheque',
|
label: 'Stop Cheque',
|
||||||
onTap: () {
|
onTap: () {},
|
||||||
},
|
),
|
||||||
|
const Divider(
|
||||||
|
height: 1,
|
||||||
),
|
),
|
||||||
|
|
||||||
const Divider(height: 1,),
|
|
||||||
|
|
||||||
ChequeManagementTile(
|
ChequeManagementTile(
|
||||||
icon: Symbols.cancel_presentation,
|
icon: Symbols.cancel_presentation,
|
||||||
label: 'Revoke Stop',
|
label: 'Revoke Stop',
|
||||||
onTap: () {
|
onTap: () {},
|
||||||
},
|
),
|
||||||
|
const Divider(
|
||||||
|
height: 1,
|
||||||
),
|
),
|
||||||
|
|
||||||
const Divider(height: 1,),
|
|
||||||
|
|
||||||
ChequeManagementTile(
|
ChequeManagementTile(
|
||||||
icon: Symbols.payments,
|
icon: Symbols.payments,
|
||||||
label: 'Positive Pay',
|
label: 'Positive Pay',
|
||||||
onTap: () {
|
onTap: () {},
|
||||||
},
|
),
|
||||||
|
const Divider(
|
||||||
|
height: 1,
|
||||||
),
|
),
|
||||||
|
|
||||||
const Divider(height: 1,),
|
|
||||||
|
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
class ChequeManagementTile extends StatelessWidget {
|
class ChequeManagementTile extends StatelessWidget {
|
||||||
@ -121,4 +125,4 @@ class ChequeManagementTile extends StatelessWidget {
|
|||||||
onTap: onTap,
|
onTap: onTap,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
|
import 'package:flutter_svg/svg.dart';
|
||||||
import 'package:material_symbols_icons/material_symbols_icons.dart';
|
import 'package:material_symbols_icons/material_symbols_icons.dart';
|
||||||
import 'package:url_launcher/url_launcher.dart';
|
import 'package:url_launcher/url_launcher.dart';
|
||||||
|
|
||||||
@ -9,7 +10,7 @@ class EnquiryScreen extends StatefulWidget {
|
|||||||
State<EnquiryScreen> createState() => _EnquiryScreen();
|
State<EnquiryScreen> createState() => _EnquiryScreen();
|
||||||
}
|
}
|
||||||
|
|
||||||
class _EnquiryScreen extends State<EnquiryScreen>{
|
class _EnquiryScreen extends State<EnquiryScreen> {
|
||||||
Future<void> _launchEmail() async {
|
Future<void> _launchEmail() async {
|
||||||
final Uri emailUri = Uri(
|
final Uri emailUri = Uri(
|
||||||
scheme: 'mailto',
|
scheme: 'mailto',
|
||||||
@ -35,24 +36,33 @@ class _EnquiryScreen extends State<EnquiryScreen>{
|
|||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return Scaffold(
|
return Scaffold(
|
||||||
appBar: AppBar(
|
appBar: AppBar(
|
||||||
leading: IconButton(icon: const Icon(Symbols.arrow_back_ios_new),
|
leading: IconButton(
|
||||||
|
icon: const Icon(Symbols.arrow_back_ios_new),
|
||||||
onPressed: () {
|
onPressed: () {
|
||||||
Navigator.pop(context);
|
Navigator.pop(context);
|
||||||
},),
|
},
|
||||||
title: const Text('Enquiry', style: TextStyle(color: Colors.black,
|
),
|
||||||
fontWeight: FontWeight.w500),),
|
title: const Text(
|
||||||
|
'Enquiry',
|
||||||
|
style: TextStyle(color: Colors.black, fontWeight: FontWeight.w500),
|
||||||
|
),
|
||||||
centerTitle: false,
|
centerTitle: false,
|
||||||
actions: const [
|
actions: [
|
||||||
Padding(
|
Padding(
|
||||||
padding: EdgeInsets.only(right: 10.0),
|
padding: const EdgeInsets.only(right: 10.0),
|
||||||
child: CircleAvatar(
|
child: CircleAvatar(
|
||||||
backgroundImage: AssetImage('assets/images/avatar.jpg'), // Replace with your image
|
backgroundColor: Colors.grey[200],
|
||||||
radius: 20,
|
radius: 20,
|
||||||
|
child: SvgPicture.asset(
|
||||||
|
'assets/images/avatar_male.svg',
|
||||||
|
width: 40,
|
||||||
|
height: 40,
|
||||||
|
fit: BoxFit.cover,
|
||||||
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
|
|
||||||
body: Padding(
|
body: Padding(
|
||||||
padding: const EdgeInsets.all(16.0),
|
padding: const EdgeInsets.all(16.0),
|
||||||
child: Column(
|
child: Column(
|
||||||
@ -89,5 +99,4 @@ class _EnquiryScreen extends State<EnquiryScreen>{
|
|||||||
),
|
),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
}
|
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
|
import 'package:flutter_svg/svg.dart';
|
||||||
import 'package:kmobile/features/beneficiaries/screens/add_beneficiary_screen.dart';
|
import 'package:kmobile/features/beneficiaries/screens/add_beneficiary_screen.dart';
|
||||||
import 'package:kmobile/features/fund_transfer/screens/fund_transfer_screen.dart';
|
import 'package:kmobile/features/fund_transfer/screens/fund_transfer_screen.dart';
|
||||||
import 'package:material_symbols_icons/material_symbols_icons.dart';
|
import 'package:material_symbols_icons/material_symbols_icons.dart';
|
||||||
@ -7,10 +8,12 @@ class FundTransferBeneficiaryScreen extends StatefulWidget {
|
|||||||
const FundTransferBeneficiaryScreen({super.key});
|
const FundTransferBeneficiaryScreen({super.key});
|
||||||
|
|
||||||
@override
|
@override
|
||||||
State<FundTransferBeneficiaryScreen> createState() => _FundTransferBeneficiaryScreen();
|
State<FundTransferBeneficiaryScreen> createState() =>
|
||||||
|
_FundTransferBeneficiaryScreen();
|
||||||
}
|
}
|
||||||
|
|
||||||
class _FundTransferBeneficiaryScreen extends State<FundTransferBeneficiaryScreen>{
|
class _FundTransferBeneficiaryScreen
|
||||||
|
extends State<FundTransferBeneficiaryScreen> {
|
||||||
final List<Map<String, String>> beneficiaries = [
|
final List<Map<String, String>> beneficiaries = [
|
||||||
{
|
{
|
||||||
'bank': 'State Bank Of India',
|
'bank': 'State Bank Of India',
|
||||||
@ -34,24 +37,33 @@ class _FundTransferBeneficiaryScreen extends State<FundTransferBeneficiaryScreen
|
|||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return Scaffold(
|
return Scaffold(
|
||||||
appBar: AppBar(
|
appBar: AppBar(
|
||||||
leading: IconButton(icon: const Icon(Symbols.arrow_back_ios_new),
|
leading: IconButton(
|
||||||
|
icon: const Icon(Symbols.arrow_back_ios_new),
|
||||||
onPressed: () {
|
onPressed: () {
|
||||||
Navigator.pop(context);
|
Navigator.pop(context);
|
||||||
},),
|
},
|
||||||
title: const Text('Fund Transfer - Beneficiary', style: TextStyle(color: Colors.black,
|
),
|
||||||
fontWeight: FontWeight.w500),),
|
title: const Text(
|
||||||
|
'Fund Transfer - Beneficiary',
|
||||||
|
style: TextStyle(color: Colors.black, fontWeight: FontWeight.w500),
|
||||||
|
),
|
||||||
centerTitle: false,
|
centerTitle: false,
|
||||||
actions: const [
|
actions: [
|
||||||
Padding(
|
Padding(
|
||||||
padding: EdgeInsets.only(right: 10.0),
|
padding: const EdgeInsets.only(right: 10.0),
|
||||||
child: CircleAvatar(
|
child: CircleAvatar(
|
||||||
backgroundImage: AssetImage('assets/images/avatar.jpg'), // Replace with your image
|
backgroundColor: Colors.grey[200],
|
||||||
radius: 20,
|
radius: 20,
|
||||||
|
child: SvgPicture.asset(
|
||||||
|
'assets/images/avatar_male.svg',
|
||||||
|
width: 40,
|
||||||
|
height: 40,
|
||||||
|
fit: BoxFit.cover,
|
||||||
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
|
|
||||||
body: Padding(
|
body: Padding(
|
||||||
padding: const EdgeInsets.all(8.0),
|
padding: const EdgeInsets.all(8.0),
|
||||||
child: ListView.builder(
|
child: ListView.builder(
|
||||||
@ -60,19 +72,23 @@ class _FundTransferBeneficiaryScreen extends State<FundTransferBeneficiaryScreen
|
|||||||
final beneficiary = beneficiaries[index];
|
final beneficiary = beneficiaries[index];
|
||||||
return ListTile(
|
return ListTile(
|
||||||
leading: const CircleAvatar(
|
leading: const CircleAvatar(
|
||||||
backgroundColor: Colors.blue,
|
backgroundColor: Colors.blue, child: Text('A')),
|
||||||
child: Text('A')),
|
|
||||||
title: Text(beneficiary['name']!),
|
title: Text(beneficiary['name']!),
|
||||||
subtitle: Text(beneficiary['bank']!),
|
subtitle: Text(beneficiary['bank']!),
|
||||||
trailing: IconButton(
|
trailing: IconButton(
|
||||||
icon: const Icon(Symbols.arrow_right, size: 20,),
|
icon: const Icon(
|
||||||
|
Symbols.arrow_right,
|
||||||
|
size: 20,
|
||||||
|
),
|
||||||
onPressed: () {
|
onPressed: () {
|
||||||
// Delete action
|
// Delete action
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
onTap: () {
|
onTap: () {
|
||||||
Navigator.push(context, MaterialPageRoute(
|
Navigator.push(
|
||||||
builder: (context) => const FundTransferScreen()));
|
context,
|
||||||
|
MaterialPageRoute(
|
||||||
|
builder: (context) => const FundTransferScreen()));
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
@ -82,8 +98,10 @@ class _FundTransferBeneficiaryScreen extends State<FundTransferBeneficiaryScreen
|
|||||||
padding: const EdgeInsets.only(bottom: 8.0),
|
padding: const EdgeInsets.only(bottom: 8.0),
|
||||||
child: FloatingActionButton(
|
child: FloatingActionButton(
|
||||||
onPressed: () {
|
onPressed: () {
|
||||||
Navigator.push(context, MaterialPageRoute(
|
Navigator.push(
|
||||||
builder: (context) => const AddBeneficiaryScreen()));
|
context,
|
||||||
|
MaterialPageRoute(
|
||||||
|
builder: (context) => const AddBeneficiaryScreen()));
|
||||||
},
|
},
|
||||||
backgroundColor: Colors.grey[300],
|
backgroundColor: Colors.grey[300],
|
||||||
foregroundColor: Colors.blue[900],
|
foregroundColor: Colors.blue[900],
|
||||||
@ -93,4 +111,4 @@ class _FundTransferBeneficiaryScreen extends State<FundTransferBeneficiaryScreen
|
|||||||
),
|
),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
|
import 'package:flutter_svg/svg.dart';
|
||||||
import 'package:flutter_swipe_button/flutter_swipe_button.dart';
|
import 'package:flutter_swipe_button/flutter_swipe_button.dart';
|
||||||
import 'package:material_symbols_icons/material_symbols_icons.dart';
|
import 'package:material_symbols_icons/material_symbols_icons.dart';
|
||||||
|
|
||||||
@ -58,13 +59,18 @@ class _QuickPayOutsideBankScreen extends State<QuickPayOutsideBankScreen> {
|
|||||||
style: TextStyle(color: Colors.black, fontWeight: FontWeight.w500),
|
style: TextStyle(color: Colors.black, fontWeight: FontWeight.w500),
|
||||||
),
|
),
|
||||||
centerTitle: false,
|
centerTitle: false,
|
||||||
actions: const [
|
actions: [
|
||||||
Padding(
|
Padding(
|
||||||
padding: EdgeInsets.only(right: 10.0),
|
padding: const EdgeInsets.only(right: 10.0),
|
||||||
child: CircleAvatar(
|
child: CircleAvatar(
|
||||||
backgroundImage: AssetImage('assets/images/avatar.jpg'),
|
backgroundColor: Colors.grey[200],
|
||||||
// Replace with your image
|
|
||||||
radius: 20,
|
radius: 20,
|
||||||
|
child: SvgPicture.asset(
|
||||||
|
'assets/images/avatar_male.svg',
|
||||||
|
width: 40,
|
||||||
|
height: 40,
|
||||||
|
fit: BoxFit.cover,
|
||||||
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
|
import 'package:flutter_svg/svg.dart';
|
||||||
import 'package:kmobile/features/quick_pay/screens/quick_pay_outside_bank_screen.dart';
|
import 'package:kmobile/features/quick_pay/screens/quick_pay_outside_bank_screen.dart';
|
||||||
import 'package:kmobile/features/quick_pay/screens/quick_pay_within_bank_screen.dart';
|
import 'package:kmobile/features/quick_pay/screens/quick_pay_within_bank_screen.dart';
|
||||||
import 'package:material_symbols_icons/material_symbols_icons.dart';
|
import 'package:material_symbols_icons/material_symbols_icons.dart';
|
||||||
@ -26,13 +27,18 @@ class _QuickPayScreen extends State<QuickPayScreen> {
|
|||||||
style: TextStyle(color: Colors.black, fontWeight: FontWeight.w500),
|
style: TextStyle(color: Colors.black, fontWeight: FontWeight.w500),
|
||||||
),
|
),
|
||||||
centerTitle: false,
|
centerTitle: false,
|
||||||
actions: const [
|
actions: [
|
||||||
Padding(
|
Padding(
|
||||||
padding: EdgeInsets.only(right: 10.0),
|
padding: const EdgeInsets.only(right: 10.0),
|
||||||
child: CircleAvatar(
|
child: CircleAvatar(
|
||||||
backgroundImage: AssetImage('assets/images/avatar.jpg'),
|
backgroundColor: Colors.grey[200],
|
||||||
// Replace with your image
|
|
||||||
radius: 20,
|
radius: 20,
|
||||||
|
child: SvgPicture.asset(
|
||||||
|
'assets/images/avatar_male.svg',
|
||||||
|
width: 40,
|
||||||
|
height: 40,
|
||||||
|
fit: BoxFit.cover,
|
||||||
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
|
import 'package:flutter_svg/svg.dart';
|
||||||
import 'package:flutter_swipe_button/flutter_swipe_button.dart';
|
import 'package:flutter_swipe_button/flutter_swipe_button.dart';
|
||||||
import 'package:material_symbols_icons/material_symbols_icons.dart';
|
import 'package:material_symbols_icons/material_symbols_icons.dart';
|
||||||
|
|
||||||
@ -15,7 +16,8 @@ class _QuickPayWithinBankScreen extends State<QuickPayWithinBankScreen> {
|
|||||||
final _formKey = GlobalKey<FormState>();
|
final _formKey = GlobalKey<FormState>();
|
||||||
|
|
||||||
final TextEditingController accountNumberController = TextEditingController();
|
final TextEditingController accountNumberController = TextEditingController();
|
||||||
final TextEditingController confirmAccountNumberController = TextEditingController();
|
final TextEditingController confirmAccountNumberController =
|
||||||
|
TextEditingController();
|
||||||
final TextEditingController nameController = TextEditingController();
|
final TextEditingController nameController = TextEditingController();
|
||||||
final TextEditingController amountController = TextEditingController();
|
final TextEditingController amountController = TextEditingController();
|
||||||
|
|
||||||
@ -34,13 +36,18 @@ class _QuickPayWithinBankScreen extends State<QuickPayWithinBankScreen> {
|
|||||||
style: TextStyle(color: Colors.black, fontWeight: FontWeight.w500),
|
style: TextStyle(color: Colors.black, fontWeight: FontWeight.w500),
|
||||||
),
|
),
|
||||||
centerTitle: false,
|
centerTitle: false,
|
||||||
actions: const [
|
actions: [
|
||||||
Padding(
|
Padding(
|
||||||
padding: EdgeInsets.only(right: 10.0),
|
padding: const EdgeInsets.only(right: 10.0),
|
||||||
child: CircleAvatar(
|
child: CircleAvatar(
|
||||||
backgroundImage: AssetImage('assets/images/avatar.jpg'),
|
backgroundColor: Colors.grey[200],
|
||||||
// Replace with your image
|
|
||||||
radius: 20,
|
radius: 20,
|
||||||
|
child: SvgPicture.asset(
|
||||||
|
'assets/images/avatar_male.svg',
|
||||||
|
width: 40,
|
||||||
|
height: 40,
|
||||||
|
fit: BoxFit.cover,
|
||||||
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
@ -210,13 +217,13 @@ class _QuickPayWithinBankScreen extends State<QuickPayWithinBankScreen> {
|
|||||||
if (_formKey.currentState!.validate()) {
|
if (_formKey.currentState!.validate()) {
|
||||||
// Perform payment logic
|
// Perform payment logic
|
||||||
ScaffoldMessenger.of(context).showSnackBar(
|
ScaffoldMessenger.of(context).showSnackBar(
|
||||||
const SnackBar(
|
const SnackBar(content: Text('Processing Payment...')),
|
||||||
content: Text('Processing Payment...')),
|
|
||||||
);
|
);
|
||||||
Navigator.push(
|
Navigator.push(
|
||||||
context,
|
context,
|
||||||
MaterialPageRoute(
|
MaterialPageRoute(
|
||||||
builder: (context) => const TransactionPinScreen()));
|
builder: (context) =>
|
||||||
|
const TransactionPinScreen()));
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
|
Loading…
x
Reference in New Issue
Block a user