Refactor profile data handling and update UI components

- Changed references from companyProfileData to profileData across multiple profile page views for consistency.
- Updated UI elements to display user-specific information such as username, email, role, department, and position.
- Modified the profile screen to fetch user profile data instead of company profile data.
- Added new string constants for user-related fields in ProfileStrings.
This commit is contained in:
amirrezaghabeli
2025-11-20 17:33:30 +03:30
parent 64a1c30e6c
commit d01e028dc1
6 changed files with 76 additions and 52 deletions
+2
View File
@@ -46,6 +46,8 @@ app.*.map.json
# FVM Version Cache
.fvm/
.fvmrc
.vscode/
# Firebase Configuration (sensitive files - should not be in version control)
**/android/app/google-services.json
+18 -20
View File
@@ -73,7 +73,7 @@ class _DesktopProfilePageState extends State<DesktopProfilePage> {
);
}
if (viewModel.companyProfileData == null) {
if (viewModel.profileData == null) {
return const Expanded(
child: Center(child: Text(CommonStrings.noData)),
);
@@ -89,29 +89,27 @@ class _DesktopProfilePageState extends State<DesktopProfilePage> {
children: [
SizedBox(height: 36.0.h()),
TitleDescription(
title: ProfileStrings.companyName,
description: viewModel.companyProfileData!.name!,
),
TitleDescription(
title: ProfileStrings.nationalId,
description: viewModel.companyProfileData!.id!,
),
TitleDescription(
title: ProfileStrings.registrationNumber,
title: ProfileStrings.username,
description:
viewModel
.companyProfileData!
.registrationNumber!,
),
const TitleDescription(
title: ProfileStrings.businessType,
description: '-',
viewModel.profileData!.username ?? '',
),
TitleDescription(
title: ProfileStrings.founded,
title: ProfileStrings.email,
description: viewModel.profileData!.email ?? '',
),
TitleDescription(
title: ProfileStrings.role,
description: viewModel.profileData!.role ?? '',
),
TitleDescription(
title: ProfileStrings.department,
description:
viewModel.companyProfileData!.foundedYear!
.toString(),
viewModel.profileData!.department ?? '',
),
TitleDescription(
title: ProfileStrings.position,
description:
viewModel.profileData!.position ?? '',
),
SizedBox(height: 24.0.h()),
// Theme Toggle
+13 -15
View File
@@ -65,7 +65,7 @@ class _MobileProfilePageState extends State<MobileProfilePage> {
return Center(child: Text(viewModel.errorMessage!));
}
if (viewModel.companyProfileData == null) {
if (viewModel.profileData == null) {
return const Center(child: Text(CommonStrings.noData));
}
@@ -92,26 +92,24 @@ class _MobileProfilePageState extends State<MobileProfilePage> {
SizedBox(height: 24.0.h()),
TitleDescription(
title: ProfileStrings.companyName,
description: viewModel.companyProfileData!.name!,
title: ProfileStrings.username,
description: viewModel.profileData!.username ?? '',
),
TitleDescription(
title: ProfileStrings.nationalId,
description: viewModel.companyProfileData!.id!,
title: ProfileStrings.email,
description: viewModel.profileData!.email ?? '',
),
TitleDescription(
title: ProfileStrings.registrationNumber,
description:
viewModel.companyProfileData!.registrationNumber!,
),
const TitleDescription(
title: ProfileStrings.businessType,
description: '-',
title: ProfileStrings.role,
description: viewModel.profileData!.role ?? '',
),
TitleDescription(
title: ProfileStrings.founded,
description:
viewModel.companyProfileData!.foundedYear!.toString(),
title: ProfileStrings.department,
description: viewModel.profileData!.department ?? '',
),
TitleDescription(
title: ProfileStrings.position,
description: viewModel.profileData!.position ?? '',
),
SizedBox(height: 32.0.h()),
Align(
+3 -2
View File
@@ -28,7 +28,8 @@ class _ProfileScreenState extends State<ProfileScreen> {
_tabService.addListener(_onTabChanged);
WidgetsBinding.instance.addPostFrameCallback((_) {
_viewModel.getCompanyProfile();
// _viewModel.getCompanyProfile();
_viewModel.getProfile();
});
}
@@ -41,7 +42,7 @@ class _ProfileScreenState extends State<ProfileScreen> {
void _onTabChanged() {
// Tab index 2 is Profile
if (_tabService.currentTabIndex == 2 && mounted) {
_viewModel.getCompanyProfile();
_viewModel.getProfile();
}
}
+35 -15
View File
@@ -62,7 +62,7 @@ class _TabletProfilePageState extends State<TabletProfilePage> {
return Center(child: Text(viewModel.errorMessage!));
}
if (viewModel.companyProfileData == null) {
if (viewModel.profileData == null) {
return const Center(child: Text(CommonStrings.noData));
}
@@ -86,27 +86,47 @@ class _TabletProfilePageState extends State<TabletProfilePage> {
children: [
SizedBox(height: 128.0.h()),
TitleDescription(
title: ProfileStrings.companyName,
description: viewModel.companyProfileData!.name!,
title: ProfileStrings.username,
description: viewModel.profileData!.username ?? '',
),
TitleDescription(
title: ProfileStrings.nationalId,
description: viewModel.companyProfileData!.id!,
title: ProfileStrings.email,
description: viewModel.profileData!.email ?? '',
),
TitleDescription(
title: ProfileStrings.registrationNumber,
description:
viewModel.companyProfileData!.registrationNumber!,
),
const TitleDescription(
title: ProfileStrings.businessType,
description: '-',
title: ProfileStrings.role,
description: viewModel.profileData!.role ?? '',
),
TitleDescription(
title: ProfileStrings.founded,
description:
viewModel.companyProfileData!.foundedYear!.toString(),
title: ProfileStrings.department,
description: viewModel.profileData!.department ?? '',
),
TitleDescription(
title: ProfileStrings.position,
description: viewModel.profileData!.position ?? '',
),
// TitleDescription(
// title: ProfileStrings.companyName,
// description: viewModel.companyProfileData!.name!,
// ),
// TitleDescription(
// title: ProfileStrings.nationalId,
// description: viewModel.companyProfileData!.id!,
// ),
// TitleDescription(
// title: ProfileStrings.registrationNumber,
// description:
// viewModel.companyProfileData!.registrationNumber!,
// ),
// const TitleDescription(
// title: ProfileStrings.businessType,
// description: '-',
// ),
// TitleDescription(
// title: ProfileStrings.founded,
// description:
// viewModel.companyProfileData!.foundedYear!.toString(),
// ),
SizedBox(height: 24.0.h()),
// Theme Toggle
Align(
@@ -13,4 +13,9 @@ class ProfileStrings {
static const String logout = 'Log out';
static const String contracts = 'Contracts';
static const String notifications = 'Notifications';
static const String username = 'User Name';
static const String email = 'email';
static const String role = 'role';
static const String department = 'department';
static const String position = 'position';
}