import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; import '../../../../controllers/localization/localization.dart'; import '../../../../controllers/providers/api/regular_visits_provider.dart'; import '../../../../models/subtitle.dart'; import '../../../../models/visits/visit.dart'; import '../../../app_style/colors.dart'; import '../../../app_style/sizing.dart'; import '../../../widgets/buttons/app_back_button.dart'; import '../../../widgets/buttons/app_icon_button.dart'; import '../../../widgets/images/images_list.dart'; import '../../../widgets/loaders/image_loader.dart'; import '../../../widgets/requests/info_row.dart'; import '../../../widgets/visits/visit_status.dart'; import 'pantry/future_edit_pently.dart'; class VisitDetailsPage extends StatelessWidget { static const String id = "/visit-details"; final Visit visit; const VisitDetailsPage({Key? key, required this.visit}) : super(key: key); @override Widget build(BuildContext context) { Subtitle subtitle = AppLocalization.of(context)!.subtitle!; final regularVisitsProvider = Provider.of(context); return Scaffold( body: SafeArea( child: Column( children: [ Container( color: AColors.primaryColor, padding: const EdgeInsets.symmetric(horizontal: 0, vertical: 4), child: Row( children: [ ABackButton(), Expanded( child: Center( child: Text( subtitle.visitInformation, style: Theme.of(context).textTheme.headline6?.copyWith(color: AColors.white, fontStyle: FontStyle.italic), ), ), ), AIconButton( iconData: Icons.edit, color: AColors.white, buttonSize: 42, backgroundColor: AColors.green, onPressed: () async { Navigator.of(context).push(MaterialPageRoute( builder: (_) => FutureEditPentry( visit: visit, ))); }, ), SizedBox( width: 16, ) ], ), ), Expanded( child: ListView( padding: EdgeInsets.symmetric(horizontal: 16), children: [ SizedBox( height: 8, ), MaterialButton( padding: EdgeInsets.zero, onPressed: () { Navigator.of(context).push(MaterialPageRoute( builder: (_) => Scaffold( body: InteractiveViewer( child: Center( child: ImageLoader( url: visit.images?.first, boxFit: BoxFit.contain, ), ), ), ))); }, child: SizedBox( height: 140 * AppStyle.getScaleFactor(context), width: MediaQuery.of(context).size.width, child: ImageLoader( url: (visit.images?.isEmpty ?? false) ? " " : visit.images?.first, boxFit: BoxFit.cover, ), ), ), SizedBox( height: 8, ), SizedBox( height: 60 * AppStyle.getScaleFactor(context), child: ImagesList( images: visit.images!, ), ), SizedBox( height: 8, ), RequestInfoRow( title: subtitle.code, info: visit.serialNumber, ), RequestInfoRow( title: "Asset Number", info: visit.deviceNumber, ), RequestInfoRow( title: subtitle.deviceSN, info: visit.deviceSerialNumber, ), RequestInfoRow( title: subtitle.expectDate, info: visit.expectDate, ), RequestInfoRow( title: subtitle.actualDate, info: visit.actualDate, ), Row( children: [ Expanded( child: Text( "${subtitle.status} : ", style: Theme.of(context).textTheme.subtitle1?.copyWith(fontWeight: FontWeight.bold), textScaleFactor: AppStyle.getScaleFactor(context), ), ), VisitStatusLabel( visit: visit, ), ], ), Divider( color: Theme.of(context).primaryColor, ), RequestInfoRow( title: subtitle.contactStatus, info: visit.assignTo, ), RequestInfoRow( title: subtitle.engineerName, info: visit.employName, ), RequestInfoRow( title: subtitle.hospital, content: visit.hospitalName, ), RequestInfoRow( title: subtitle.deviceArName, content: visit.deviceArabicName, ), RequestInfoRow( title: subtitle.deviceEnName, content: visit.deviceEnglishName, ), ], ), ), ], ), ), ); } }