Refactor widgets, add bloc dep

Clean up widget code and update a dependency:

- Remove redundant const qualifiers and tidy widget children in several skeleton/header widgets for consistent style.
- Add super.key to TaxFormsProgressOverview, TaxFormStatusBadge, and AccountCard constructors.
- Simplify AccountCard by consolidating its constructor into a single const declaration.
- Minor fixes: adjust Image.onError parameter, reformat CircleAvatar/Icon construction in edit_profile_page.
- Add bloc ^8.1.4 to staff/authentication pubspec.

These changes are stylistic and aim to improve consistency and constructor patterns across the codebase.
This commit is contained in:
Achintha Isuru
2026-03-18 10:33:19 -04:00
parent 9ee8467632
commit 3e5b6af8dc
9 changed files with 28 additions and 28 deletions

View File

@@ -12,22 +12,22 @@ class ClientHomeHeaderSkeleton extends StatelessWidget {
Widget build(BuildContext context) { Widget build(BuildContext context) {
return const UiShimmer( return const UiShimmer(
child: Padding( child: Padding(
padding: const EdgeInsets.fromLTRB( padding: EdgeInsets.fromLTRB(
UiConstants.space4, UiConstants.space4,
UiConstants.space4, UiConstants.space4,
UiConstants.space4, UiConstants.space4,
UiConstants.space3, UiConstants.space3,
), ),
child: const Row( child: Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween, mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: const <Widget>[ children: <Widget>[
const Row( Row(
children: const <Widget>[ children: <Widget>[
const UiShimmerCircle(size: UiConstants.space10), UiShimmerCircle(size: UiConstants.space10),
const SizedBox(width: UiConstants.space3), SizedBox(width: UiConstants.space3),
const Column( Column(
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start,
children: const <Widget>[ children: <Widget>[
UiShimmerLine(width: 80, height: 12), UiShimmerLine(width: 80, height: 12),
SizedBox(height: UiConstants.space1), SizedBox(height: UiConstants.space1),
UiShimmerLine(width: 120, height: 16), UiShimmerLine(width: 120, height: 16),
@@ -35,9 +35,9 @@ class ClientHomeHeaderSkeleton extends StatelessWidget {
), ),
], ],
), ),
const Row( Row(
spacing: UiConstants.space2, spacing: UiConstants.space2,
children: const <Widget>[ children: <Widget>[
UiShimmerBox(width: 36, height: 36), UiShimmerBox(width: 36, height: 36),
UiShimmerBox(width: 36, height: 36), UiShimmerBox(width: 36, height: 36),
], ],

View File

@@ -12,7 +12,7 @@ class ReorderSectionSkeleton extends StatelessWidget {
Widget build(BuildContext context) { Widget build(BuildContext context) {
return const Column( return const Column(
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start,
children: const <Widget>[ children: <Widget>[
UiShimmerSectionHeader(), UiShimmerSectionHeader(),
SizedBox(height: UiConstants.space2), SizedBox(height: UiConstants.space2),
SizedBox( SizedBox(

View File

@@ -21,9 +21,9 @@ class MetricCardSkeleton extends StatelessWidget {
// Icon + label row // Icon + label row
const Row( const Row(
children: <Widget>[ children: <Widget>[
const UiShimmerCircle(size: UiConstants.space6), UiShimmerCircle(size: UiConstants.space6),
const SizedBox(width: UiConstants.space2), SizedBox(width: UiConstants.space2),
const Expanded( Expanded(
child: UiShimmerLine(width: 60, height: 10), child: UiShimmerLine(width: 60, height: 10),
), ),
], ],

View File

@@ -50,14 +50,18 @@ class _EditProfilePageState extends State<EditProfilePage> {
key: _formKey, key: _formKey,
child: Column( child: Column(
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[ children: <Widget>[
Center( Center(
child: Stack( child: Stack(
children: <Widget>[ children: <Widget>[
const CircleAvatar( const CircleAvatar(
radius: 50, radius: 50,
backgroundColor: UiColors.bgSecondary, backgroundColor: UiColors.bgSecondary,
child: const Icon(UiIcons.user, size: 40, color: UiColors.primary), child: Icon(
UiIcons.user,
size: 40,
color: UiColors.primary,
),
), ),
Positioned( Positioned(
bottom: 0, bottom: 0,

View File

@@ -26,6 +26,7 @@ dependencies:
path: ../../../design_system path: ../../../design_system
core_localization: core_localization:
path: ../../../core_localization path: ../../../core_localization
bloc: ^8.1.4
dev_dependencies: dev_dependencies:

View File

@@ -27,7 +27,7 @@ class LocationMapPlaceholder extends StatelessWidget {
// In a real app with keys, this would verify visually. // In a real app with keys, this would verify visually.
// For now we use a generic placeholder color/icon to avoid broken images. // For now we use a generic placeholder color/icon to avoid broken images.
fit: BoxFit.cover, fit: BoxFit.cover,
onError: (_, __) {}, onError: (_, _) {},
), ),
), ),
child: Stack( child: Stack(

View File

@@ -4,7 +4,7 @@ import 'package:krow_domain/krow_domain.dart';
/// Widget displaying the overall progress of tax form completion. /// Widget displaying the overall progress of tax form completion.
class TaxFormsProgressOverview extends StatelessWidget { class TaxFormsProgressOverview extends StatelessWidget {
const TaxFormsProgressOverview({required this.forms}); const TaxFormsProgressOverview({super.key, required this.forms});
final List<TaxForm> forms; final List<TaxForm> forms;

View File

@@ -4,7 +4,7 @@ import 'package:krow_domain/krow_domain.dart';
/// Widget displaying status badge for a tax form. /// Widget displaying status badge for a tax form.
class TaxFormStatusBadge extends StatelessWidget { class TaxFormStatusBadge extends StatelessWidget {
const TaxFormStatusBadge({required this.status}); const TaxFormStatusBadge({super.key, required this.status});
final TaxFormStatus status; final TaxFormStatus status;

View File

@@ -3,15 +3,10 @@ import 'package:flutter/material.dart';
import 'package:krow_domain/krow_domain.dart'; import 'package:krow_domain/krow_domain.dart';
class AccountCard extends StatelessWidget { class AccountCard extends StatelessWidget {
const AccountCard({super.key, required this.account, required this.strings});
final BankAccount account; final BankAccount account;
final dynamic strings; final dynamic strings;
const AccountCard({
super.key,
required this.account,
required this.strings,
});
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
final bool isPrimary = account.isPrimary; final bool isPrimary = account.isPrimary;