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:
@@ -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),
|
||||||
],
|
],
|
||||||
|
|||||||
@@ -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(
|
||||||
|
|||||||
@@ -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),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
|
|||||||
@@ -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,
|
||||||
|
|||||||
@@ -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:
|
||||||
|
|||||||
@@ -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(
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
Reference in New Issue
Block a user