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:
2025-06-02 10:42:54 +05:30
parent a2d1ac5226
commit 0d2dfc817e
17 changed files with 346 additions and 231 deletions

View File

@@ -1,4 +1,5 @@
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/fund_transfer/screens/fund_transfer_screen.dart';
import 'package:material_symbols_icons/material_symbols_icons.dart';
@@ -7,10 +8,12 @@ class FundTransferBeneficiaryScreen extends StatefulWidget {
const FundTransferBeneficiaryScreen({super.key});
@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 = [
{
'bank': 'State Bank Of India',
@@ -34,24 +37,33 @@ class _FundTransferBeneficiaryScreen extends State<FundTransferBeneficiaryScreen
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
leading: IconButton(icon: const Icon(Symbols.arrow_back_ios_new),
leading: IconButton(
icon: const Icon(Symbols.arrow_back_ios_new),
onPressed: () {
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,
actions: const [
actions: [
Padding(
padding: EdgeInsets.only(right: 10.0),
padding: const EdgeInsets.only(right: 10.0),
child: CircleAvatar(
backgroundImage: AssetImage('assets/images/avatar.jpg'), // Replace with your image
backgroundColor: Colors.grey[200],
radius: 20,
child: SvgPicture.asset(
'assets/images/avatar_male.svg',
width: 40,
height: 40,
fit: BoxFit.cover,
),
),
),
],
),
body: Padding(
padding: const EdgeInsets.all(8.0),
child: ListView.builder(
@@ -60,19 +72,23 @@ class _FundTransferBeneficiaryScreen extends State<FundTransferBeneficiaryScreen
final beneficiary = beneficiaries[index];
return ListTile(
leading: const CircleAvatar(
backgroundColor: Colors.blue,
child: Text('A')),
backgroundColor: Colors.blue, child: Text('A')),
title: Text(beneficiary['name']!),
subtitle: Text(beneficiary['bank']!),
trailing: IconButton(
icon: const Icon(Symbols.arrow_right, size: 20,),
icon: const Icon(
Symbols.arrow_right,
size: 20,
),
onPressed: () {
// Delete action
},
),
onTap: () {
Navigator.push(context, MaterialPageRoute(
builder: (context) => const FundTransferScreen()));
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => const FundTransferScreen()));
},
);
},
@@ -82,8 +98,10 @@ class _FundTransferBeneficiaryScreen extends State<FundTransferBeneficiaryScreen
padding: const EdgeInsets.only(bottom: 8.0),
child: FloatingActionButton(
onPressed: () {
Navigator.push(context, MaterialPageRoute(
builder: (context) => const AddBeneficiaryScreen()));
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => const AddBeneficiaryScreen()));
},
backgroundColor: Colors.grey[300],
foregroundColor: Colors.blue[900],
@@ -93,4 +111,4 @@ class _FundTransferBeneficiaryScreen extends State<FundTransferBeneficiaryScreen
),
);
}
}
}