Update 2026-04-17
This commit is contained in:
1 parent
96de59e9be
commit
d1b4fb344e
6 files changed
+42
-14
No files matched your search
@@ -142,14 +142,9 @@ class _ServiceRequestScreenState extends ConsumerState<ServiceRequestScreen> {
|
||||
onTap: () => Navigator.pop(ctx, 'gallery'),
|
||||
),
|
||||
ListTile(
|
||||
leading: const Icon(Icons.picture_as_pdf, color: Colors.red),
|
||||
title: const Text('Select PDF'),
|
||||
onTap: () => Navigator.pop(ctx, 'pdf'),
|
||||
),
|
||||
ListTile(
|
||||
leading: const Icon(Icons.folder_zip, color: Colors.orange),
|
||||
title: const Text('Select ZIP'),
|
||||
onTap: () => Navigator.pop(ctx, 'zip'),
|
||||
leading: const Icon(Icons.insert_drive_file, color: Colors.blue),
|
||||
title: const Text('Files'),
|
||||
onTap: () => Navigator.pop(ctx, 'any'),
|
||||
),
|
||||
],
|
||||
),
|
||||
@@ -183,11 +178,10 @@ class _ServiceRequestScreenState extends ConsumerState<ServiceRequestScreen> {
|
||||
_isFileError = false;
|
||||
});
|
||||
}
|
||||
} else if (choice == 'pdf' || choice == 'zip') {
|
||||
} else if (choice == 'any') {
|
||||
final result = await FilePicker.platform.pickFiles(
|
||||
allowMultiple: true,
|
||||
type: FileType.custom,
|
||||
allowedExtensions: choice == 'pdf' ? ['pdf'] : ['zip', 'rar', '7z'],
|
||||
type: FileType.any,
|
||||
);
|
||||
if (result != null && result.files.isNotEmpty) {
|
||||
for (var file in result.files) {
|
||||
@@ -284,6 +278,9 @@ class _ServiceRequestScreenState extends ConsumerState<ServiceRequestScreen> {
|
||||
bool _isZip(String pathStr) =>
|
||||
['.zip', '.rar', '.7z'].contains(path.extension(pathStr).toLowerCase());
|
||||
|
||||
bool _isExcel(String pathStr) =>
|
||||
['.xls', '.xlsx'].contains(path.extension(pathStr).toLowerCase());
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
final r = ResponsiveUtils(context);
|
||||
@@ -418,6 +415,13 @@ class _ServiceRequestScreenState extends ConsumerState<ServiceRequestScreen> {
|
||||
widget.icon,
|
||||
width: serviceIconSize,
|
||||
height: serviceIconSize,
|
||||
errorBuilder: (context, error, stackTrace) {
|
||||
return Icon(
|
||||
Icons.error_outline,
|
||||
color: Colors.red.shade300,
|
||||
size: serviceIconSize * 0.8,
|
||||
);
|
||||
},
|
||||
),
|
||||
),
|
||||
SizedBox(height: spacingMD),
|
||||
@@ -616,7 +620,7 @@ class _ServiceRequestScreenState extends ConsumerState<ServiceRequestScreen> {
|
||||
child: Column(
|
||||
children: [
|
||||
Text(
|
||||
"Upload PDF, IMG, JPG, ZIP",
|
||||
"Upload Documents or Images",
|
||||
style: AppTextStyles.semiBold.copyWith(
|
||||
fontSize: fontSize,
|
||||
height: 25.56 / 12.78,
|
||||
@@ -778,6 +782,13 @@ class _ServiceRequestScreenState extends ConsumerState<ServiceRequestScreen> {
|
||||
size: iconSize,
|
||||
color: Colors.orange.shade600,
|
||||
);
|
||||
} else if (_isExcel(pathStr)) {
|
||||
bgColor = Colors.green.shade50;
|
||||
preview = Icon(
|
||||
Icons.table_chart,
|
||||
size: iconSize,
|
||||
color: Colors.green.shade600,
|
||||
);
|
||||
} else {
|
||||
bgColor = Colors.blue.shade50;
|
||||
preview = Icon(
|
||||
|
||||
Reference in new issue
Block a user