From 28cc0e3574886297a4c167cb6fca384149ec8314 Mon Sep 17 00:00:00 2001 From: Achintha Isuru Date: Fri, 27 Feb 2026 13:35:04 -0500 Subject: [PATCH] feat: Enable pre-filling document upload page with existing document URLs and update navigation method usage. --- .../core/lib/src/routing/staff/navigator.dart | 2 +- .../pages/document_upload_page.dart | 24 ++++++++++++------- .../presentation/pages/documents_page.dart | 9 +++++-- 3 files changed, 23 insertions(+), 12 deletions(-) diff --git a/apps/mobile/packages/core/lib/src/routing/staff/navigator.dart b/apps/mobile/packages/core/lib/src/routing/staff/navigator.dart index 5456d1e6..4f7062da 100644 --- a/apps/mobile/packages/core/lib/src/routing/staff/navigator.dart +++ b/apps/mobile/packages/core/lib/src/routing/staff/navigator.dart @@ -222,7 +222,7 @@ extension StaffNavigator on IModularNavigator { /// /// Upload and manage required documents like ID and work permits. void toDocuments() { - pushNamed(StaffPaths.documents); + navigate(StaffPaths.documents); } /// Pushes the document upload page. diff --git a/apps/mobile/packages/features/staff/profile_sections/compliance/documents/lib/src/presentation/pages/document_upload_page.dart b/apps/mobile/packages/features/staff/profile_sections/compliance/documents/lib/src/presentation/pages/document_upload_page.dart index 5546c244..e53c33f6 100644 --- a/apps/mobile/packages/features/staff/profile_sections/compliance/documents/lib/src/presentation/pages/document_upload_page.dart +++ b/apps/mobile/packages/features/staff/profile_sections/compliance/documents/lib/src/presentation/pages/document_upload_page.dart @@ -79,6 +79,10 @@ class _DocumentUploadPageState extends State { @override Widget build(BuildContext context) { + if (widget.initialUrl != null) { + _selectedFilePath = widget.initialUrl; + } + return BlocProvider( create: (BuildContext _) => Modular.get(), child: BlocConsumer( @@ -144,8 +148,10 @@ class _DocumentUploadPageState extends State { state.status == DocumentUploadStatus.uploading, canSubmit: _selectedFilePath != null && state.isAttested, onSubmit: () { - final String? err = - _validatePdfFile(context, _selectedFilePath!); + final String? err = _validatePdfFile( + context, + _selectedFilePath!, + ); if (err != null) { UiSnackbar.show( context, @@ -157,7 +163,10 @@ class _DocumentUploadPageState extends State { } BlocProvider.of( context, - ).uploadDocument(widget.document.id, _selectedFilePath!); + ).uploadDocument( + widget.document.id, + _selectedFilePath!, + ); }, ), ], @@ -186,20 +195,17 @@ class _PdfFileTypesBanner extends StatelessWidget { vertical: UiConstants.space3, ), decoration: BoxDecoration( - color: UiColors.tagActive, + color: UiColors.primaryForeground, borderRadius: BorderRadius.circular(UiConstants.radiusBase), border: Border.all(color: UiColors.primary.withValues(alpha: 0.3)), ), child: Row( - crossAxisAlignment: CrossAxisAlignment.start, + crossAxisAlignment: CrossAxisAlignment.center, children: [ const Icon(UiIcons.info, size: 20, color: UiColors.primary), const SizedBox(width: UiConstants.space3), Expanded( - child: Text( - message, - style: UiTypography.body2r.textSecondary, - ), + child: Text(message, style: UiTypography.body2r.textSecondary), ), ], ), 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 1f84c79f..77e2a08d 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 @@ -45,7 +45,9 @@ class DocumentsPage extends StatelessWidget { : t.staff_documents.list.error( message: state.errorMessage!, )) - : t.staff_documents.list.error(message: t.staff_documents.list.unknown), + : t.staff_documents.list.error( + message: t.staff_documents.list.unknown, + ), textAlign: TextAlign.center, style: UiTypography.body1m.copyWith( color: UiColors.textSecondary, @@ -80,7 +82,10 @@ class DocumentsPage extends StatelessWidget { ...state.documents.map( (StaffDocument doc) => DocumentCard( document: doc, - onTap: () => Modular.to.toDocumentUpload(document: doc), + onTap: () => Modular.to.toDocumentUpload( + document: doc, + initialUrl: doc.documentUrl, + ), ), ), ],