import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; import 'package:tm_app/core/constants/strings.dart'; import 'package:tm_app/core/theme/colors.dart'; import 'package:tm_app/core/utils/size_config.dart'; import 'package:tm_app/view_models/tender_detail_view_model.dart'; import 'package:tm_app/views/detail/widgets/tender_detail_action.dart'; import 'package:tm_app/views/detail/widgets/tender_detail_card.dart'; import 'package:tm_app/views/detail/widgets/tender_detail_header.dart'; import 'package:tm_app/views/shared/tender_app_bar.dart'; class TenderDetailMobilePage extends StatelessWidget { final String tenderId; const TenderDetailMobilePage({required this.tenderId, super.key}); @override Widget build(BuildContext context) { return Scaffold( backgroundColor: AppColors.backgroundColor, appBar: appBar(context: context, title: AppStrings.tenderDetailTitle), body: Consumer( builder: (context, tenderViewModel, child) { if (tenderViewModel.isLoading) { return const Center( child: CircularProgressIndicator(color: AppColors.secondary50), ); } if (tenderViewModel.errorMessage != null) { return Center(child: Text(tenderViewModel.errorMessage!)); } final detail = tenderViewModel.tenderDetail; if (detail == null) { return const Center(child: Text('No tender details available')); } return SingleChildScrollView( child: Padding( padding: const EdgeInsets.all(16.0), child: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ TenderDetailHeader(isScreenBig: false, detail: detail), SizedBox(height: 24.0.h()), TenderDetailCard(detail: detail), SizedBox(height: 24.0.h()), TenderDetailActions(isScreenBig: false), ], ), ), ); }, ), ); } }