import 'package:doctor_app_flutter/config/size_config.dart'; import 'package:doctor_app_flutter/core/model/patient/patiant_info_model.dart'; import 'package:doctor_app_flutter/utils/translations_delegate_base_utils.dart'; import 'package:doctor_app_flutter/widgets/patients/profile/app_bar/patient-profile-app-bar.dart'; import 'package:doctor_app_flutter/widgets/shared/app_scaffold_widget.dart'; import 'package:doctor_app_flutter/widgets/shared/app_texts_widget.dart'; import 'package:doctor_app_flutter/widgets/shared/text_fields/text_fields_utils.dart'; import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; import 'all_discharge_summary.dart'; import 'pending_discharge_summary.dart'; class DischargeSummaryPage extends StatefulWidget { final Function? changeCurrentTab; const DischargeSummaryPage({Key? key, this.changeCurrentTab}) : super(key: key); @override _DoctorReplyScreenState createState() => _DoctorReplyScreenState(); } class _DoctorReplyScreenState extends State with SingleTickerProviderStateMixin { late TabController _tabController; int _activeTab = 0; int pageIndex = 1; bool isVidaPlusProject = false; @override void initState() { super.initState(); _tabController = TabController(length: 2, vsync: this); _tabController.addListener(_handleTabSelection); } @override void dispose() { super.dispose(); _tabController.dispose(); } _handleTabSelection() { setState(() { _activeTab = _tabController.index; }); } @override Widget build(BuildContext context) { final screenSize = MediaQuery.of(context).size; final routeArgs = ModalRoute.of(context)!.settings.arguments as Map; PatiantInformtion patient = routeArgs['patient']; isVidaPlusProject = routeArgs['isVidaPlusProject']; return WillPopScope( onWillPop: () async { widget.changeCurrentTab!(); return false; }, child: AppScaffold( appBarTitle: TranslationBase.of(context).replay2, isShowAppBar: true, // appBarTitle: TranslationBase.of(context).progressNote, appBar: PatientProfileAppBar( patient, isInpatient: true, ), body: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ Expanded( child: Scaffold( extendBodyBehindAppBar: false, appBar: PreferredSize( preferredSize: Size.fromHeight( MediaQuery.of(context).size.height * 0.070), child: Container( height: MediaQuery.of(context).size.height * 0.070, decoration: BoxDecoration( border: Border( bottom: BorderSide( color: Theme.of(context).dividerColor, width: 0.5), //width: 0.7 ), color: Colors.white), child: Center( child: TabBar( isScrollable: false, controller: _tabController, indicatorColor: Colors.transparent, indicatorWeight: 1.0, indicatorSize: TabBarIndicatorSize.tab, labelColor: Theme.of(context).primaryColor, labelPadding: EdgeInsets.only( top: 0, left: 0, right: 0, bottom: 0), unselectedLabelColor: Colors.grey[800], tabs: [ tabWidget( screenSize, _activeTab == 0, TranslationBase.of(context).pending, ), tabWidget( screenSize, _activeTab == 1, TranslationBase.of(context).all, ), ], ), ), ), ), body: Column( children: [ Expanded( child: TabBarView( physics: BouncingScrollPhysics(), controller: _tabController, children: [ PendingDischargeSummary( patient: patient, isVidaPlusProject: isVidaPlusProject, ), AllDischargeSummary(patient: patient, isVidaPlusProject: isVidaPlusProject,), ], ), ), ], ), ), ), ], ), ), ); } } Widget tabWidget(Size screenSize, bool isActive, String title, {int counter = -1}) { return Center( child: Container( height: screenSize.height * 0.070, decoration: TextFieldsUtils.containerBorderDecoration( isActive ? Color(0xFFD02127 /*B8382B*/) : Color(0xFFEAEAEA), isActive ? Color(0xFFD02127) : Color(0xFFEAEAEA), borderRadius: 4, borderWidth: 0), child: Row( mainAxisAlignment: MainAxisAlignment.center, children: [ AppText( title, fontSize: SizeConfig.textMultiplier! * 1.5, color: isActive ? Colors.white : Color(0xFF2B353E), fontWeight: FontWeight.w700, ), if (counter != -1) Container( margin: EdgeInsets.all(4), width: 15, height: 15, decoration: BoxDecoration( color: isActive ? Colors.white : Color(0xFFD02127), shape: BoxShape.circle, ), child: Center( child: FittedBox( child: AppText( "$counter", fontSize: SizeConfig.textMultiplier! * 1.5, color: !isActive ? Colors.white : Color(0xFF14384B), fontWeight: FontWeight.w700, ), ), ), ), ], ), ), ); }