1import 'package:fluentui_system_icons/fluentui_system_icons.dart';
2import 'package:flutter/material.dart';
4import '../../core/ui/theme/color_palette.dart';
5import '../../core/ui/widgets/custom_scaffold.dart';
6import 'pdf_opener.dart';
12 State<DocumentsScreen>
createState() => _DocumentsScreenState();
15class _DocumentsScreenState
extends State<DocumentsScreen>
16 with SingleTickerProviderStateMixin {
19 title:
'Driver personal id',
20 icon: FluentIcons.person_info_16_regular,
21 color: Colors.green.shade400,
26 title:
'Driver license',
27 icon: FluentIcons.card_ui_20_regular,
28 color: Colors.teal.shade400,
33 title:
'Naql waybill',
34 icon: FluentIcons.vehicle_car_16_regular,
35 color: Colors.blue.shade400,
40 title:
'Company authorization letter',
41 icon: FluentIcons.text_description_16_regular,
42 color: Colors.indigo.shade400,
46 title:
'Training certification',
47 icon: FluentIcons.certificate_16_regular,
48 color: Colors.indigo.shade400,
54 Widget
build(BuildContext context) {
55 return CustomScaffold(
58 body: SingleChildScrollView(
68 padding:
const EdgeInsets.all(20),
70 crossAxisAlignment: CrossAxisAlignment.start,
75 crossAxisAlignment: CrossAxisAlignment.start,
81 fontWeight: FontWeight.bold,
88 const EdgeInsets.symmetric(horizontal: 12, vertical: 6),
89 decoration: BoxDecoration(
91 borderRadius: BorderRadius.circular(20),
95 Icon(Icons.check_circle,
96 color: Colors.greenAccent, size: 16),
99 'All documents up to date',
100 style: TextStyle(
color: Colors.black, fontSize: 12),
116 for (
int index = 0; index <
documents.length; index++)
123 margin:
const EdgeInsets.only(
128 decoration: BoxDecoration(
130 borderRadius: BorderRadius.circular(20),
133 color: Colors.black.withValues(alpha: 0.1),
135 offset:
const Offset(0, 10),
140 borderRadius: BorderRadius.circular(20),
142 color: Colors.transparent,
150 padding:
const EdgeInsets.all(20),
154 padding:
const EdgeInsets.all(12),
155 decoration: BoxDecoration(
157 borderRadius: BorderRadius.circular(16),
164 crossAxisAlignment: CrossAxisAlignment.start,
168 style:
const TextStyle(
170 fontWeight: FontWeight.bold,
177 color: Colors.grey.shade600,
185 padding:
const EdgeInsets.all(8),
186 decoration: BoxDecoration(
188 borderRadius: BorderRadius.circular(12),
191 Icons.download_rounded,
216 required this.subtitle,
class App extends StatefulWidget build(BuildContext context)
static const antiFlashWhite
final String documentPath
DocumentItem({ required this.title, required this.icon, required this.color, required this.subtitle, this.documentPath, })
static Future< void > openPDFAsset(String assetPath) async
Widget _buildDocumentCard(DocumentItem document)
Widget _buildDocumentsView()
class DocumentsScreen extends StatefulWidget documents
style Text( '${ 'scheduling.reference'.tr()}:${collection.internalCode}', style:Theme.of(context).textTheme.bodySmall,)
style SizedBox(height:2.h)
style Column(crossAxisAlignment:CrossAxisAlignment.end, children:[Container(padding:EdgeInsets.symmetric(horizontal:8.w, vertical:4.h), decoration:BoxDecoration(color:ColorPalette.tiffanyBlue.withValues(alpha:0.1), borderRadius:BorderRadius.circular(12),), child:Text(collection.type ?? '', style:Theme.of(context).textTheme.bodySmall?.copyWith(color:ColorPalette.tiffanyBlue, fontWeight:FontWeight.bold,),),),],)