feat(upload): enhance PDF upload banners with title and description

This commit is contained in:
Achintha Isuru
2026-03-18 15:06:06 -04:00
parent 0c8a5bb15b
commit e7b5cb33a4
7 changed files with 39 additions and 8 deletions

View File

@@ -1166,6 +1166,8 @@
"upload": {
"instructions": "Please select a valid PDF file to upload.",
"pdf_banner": "Only PDF files are accepted. Maximum file size is 10MB.",
"pdf_banner_title": "PDF files only",
"pdf_banner_description": "Upload a PDF document up to 10MB in size.",
"file_not_found": "File not found.",
"submit": "Submit Document",
"select_pdf": "Select PDF File",

View File

@@ -1161,6 +1161,8 @@
"upload": {
"instructions": "Por favor selecciona un archivo PDF válido para subir.",
"pdf_banner": "Solo se aceptan archivos PDF. Tamaño máximo del archivo: 10MB.",
"pdf_banner_title": "Solo archivos PDF",
"pdf_banner_description": "Sube un documento PDF de hasta 10MB de tamaño.",
"submit": "Enviar Documento",
"select_pdf": "Seleccionar Archivo PDF",
"attestation": "Certifico que este documento es genuino y válido.",

View File

@@ -84,6 +84,7 @@ class UiNoticeBanner extends StatelessWidget {
style: UiTypography.body2b.copyWith(
color: titleColor ?? UiColors.primary,
),
overflow: TextOverflow.ellipsis,
),
],
],

View File

@@ -186,7 +186,8 @@ class _CertificateUploadPageState extends State<CertificateUploadPage> {
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
PdfFileTypesBanner(
message: t.staff_documents.upload.pdf_banner,
title: t.staff_documents.upload.pdf_banner_title,
description: t.staff_documents.upload.pdf_banner_description,
),
const SizedBox(height: UiConstants.space6),

View File

@@ -3,12 +3,24 @@ import 'package:flutter/material.dart';
/// Banner displaying accepted file types and size limit for PDF upload.
class PdfFileTypesBanner extends StatelessWidget {
const PdfFileTypesBanner({super.key, required this.message});
const PdfFileTypesBanner({
super.key,
required this.title,
this.description,
});
final String message;
/// Short title for the banner.
final String title;
/// Optional description with additional details.
final String? description;
@override
Widget build(BuildContext context) {
return UiNoticeBanner(title: message, icon: UiIcons.info);
return UiNoticeBanner(
title: title,
description: description,
icon: UiIcons.info,
);
}
}

View File

@@ -70,7 +70,8 @@ class DocumentUploadPage extends StatelessWidget {
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
PdfFileTypesBanner(
message: t.staff_documents.upload.pdf_banner,
title: t.staff_documents.upload.pdf_banner_title,
description: t.staff_documents.upload.pdf_banner_description,
),
const SizedBox(height: UiConstants.space6),
DocumentFileSelector(

View File

@@ -3,12 +3,24 @@ import 'package:flutter/material.dart';
/// Banner displaying accepted file types and size limit for PDF upload.
class PdfFileTypesBanner extends StatelessWidget {
const PdfFileTypesBanner({required this.message, super.key});
const PdfFileTypesBanner({
super.key,
required this.title,
this.description,
});
final String message;
/// Short title for the banner.
final String title;
/// Optional description with additional details.
final String? description;
@override
Widget build(BuildContext context) {
return UiNoticeBanner(title: message, icon: UiIcons.info);
return UiNoticeBanner(
title: title,
description: description,
icon: UiIcons.info,
);
}
}