diff --git a/apps/mobile/packages/core_localization/lib/src/l10n/es.i18n.json b/apps/mobile/packages/core_localization/lib/src/l10n/es.i18n.json index a39a1344..334f1011 100644 --- a/apps/mobile/packages/core_localization/lib/src/l10n/es.i18n.json +++ b/apps/mobile/packages/core_localization/lib/src/l10n/es.i18n.json @@ -580,5 +580,24 @@ } } } + }, + "staff_documents": { + "title": "Documents", + "verification_card": { + "title": "Document Verification", + "progress": "$completed/$total Complete" + }, + "list": { + "empty": "No documents found", + "error": "Error: $message" + }, + "card": { + "view": "View", + "upload": "Upload", + "verified": "Verified", + "pending": "Pending", + "missing": "Missing", + "rejected": "Rejected" + } } } diff --git a/apps/mobile/packages/features/staff/profile/lib/src/presentation/navigation/profile_navigator.dart b/apps/mobile/packages/features/staff/profile/lib/src/presentation/navigation/profile_navigator.dart index 1b47abf9..0a931581 100644 --- a/apps/mobile/packages/features/staff/profile/lib/src/presentation/navigation/profile_navigator.dart +++ b/apps/mobile/packages/features/staff/profile/lib/src/presentation/navigation/profile_navigator.dart @@ -28,7 +28,7 @@ extension ProfileNavigator on IModularNavigator { /// Navigates to the documents page. void pushDocuments() { - pushNamed('/documents'); + pushNamed('../documents'); } /// Navigates to the certificates page. diff --git a/apps/mobile/packages/features/staff/profile_sections/compliance/documents/lib/src/data/repositories/documents_repository_mock.dart b/apps/mobile/packages/features/staff/profile_sections/compliance/documents/lib/src/data/repositories/documents_repository_mock.dart deleted file mode 100644 index ade3cecd..00000000 --- a/apps/mobile/packages/features/staff/profile_sections/compliance/documents/lib/src/data/repositories/documents_repository_mock.dart +++ /dev/null @@ -1,46 +0,0 @@ -import 'package:krow_domain/krow_domain.dart'; -import '../../domain/repositories/documents_repository.dart'; - -class DocumentsRepositoryMock implements DocumentsRepository { - @override - Future> getDocuments() async { - const List documents = [ - StaffDocument( - id: '1', - documentId: 'gov_id_1', - staffId: 'current_user', - name: 'Government ID', - description: 'Passport, Driver\'s License, or State ID', - status: DocumentStatus.verified, - ), - StaffDocument( - id: '2', - documentId: 'ssn_1', - staffId: 'current_user', - name: 'Social Security Card', - description: 'Or W-9 Form', - status: DocumentStatus.pending, - ), - StaffDocument( - id: '3', - documentId: 'work_auth_1', - staffId: 'current_user', - name: 'Work Authorization', - description: 'I-9 or Work Permit', - status: DocumentStatus.verified, - ), - StaffDocument( - id: '4', - documentId: 'address_1', - staffId: 'current_user', - name: 'Proof of Address', - description: 'Utility bill or bank statement', - status: DocumentStatus.missing, - ), - ]; - - await Future.delayed(const Duration(seconds: 1)); // Simulate network delay - return documents; - } -} - diff --git a/apps/mobile/packages/features/staff/profile_sections/compliance/documents/lib/src/domain/arguments/get_documents_arguments.dart b/apps/mobile/packages/features/staff/profile_sections/compliance/documents/lib/src/domain/arguments/get_documents_arguments.dart deleted file mode 100644 index 4a212b24..00000000 --- a/apps/mobile/packages/features/staff/profile_sections/compliance/documents/lib/src/domain/arguments/get_documents_arguments.dart +++ /dev/null @@ -1,12 +0,0 @@ -import 'package:krow_core/core.dart'; - -/// Arguments for the [GetDocumentsUseCase]. -class GetDocumentsArguments extends UseCaseArgument { - /// The ID of the staff member to fetch documents for. - final String staffId; - - const GetDocumentsArguments({required this.staffId}); - - @override - List get props => [staffId]; -} diff --git a/apps/mobile/packages/features/staff/profile_sections/compliance/documents/lib/src/presentation/pages/documents_page.dart b/apps/mobile/packages/features/staff/profile_sections/compliance/documents/lib/src/presentation/pages/documents_page.dart index f59dbee6..23eba3d1 100644 --- a/apps/mobile/packages/features/staff/profile_sections/compliance/documents/lib/src/presentation/pages/documents_page.dart +++ b/apps/mobile/packages/features/staff/profile_sections/compliance/documents/lib/src/presentation/pages/documents_page.dart @@ -23,9 +23,7 @@ class DocumentsPage extends StatelessWidget { } return Scaffold( - backgroundColor: UiColors.background, appBar: AppBar( - backgroundColor: UiColors.bgPopup, elevation: 0, leading: IconButton( icon: const Icon(UiIcons.arrowLeft, color: UiColors.iconSecondary), diff --git a/apps/mobile/packages/features/staff/profile_sections/compliance/documents/lib/src/staff_documents_module.dart b/apps/mobile/packages/features/staff/profile_sections/compliance/documents/lib/src/staff_documents_module.dart index a66f6709..6bf03d0d 100644 --- a/apps/mobile/packages/features/staff/profile_sections/compliance/documents/lib/src/staff_documents_module.dart +++ b/apps/mobile/packages/features/staff/profile_sections/compliance/documents/lib/src/staff_documents_module.dart @@ -12,7 +12,7 @@ class StaffDocumentsModule extends Module { void binds(Injector i) { i.addLazySingleton( () => DocumentsRepositoryImpl( - dataConnect: i.get(), + dataConnect: ExampleConnector.instance, firebaseAuth: FirebaseAuth.instance, ), ); diff --git a/apps/mobile/packages/features/staff/profile_sections/compliance/documents/lib/staff_documents.dart b/apps/mobile/packages/features/staff/profile_sections/compliance/documents/lib/staff_documents.dart new file mode 100644 index 00000000..e380e3b8 --- /dev/null +++ b/apps/mobile/packages/features/staff/profile_sections/compliance/documents/lib/staff_documents.dart @@ -0,0 +1,3 @@ +library staff_documents; + +export 'src/staff_documents_module.dart'; diff --git a/apps/mobile/packages/features/staff/profile_sections/compliance/tax_forms/lib/src/data/repositories/tax_forms_repository_mock.dart b/apps/mobile/packages/features/staff/profile_sections/compliance/tax_forms/lib/src/data/repositories/tax_forms_repository_mock.dart deleted file mode 100644 index 56d8f07c..00000000 --- a/apps/mobile/packages/features/staff/profile_sections/compliance/tax_forms/lib/src/data/repositories/tax_forms_repository_mock.dart +++ /dev/null @@ -1,58 +0,0 @@ -import 'package:staff_tax_forms/src/domain/entities/tax_form_entity.dart'; -import 'package:staff_tax_forms/src/domain/repositories/tax_forms_repository.dart'; - -class TaxFormsRepositoryMock implements TaxFormsRepository { - final List _forms = [ - const TaxFormEntity( - type: TaxFormType.i9, - title: 'Form I-9', - subtitle: 'Employment Eligibility Verification', - description: 'Required to verify your identity and work authorization', - status: TaxFormStatus.submitted, - ), - const TaxFormEntity( - type: TaxFormType.w4, - title: 'Form W-4', - subtitle: 'Employee\'s Withholding Certificate', - description: 'Set up your federal tax withholding', - status: TaxFormStatus.notStarted, - ), - ]; - - @override - Future> getTaxForms() async { - await Future.delayed(const Duration(milliseconds: 800)); // Simulating network - return _forms; - } - - @override - Future submitForm(TaxFormType type, Map data) async { - await Future.delayed(const Duration(seconds: 1)); - final index = _forms.indexWhere((f) => f.type == type); - if (index != -1) { - _forms[index] = TaxFormEntity( - type: _forms[index].type, - title: _forms[index].title, - subtitle: _forms[index].subtitle, - description: _forms[index].description, - status: TaxFormStatus.submitted, - lastUpdated: DateTime.now(), - ); - } - } - - @override - Future updateFormStatus(TaxFormType type, TaxFormStatus status) async { - final index = _forms.indexWhere((f) => f.type == type); - if (index != -1) { - _forms[index] = TaxFormEntity( - type: _forms[index].type, - title: _forms[index].title, - subtitle: _forms[index].subtitle, - description: _forms[index].description, - status: status, - lastUpdated: DateTime.now(), - ); - } - } -} diff --git a/apps/mobile/packages/features/staff/staff_main/lib/src/staff_main_module.dart b/apps/mobile/packages/features/staff/staff_main/lib/src/staff_main_module.dart index 2e9588e9..98d7cc02 100644 --- a/apps/mobile/packages/features/staff/staff_main/lib/src/staff_main_module.dart +++ b/apps/mobile/packages/features/staff/staff_main/lib/src/staff_main_module.dart @@ -7,6 +7,7 @@ import 'package:staff_emergency_contact/staff_emergency_contact.dart'; import 'package:staff_profile_experience/staff_profile_experience.dart'; import 'package:staff_bank_account/staff_bank_account.dart'; import 'package:staff_tax_forms/staff_tax_forms.dart'; +import 'package:staff_documents/staff_documents.dart'; import 'package:staff_main/src/presentation/blocs/staff_main_cubit.dart'; import 'package:staff_main/src/presentation/constants/staff_main_routes.dart'; @@ -55,5 +56,9 @@ class StaffMainModule extends Module { r.module('/experience', module: StaffProfileExperienceModule()); r.module('/bank-account', module: StaffBankAccountModule()); r.module('/tax-forms', module: StaffTaxFormsModule()); + r.module( + '/documents', + module: StaffDocumentsModule(), + ); } } diff --git a/apps/mobile/packages/features/staff/staff_main/pubspec.yaml b/apps/mobile/packages/features/staff/staff_main/pubspec.yaml index e8f0b0a5..fede0178 100644 --- a/apps/mobile/packages/features/staff/staff_main/pubspec.yaml +++ b/apps/mobile/packages/features/staff/staff_main/pubspec.yaml @@ -37,6 +37,8 @@ dependencies: path: ../profile_sections/finances/staff_bank_account staff_tax_forms: path: ../profile_sections/compliance/tax_forms + staff_documents: + path: ../profile_sections/compliance/documents # staff_shifts: # path: ../shifts # staff_payments: diff --git a/apps/mobile/pubspec.lock b/apps/mobile/pubspec.lock index 18f9f0e0..2e761df7 100644 --- a/apps/mobile/pubspec.lock +++ b/apps/mobile/pubspec.lock @@ -1071,6 +1071,13 @@ packages: relative: true source: path version: "0.0.1" + staff_documents: + dependency: transitive + description: + path: "packages/features/staff/profile_sections/compliance/documents" + relative: true + source: path + version: "0.0.1" staff_tax_forms: dependency: transitive description: