import 'package:car_customer_app/view_models/appointments_view_model.dart'; import 'package:easy_localization/easy_localization.dart'; import 'package:flutter/material.dart'; import 'package:mc_common_app/classes/consts.dart'; import 'package:mc_common_app/config/routes.dart'; import 'package:mc_common_app/extensions/int_extensions.dart'; import 'package:mc_common_app/extensions/string_extensions.dart'; import 'package:mc_common_app/generated/locale_keys.g.dart'; import 'package:mc_common_app/theme/colors.dart'; import 'package:mc_common_app/utils/navigator.dart'; import 'package:mc_common_app/widgets/common_widgets/app_bar.dart'; import 'package:mc_common_app/widgets/common_widgets/provider_details_card.dart'; import 'package:mc_common_app/widgets/empty_widget.dart'; import 'package:mc_common_app/widgets/extensions/extensions_widget.dart'; import 'package:provider/provider.dart'; class ProviderProfilePage extends StatefulWidget { final int providerId; ProviderProfilePage({required this.providerId}); @override State createState() => _ProviderProfilePageState(); } class _ProviderProfilePageState extends State { @override void initState() { super.initState(); context.read().getBranchAndServices(widget.providerId); } @override Widget build(BuildContext context) { return Scaffold( appBar: CustomAppBar( title: "Provider Details", ), body: Container( width: double.infinity, height: double.infinity, padding: EdgeInsets.all(21), child: Consumer( builder: (context, model, _) { return model.providerProfileModel == null ? const Center(child: CircularProgressIndicator()) : model.providerProfileModel == null ? const EmptyWidget() : SingleChildScrollView( child: Column( children: [ Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ //TODO: company logo/banner not added form provider app yet Image.asset(MyAssets.bnCar), 12.height, model.providerProfileModel!.companyName.toString().toText( fontSize: 16, isBold: true, ), Row( children: [ ("Mowater Member Since:").toText(color: MyColors.lightTextColor, fontSize: 12), 4.width, //TODO: date is missing from API side "2023".toText(fontSize: 12, isBold: true), ], ), 4.height, //TODO: company description not added form provider app yet // model.providerModel!.data!.companyDescription!.toText(color: MyColors.lightTextColor, fontSize: 12), "Some description about the provider and their years of experience and their reputation".toText(color: MyColors.lightTextColor, fontSize: 12), ], ).toWhiteContainer( width: double.infinity, allPading: 12, ), 12.height, model.providerProfileModel!.serviceProviderBranch == null ? const Center(child: Text("No Branch Found")) : model.providerProfileModel!.serviceProviderBranch!.isEmpty ? Center(child: Text(LocaleKeys.no_branch.tr())) : ListView.separated( itemBuilder: (context, index) { return ProviderDetailsCard( onCardTapped: () { navigateWithName(context, AppRoutes.branchDetailPage, arguments: model.providerProfileModel!.serviceProviderBranch![index]); }, providerImageUrl: MyAssets.bnCar, title: model.providerProfileModel!.serviceProviderBranch![index].branchName ?? "", providerLocation: model.providerProfileModel!.serviceProviderBranch![index].distanceKm.toString() + " KM", providerName: model.providerProfileModel!.serviceProviderBranch![index].serviceProviderName ?? "", providerRatings: "4.9", services: model.providerProfileModel!.serviceProviderBranch![index].branchServices, ); }, separatorBuilder: (context, index) { return 12.height; }, itemCount: model.providerProfileModel!.serviceProviderBranch!.length, physics: NeverScrollableScrollPhysics(), shrinkWrap: true, ) ], ), ); }, ), ), ); } }