diff --git a/apps/mobile/packages/design_system/lib/src/ui_colors.dart b/apps/mobile/packages/design_system/lib/src/ui_colors.dart index 1613e791..b5407ef3 100644 --- a/apps/mobile/packages/design_system/lib/src/ui_colors.dart +++ b/apps/mobile/packages/design_system/lib/src/ui_colors.dart @@ -245,7 +245,7 @@ class UiColors { static const Color buttonPrimaryStill = primary; /// Primary button hover (#082EB2) - static const Color buttonPrimaryHover = Color(0xFF082EB2); + static const Color buttonPrimaryHover = Color.fromARGB(255, 8, 46, 178); /// Primary button inactive (#F1F3F5) static const Color buttonPrimaryInactive = secondary; diff --git a/apps/mobile/packages/design_system/lib/src/ui_typography.dart b/apps/mobile/packages/design_system/lib/src/ui_typography.dart index 2293ecd8..37b7c0b9 100644 --- a/apps/mobile/packages/design_system/lib/src/ui_typography.dart +++ b/apps/mobile/packages/design_system/lib/src/ui_typography.dart @@ -368,7 +368,6 @@ class UiTypography { fontWeight: FontWeight.w400, fontSize: 12, height: 1.5, - letterSpacing: -0.1, color: UiColors.textPrimary, ); diff --git a/apps/mobile/packages/design_system/lib/src/widgets/ui_notice_banner.dart b/apps/mobile/packages/design_system/lib/src/widgets/ui_notice_banner.dart index 478f0c91..878b34ea 100644 --- a/apps/mobile/packages/design_system/lib/src/widgets/ui_notice_banner.dart +++ b/apps/mobile/packages/design_system/lib/src/widgets/ui_notice_banner.dart @@ -67,39 +67,45 @@ class UiNoticeBanner extends StatelessWidget { color: backgroundColor ?? UiColors.primary.withValues(alpha: 0.08), borderRadius: borderRadius ?? UiConstants.radiusLg, ), - child: Row( - crossAxisAlignment: CrossAxisAlignment.start, + child: Column( children: [ - if (leading != null) ...[ - leading!, - const SizedBox(width: UiConstants.space3), - ] else if (icon != null) ...[ - Icon(icon, color: iconColor ?? UiColors.primary, size: 24), - const SizedBox(width: UiConstants.space3), - ], - Expanded( - child: Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ + Row( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + if (leading != null) ...[ + leading!, + const SizedBox(width: UiConstants.space3), + ] else if (icon != null) ...[ + Icon(icon, color: iconColor ?? UiColors.primary, size: 24), + const SizedBox(width: UiConstants.space3), Text( title, - style: UiTypography.body2b.copyWith(color: titleColor), - ), - if (description != null) ...[ - const SizedBox(height: 2), - Text( - description!, - style: UiTypography.body3r.copyWith( - color: descriptionColor, - ), + style: UiTypography.body2b.copyWith( + color: titleColor ?? UiColors.primary, ), - ], - if (action != null) ...[ - const SizedBox(height: UiConstants.space2), - action!, - ], + ), ], - ), + ], + ), + + Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + if (description != null) ...[ + const SizedBox(height: UiConstants.space2), + Text( + description!, + style: UiTypography.body3r.copyWith( + //color: descriptionColor ?? UiColors.textSecondary, + color: descriptionColor ?? UiColors.primary, + ), + ), + ], + if (action != null) ...[ + const SizedBox(height: UiConstants.space2), + action!, + ], + ], ), ], ), diff --git a/apps/mobile/packages/features/staff/profile_sections/compliance/certificates/lib/src/data/repositories_impl/certificates_repository_impl.dart b/apps/mobile/packages/features/staff/profile_sections/compliance/certificates/lib/src/data/repositories_impl/certificates_repository_impl.dart index b1762a77..60b45251 100644 --- a/apps/mobile/packages/features/staff/profile_sections/compliance/certificates/lib/src/data/repositories_impl/certificates_repository_impl.dart +++ b/apps/mobile/packages/features/staff/profile_sections/compliance/certificates/lib/src/data/repositories_impl/certificates_repository_impl.dart @@ -29,7 +29,7 @@ class CertificatesRepositoryImpl implements CertificatesRepository { final ApiResponse response = await _api.get(StaffEndpoints.certificates); final List items = - response.data['certificates'] as List; + response.data['certificates'] as List? ?? []; return items .map((dynamic json) => StaffCertificate.fromJson(json as Map)) diff --git a/apps/mobile/packages/features/staff/profile_sections/compliance/documents/lib/src/data/repositories_impl/documents_repository_impl.dart b/apps/mobile/packages/features/staff/profile_sections/compliance/documents/lib/src/data/repositories_impl/documents_repository_impl.dart index 01505378..56ade1eb 100644 --- a/apps/mobile/packages/features/staff/profile_sections/compliance/documents/lib/src/data/repositories_impl/documents_repository_impl.dart +++ b/apps/mobile/packages/features/staff/profile_sections/compliance/documents/lib/src/data/repositories_impl/documents_repository_impl.dart @@ -28,7 +28,7 @@ class DocumentsRepositoryImpl implements DocumentsRepository { Future> getDocuments() async { final ApiResponse response = await _api.get(StaffEndpoints.documents); - final List items = response.data['documents'] as List; + final List items = response.data['documents'] as List? ?? []; return items .map((dynamic json) => ProfileDocument.fromJson(json as Map)) diff --git a/apps/mobile/packages/features/staff/profile_sections/compliance/tax_forms/lib/src/data/repositories/tax_forms_repository_impl.dart b/apps/mobile/packages/features/staff/profile_sections/compliance/tax_forms/lib/src/data/repositories/tax_forms_repository_impl.dart index d3d36e39..6145e964 100644 --- a/apps/mobile/packages/features/staff/profile_sections/compliance/tax_forms/lib/src/data/repositories/tax_forms_repository_impl.dart +++ b/apps/mobile/packages/features/staff/profile_sections/compliance/tax_forms/lib/src/data/repositories/tax_forms_repository_impl.dart @@ -19,7 +19,7 @@ class TaxFormsRepositoryImpl implements TaxFormsRepository { Future> getTaxForms() async { final ApiResponse response = await _api.get(StaffEndpoints.taxForms); - final List items = response.data['taxForms'] as List; + final List items = response.data['taxForms'] as List? ?? []; return items .map((dynamic json) => TaxForm.fromJson(json as Map)) diff --git a/apps/mobile/packages/features/staff/profile_sections/finances/staff_bank_account/lib/src/data/repositories/bank_account_repository_impl.dart b/apps/mobile/packages/features/staff/profile_sections/finances/staff_bank_account/lib/src/data/repositories/bank_account_repository_impl.dart index 48058367..bc387187 100644 --- a/apps/mobile/packages/features/staff/profile_sections/finances/staff_bank_account/lib/src/data/repositories/bank_account_repository_impl.dart +++ b/apps/mobile/packages/features/staff/profile_sections/finances/staff_bank_account/lib/src/data/repositories/bank_account_repository_impl.dart @@ -17,7 +17,7 @@ class BankAccountRepositoryImpl implements BankAccountRepository { Future> getAccounts() async { final ApiResponse response = await _api.get(StaffEndpoints.bankAccounts); - final List items = response.data['accounts'] as List; + final List items = response.data['accounts'] as List? ?? []; return items .map((dynamic json) => BankAccount.fromJson(json as Map)) diff --git a/apps/mobile/packages/features/staff/profile_sections/finances/time_card/lib/src/data/repositories_impl/time_card_repository_impl.dart b/apps/mobile/packages/features/staff/profile_sections/finances/time_card/lib/src/data/repositories_impl/time_card_repository_impl.dart index f72d0803..cd103430 100644 --- a/apps/mobile/packages/features/staff/profile_sections/finances/time_card/lib/src/data/repositories_impl/time_card_repository_impl.dart +++ b/apps/mobile/packages/features/staff/profile_sections/finances/time_card/lib/src/data/repositories_impl/time_card_repository_impl.dart @@ -22,7 +22,7 @@ class TimeCardRepositoryImpl implements TimeCardRepository { 'month': month.month, }, ); - final List items = response.data['entries'] as List; + final List items = response.data['entries'] as List? ?? []; return items .map((dynamic json) => TimeCardEntry.fromJson(json as Map)) diff --git a/apps/mobile/packages/features/staff/profile_sections/onboarding/attire/lib/src/data/repositories_impl/attire_repository_impl.dart b/apps/mobile/packages/features/staff/profile_sections/onboarding/attire/lib/src/data/repositories_impl/attire_repository_impl.dart index 5c9b9369..43d271d4 100644 --- a/apps/mobile/packages/features/staff/profile_sections/onboarding/attire/lib/src/data/repositories_impl/attire_repository_impl.dart +++ b/apps/mobile/packages/features/staff/profile_sections/onboarding/attire/lib/src/data/repositories_impl/attire_repository_impl.dart @@ -28,7 +28,7 @@ class AttireRepositoryImpl implements AttireRepository { @override Future> getAttireOptions() async { final ApiResponse response = await _api.get(StaffEndpoints.attire); - final List items = response.data['items'] as List; + final List items = response.data['items'] as List? ?? []; return items .map((dynamic json) => AttireChecklist.fromJson(json as Map)) diff --git a/apps/mobile/packages/features/staff/profile_sections/onboarding/emergency_contact/lib/src/data/repositories/emergency_contact_repository_impl.dart b/apps/mobile/packages/features/staff/profile_sections/onboarding/emergency_contact/lib/src/data/repositories/emergency_contact_repository_impl.dart index 52be33d2..afa3430f 100644 --- a/apps/mobile/packages/features/staff/profile_sections/onboarding/emergency_contact/lib/src/data/repositories/emergency_contact_repository_impl.dart +++ b/apps/mobile/packages/features/staff/profile_sections/onboarding/emergency_contact/lib/src/data/repositories/emergency_contact_repository_impl.dart @@ -18,7 +18,7 @@ class EmergencyContactRepositoryImpl Future> getContacts() async { final ApiResponse response = await _api.get(StaffEndpoints.emergencyContacts); - final List items = response.data['contacts'] as List; + final List items = response.data['contacts'] as List? ?? []; return items .map((dynamic json) => EmergencyContact.fromJson(json as Map)) diff --git a/apps/mobile/packages/features/staff/profile_sections/onboarding/experience/lib/src/data/repositories/experience_repository_impl.dart b/apps/mobile/packages/features/staff/profile_sections/onboarding/experience/lib/src/data/repositories/experience_repository_impl.dart index 28ae1150..0684e2a5 100644 --- a/apps/mobile/packages/features/staff/profile_sections/onboarding/experience/lib/src/data/repositories/experience_repository_impl.dart +++ b/apps/mobile/packages/features/staff/profile_sections/onboarding/experience/lib/src/data/repositories/experience_repository_impl.dart @@ -17,14 +17,14 @@ class ExperienceRepositoryImpl implements ExperienceRepositoryInterface { Future> getIndustries() async { final ApiResponse response = await _api.get(StaffEndpoints.industries); - final List items = response.data['industries'] as List; + final List items = response.data['industries'] as List? ?? []; return items.map((dynamic e) => e.toString()).toList(); } @override Future> getSkills() async { final ApiResponse response = await _api.get(StaffEndpoints.skills); - final List items = response.data['skills'] as List; + final List items = response.data['skills'] as List? ?? []; return items.map((dynamic e) => e.toString()).toList(); } diff --git a/apps/mobile/packages/features/staff/profile_sections/support/faqs/lib/src/data/repositories_impl/faqs_repository_impl.dart b/apps/mobile/packages/features/staff/profile_sections/support/faqs/lib/src/data/repositories_impl/faqs_repository_impl.dart index 7e6fea1a..48fd3b11 100644 --- a/apps/mobile/packages/features/staff/profile_sections/support/faqs/lib/src/data/repositories_impl/faqs_repository_impl.dart +++ b/apps/mobile/packages/features/staff/profile_sections/support/faqs/lib/src/data/repositories_impl/faqs_repository_impl.dart @@ -9,10 +9,10 @@ import 'package:staff_faqs/src/domain/repositories/faqs_repository_interface.dar /// Fetches FAQ data from the V2 REST backend via [ApiService]. class FaqsRepositoryImpl implements FaqsRepositoryInterface { /// Creates a [FaqsRepositoryImpl] backed by the given [apiService]. - FaqsRepositoryImpl({required ApiService apiService}) + FaqsRepositoryImpl({required BaseApiService apiService}) : _apiService = apiService; - final ApiService _apiService; + final BaseApiService _apiService; @override Future> getFaqs() async { @@ -40,7 +40,7 @@ class FaqsRepositoryImpl implements FaqsRepositoryInterface { /// Parses the `items` array from a V2 API response into [FaqCategory] list. List _parseCategories(ApiResponse response) { - final List items = response.data['items'] as List; + final List items = response.data['items'] as List? ?? []; return items .map( (dynamic item) => diff --git a/apps/mobile/packages/features/staff/profile_sections/support/faqs/lib/src/staff_faqs_module.dart b/apps/mobile/packages/features/staff/profile_sections/support/faqs/lib/src/staff_faqs_module.dart index f3da2ab6..4765c74c 100644 --- a/apps/mobile/packages/features/staff/profile_sections/support/faqs/lib/src/staff_faqs_module.dart +++ b/apps/mobile/packages/features/staff/profile_sections/support/faqs/lib/src/staff_faqs_module.dart @@ -1,5 +1,6 @@ import 'package:flutter_modular/flutter_modular.dart'; import 'package:krow_core/core.dart'; +import 'package:krow_domain/krow_domain.dart' show BaseApiService; import 'package:staff_faqs/src/data/repositories_impl/faqs_repository_impl.dart'; import 'package:staff_faqs/src/domain/repositories/faqs_repository_interface.dart'; @@ -21,7 +22,7 @@ class FaqsModule extends Module { // Repository i.addLazySingleton( () => FaqsRepositoryImpl( - apiService: i(), + apiService: i.get(), ), );