You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
diplomatic-quarter/lib/pages/livecare/livecare_home.dart

128 lines
4.2 KiB
Dart

import 'package:diplomaticquarterapp/models/FamilyFiles/PatientERVirtualHistoryResponse.dart';
import 'package:diplomaticquarterapp/pages/livecare/widgets/LiveCarePendingRequest.dart';
import 'package:diplomaticquarterapp/pages/livecare/widgets/clinic_list.dart';
import 'package:diplomaticquarterapp/pages/livecare/widgets/livecare_logs.dart';
import 'package:diplomaticquarterapp/services/livecare_services/livecare_provider.dart';
import 'package:diplomaticquarterapp/uitl/gif_loader_dialog_utils.dart';
import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
import 'package:flutter/material.dart';
class LiveCareHome extends StatefulWidget {
static bool showFooterButton = true;
@override
_LiveCareHomeState createState() => _LiveCareHomeState();
}
class _LiveCareHomeState extends State<LiveCareHome>
with SingleTickerProviderStateMixin {
TabController _tabController;
bool isDataLoaded = false;
bool hasLiveCareRequest = false;
List<ErRequestHistoryList> erRequestHistoryList;
ErRequestHistoryList pendingERRequestHistoryList;
@override
void initState() {
_tabController = new TabController(length: 2, vsync: this);
erRequestHistoryList = List();
pendingERRequestHistoryList = new ErRequestHistoryList();
WidgetsBinding.instance.addPostFrameCallback((_) {
if (!isDataLoaded) getLiveCareHistory();
});
super.initState();
}
@override
Widget build(BuildContext context) {
return AppScaffold(
appBarTitle: "LiveCare",
isShowAppBar: true,
body: Container(
child: Column(children: [
/// this is will not colored with theme data
TabBar(
labelColor: Colors.black,
tabs: [
Tab(text: TranslationBase.of(context).consultation),
Tab(text: TranslationBase.of(context).logs),
],
controller: _tabController,
),
Divider(
color: Colors.grey[600],
thickness: 0.5,
),
Expanded(
child: TabBarView(
physics: NeverScrollableScrollPhysics(),
children: [
isDataLoaded && !hasLiveCareRequest
? ClinicList(
getLiveCareHistory: getLiveCareHistory,
)
: isDataLoaded
? LiveCarePendingRequest(
getLiveCareHistory: getLiveCareHistory,
pendingERRequestHistoryList:
pendingERRequestHistoryList)
: Container(),
isDataLoaded
? LiveCareLogs(
erRequestHistoryList: erRequestHistoryList,
)
: Container(),
],
controller: _tabController,
),
),
]),
),
);
}
void getLiveCareHistory() {
GifLoaderDialogUtils.showMyDialog(context);
setState(() {
isDataLoaded = false;
hasLiveCareRequest = false;
});
LiveCareService service = new LiveCareService();
PatientERVirtualHistoryResponse patientERVirtualHistoryResponse =
new PatientERVirtualHistoryResponse();
service.getLivecareHistory(context).then((res) {
GifLoaderDialogUtils.hideDialog(context);
setState(() {
print(res['ErRequestHistoryList'].length);
if (res['ErRequestHistoryList'].length != 0) {
patientERVirtualHistoryResponse =
PatientERVirtualHistoryResponse.fromJson(res);
erRequestHistoryList =
patientERVirtualHistoryResponse.erRequestHistoryList;
if (patientERVirtualHistoryResponse
.erRequestHistoryList[0].callStatus <
4) {
pendingERRequestHistoryList =
patientERVirtualHistoryResponse.erRequestHistoryList[0];
hasLiveCareRequest = true;
} else {
hasLiveCareRequest = false;
}
}
isDataLoaded = true;
});
}).catchError((err) {
GifLoaderDialogUtils.hideDialog(context);
print(err);
});
}
}