UI Phase 2 (L8): unify Profile section headers with AppSectionHeader
The Profile screen's card section titles used plain bold titleMedium text, inconsistent with the cyber accent-bar section headers elsewhere. Convert "Profile Photo", "Face Verification", "Account details", "Password" and "Offices" to AppSectionHeader so they read the same as the rest of the app. Verified: flutter analyze lib clean; flutter build web green; visual QA (Profile) in dark. Co-Authored-By: claude-flow <ruv@ruv.net>
This commit is contained in:
@@ -14,6 +14,7 @@ import '../../widgets/face_verification_overlay.dart';
|
||||
import '../../widgets/multi_select_picker.dart';
|
||||
import '../../widgets/qr_verification_dialog.dart';
|
||||
import '../../widgets/app_page_header.dart';
|
||||
import '../../widgets/app_section_header.dart';
|
||||
import '../../widgets/responsive_body.dart';
|
||||
import '../../utils/snackbar.dart';
|
||||
|
||||
@@ -102,10 +103,7 @@ class _ProfileScreenState extends ConsumerState<ProfileScreen> {
|
||||
child: Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
Text(
|
||||
'Account details',
|
||||
style: Theme.of(context).textTheme.titleMedium,
|
||||
),
|
||||
const AppSectionHeader('Account details', padding: EdgeInsets.zero),
|
||||
const SizedBox(height: 12),
|
||||
// Email (read-only)
|
||||
TextFormField(
|
||||
@@ -151,10 +149,7 @@ class _ProfileScreenState extends ConsumerState<ProfileScreen> {
|
||||
child: Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
Text(
|
||||
'Password',
|
||||
style: Theme.of(context).textTheme.titleMedium,
|
||||
),
|
||||
const AppSectionHeader('Password', padding: EdgeInsets.zero),
|
||||
const SizedBox(height: 8),
|
||||
const Text(
|
||||
'Set or change your password. OAuth users (Google/Meta) can set a password here.',
|
||||
@@ -224,10 +219,7 @@ class _ProfileScreenState extends ConsumerState<ProfileScreen> {
|
||||
child: Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
Text(
|
||||
'Offices',
|
||||
style: Theme.of(context).textTheme.titleMedium,
|
||||
),
|
||||
const AppSectionHeader('Offices', padding: EdgeInsets.zero),
|
||||
const SizedBox(height: 12),
|
||||
officesAsync.when(
|
||||
data: (offices) {
|
||||
@@ -286,7 +278,7 @@ class _ProfileScreenState extends ConsumerState<ProfileScreen> {
|
||||
child: Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
Text('Profile Photo', style: theme.textTheme.titleMedium),
|
||||
const AppSectionHeader('Profile Photo', padding: EdgeInsets.zero),
|
||||
const SizedBox(height: 16),
|
||||
Center(
|
||||
child: Stack(
|
||||
@@ -359,7 +351,7 @@ class _ProfileScreenState extends ConsumerState<ProfileScreen> {
|
||||
child: Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
Text('Face Verification', style: theme.textTheme.titleMedium),
|
||||
const AppSectionHeader('Face Verification', padding: EdgeInsets.zero),
|
||||
const SizedBox(height: 8),
|
||||
Text(
|
||||
'Enroll your face for attendance verification. '
|
||||
|
||||
Reference in New Issue
Block a user