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/multi_select_picker.dart';
|
||||||
import '../../widgets/qr_verification_dialog.dart';
|
import '../../widgets/qr_verification_dialog.dart';
|
||||||
import '../../widgets/app_page_header.dart';
|
import '../../widgets/app_page_header.dart';
|
||||||
|
import '../../widgets/app_section_header.dart';
|
||||||
import '../../widgets/responsive_body.dart';
|
import '../../widgets/responsive_body.dart';
|
||||||
import '../../utils/snackbar.dart';
|
import '../../utils/snackbar.dart';
|
||||||
|
|
||||||
@@ -102,10 +103,7 @@ class _ProfileScreenState extends ConsumerState<ProfileScreen> {
|
|||||||
child: Column(
|
child: Column(
|
||||||
crossAxisAlignment: CrossAxisAlignment.start,
|
crossAxisAlignment: CrossAxisAlignment.start,
|
||||||
children: [
|
children: [
|
||||||
Text(
|
const AppSectionHeader('Account details', padding: EdgeInsets.zero),
|
||||||
'Account details',
|
|
||||||
style: Theme.of(context).textTheme.titleMedium,
|
|
||||||
),
|
|
||||||
const SizedBox(height: 12),
|
const SizedBox(height: 12),
|
||||||
// Email (read-only)
|
// Email (read-only)
|
||||||
TextFormField(
|
TextFormField(
|
||||||
@@ -151,10 +149,7 @@ class _ProfileScreenState extends ConsumerState<ProfileScreen> {
|
|||||||
child: Column(
|
child: Column(
|
||||||
crossAxisAlignment: CrossAxisAlignment.start,
|
crossAxisAlignment: CrossAxisAlignment.start,
|
||||||
children: [
|
children: [
|
||||||
Text(
|
const AppSectionHeader('Password', padding: EdgeInsets.zero),
|
||||||
'Password',
|
|
||||||
style: Theme.of(context).textTheme.titleMedium,
|
|
||||||
),
|
|
||||||
const SizedBox(height: 8),
|
const SizedBox(height: 8),
|
||||||
const Text(
|
const Text(
|
||||||
'Set or change your password. OAuth users (Google/Meta) can set a password here.',
|
'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(
|
child: Column(
|
||||||
crossAxisAlignment: CrossAxisAlignment.start,
|
crossAxisAlignment: CrossAxisAlignment.start,
|
||||||
children: [
|
children: [
|
||||||
Text(
|
const AppSectionHeader('Offices', padding: EdgeInsets.zero),
|
||||||
'Offices',
|
|
||||||
style: Theme.of(context).textTheme.titleMedium,
|
|
||||||
),
|
|
||||||
const SizedBox(height: 12),
|
const SizedBox(height: 12),
|
||||||
officesAsync.when(
|
officesAsync.when(
|
||||||
data: (offices) {
|
data: (offices) {
|
||||||
@@ -286,7 +278,7 @@ class _ProfileScreenState extends ConsumerState<ProfileScreen> {
|
|||||||
child: Column(
|
child: Column(
|
||||||
crossAxisAlignment: CrossAxisAlignment.start,
|
crossAxisAlignment: CrossAxisAlignment.start,
|
||||||
children: [
|
children: [
|
||||||
Text('Profile Photo', style: theme.textTheme.titleMedium),
|
const AppSectionHeader('Profile Photo', padding: EdgeInsets.zero),
|
||||||
const SizedBox(height: 16),
|
const SizedBox(height: 16),
|
||||||
Center(
|
Center(
|
||||||
child: Stack(
|
child: Stack(
|
||||||
@@ -359,7 +351,7 @@ class _ProfileScreenState extends ConsumerState<ProfileScreen> {
|
|||||||
child: Column(
|
child: Column(
|
||||||
crossAxisAlignment: CrossAxisAlignment.start,
|
crossAxisAlignment: CrossAxisAlignment.start,
|
||||||
children: [
|
children: [
|
||||||
Text('Face Verification', style: theme.textTheme.titleMedium),
|
const AppSectionHeader('Face Verification', padding: EdgeInsets.zero),
|
||||||
const SizedBox(height: 8),
|
const SizedBox(height: 8),
|
||||||
Text(
|
Text(
|
||||||
'Enroll your face for attendance verification. '
|
'Enroll your face for attendance verification. '
|
||||||
|
|||||||
Reference in New Issue
Block a user