feat: Refactor onboarding experience and personal info pages

- Updated ExperiencePage to include subtitles in ExperienceSectionTitle.
- Modified ExperienceSectionTitle widget to accept an optional subtitle parameter.
- Refactored PersonalInfoPage to improve imports and structure.
- Removed unused PersonalInfoContent and PersonalInfoForm widgets.
- Introduced new widgets: EditableField, FieldLabel, ReadOnlyField, TappableRow, and LanguageSelector for better modularity.
- Added AccountCard and SecurityNotice widgets for bank account section.
- Enhanced SaveButton to utilize UiButton for consistency.
This commit is contained in:
Achintha Isuru
2026-03-01 03:06:28 -05:00
parent ea6b3fcc76
commit 015f1fbc1b
18 changed files with 562 additions and 530 deletions

View File

@@ -54,7 +54,10 @@ class CertificatesPage extends StatelessWidget {
final List<StaffCertificate> documents = state.certificates;
return Scaffold(
backgroundColor: UiColors.background, // Matches 0xFFF8FAFC
appBar: UiAppBar(
title: t.staff_certificates.title,
showBackButton: true,
),
body: SingleChildScrollView(
child: Column(
children: <Widget>[

View File

@@ -1,8 +1,6 @@
import 'package:core_localization/core_localization.dart';
import 'package:design_system/design_system.dart';
import 'package:flutter/material.dart';
import 'package:flutter_modular/flutter_modular.dart';
import 'package:krow_core/core.dart';
import 'package:core_localization/core_localization.dart';
class CertificatesHeader extends StatelessWidget {
const CertificatesHeader({
@@ -36,39 +34,13 @@ class CertificatesHeader extends StatelessWidget {
begin: Alignment.topLeft,
end: Alignment.bottomRight,
colors: <Color>[
UiColors.primary,
UiColors.primary.withValues(alpha: 0.8),
UiColors.primary.withValues(alpha: 0.5),
],
),
),
child: Column(
children: <Widget>[
Row(
children: <Widget>[
GestureDetector(
onTap: () => Modular.to.popSafe(),
child: Container(
width: UiConstants.space10,
height: UiConstants.space10,
decoration: BoxDecoration(
color: UiColors.white.withValues(alpha: 0.1),
shape: BoxShape.circle,
),
child: const Icon(
UiIcons.chevronLeft,
color: UiColors.white,
size: UiConstants.iconMd,
),
),
),
const SizedBox(width: UiConstants.space3),
Text(
t.staff_certificates.title,
style: UiTypography.headline3m.white,
),
],
),
const SizedBox(height: UiConstants.space8),
Row(
children: <Widget>[
SizedBox(