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.
126 lines
4.0 KiB
Dart
126 lines
4.0 KiB
Dart
//@dart=2.9
|
|
|
|
import 'package:doctor_app_flutter/core/viewModel/project_view_model.dart';
|
|
import 'package:doctor_app_flutter/screens/doctor/doctor_replay/doctor_reply_screen.dart';
|
|
import 'package:doctor_app_flutter/screens/doctor/my_schedule_screen.dart';
|
|
import 'package:doctor_app_flutter/screens/home/home_screen.dart';
|
|
import 'package:doctor_app_flutter/screens/qr_reader/QR_reader_screen.dart';
|
|
import 'package:doctor_app_flutter/util/translations_delegate_base.dart';
|
|
import 'package:doctor_app_flutter/widgets/shared/app_drawer_widget.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/bottom_nav_bar.dart';
|
|
import 'package:doctor_app_flutter/widgets/shared/user-guid/app_showcase_widget.dart';
|
|
import 'package:flutter/cupertino.dart';
|
|
import 'package:flutter/material.dart';
|
|
import 'package:flutter_svg/flutter_svg.dart';
|
|
import 'package:provider/provider.dart';
|
|
|
|
class LandingPage extends StatefulWidget {
|
|
@override
|
|
_LandingPageState createState() => _LandingPageState();
|
|
}
|
|
|
|
class _LandingPageState extends State<LandingPage> {
|
|
int currentTab = 0;
|
|
PageController pageController;
|
|
|
|
_changeCurrentTab(int tab) {
|
|
setState(() {
|
|
currentTab = tab;
|
|
pageController.jumpToPage(tab);
|
|
});
|
|
}
|
|
|
|
@override
|
|
void initState() {
|
|
super.initState();
|
|
pageController = new PageController(keepPage: true);
|
|
}
|
|
|
|
@override
|
|
Widget build(BuildContext context) {
|
|
ProjectViewModel projectViewModel = Provider.of(context);
|
|
return AppScaffold(
|
|
appBar: currentTab != 0
|
|
? AppBar(
|
|
elevation: 0,
|
|
backgroundColor: Colors.grey[100],
|
|
//textTheme: TextTheme(headline6: TextStyle(color: Colors.white)),
|
|
title: currentTab != 0
|
|
? AppText(
|
|
getText(currentTab),
|
|
letterSpacing: -1.44,
|
|
fontWeight: FontWeight.w700,
|
|
fontSize: 24.0,
|
|
color: Color(0xff2B353E),
|
|
)
|
|
: SizedBox(),
|
|
leading: Builder(
|
|
builder: (BuildContext context) {
|
|
return Container(
|
|
width: 40,
|
|
margin: EdgeInsets.only(left: projectViewModel.isArabic? 0:20, right: projectViewModel.isArabic? 20:0),
|
|
child: IconButton(
|
|
icon: SvgPicture.asset('assets/images/svgs/menu.svg',
|
|
height: 25, width: 10),
|
|
iconSize: 15,
|
|
color: Color(0xff2B353E),
|
|
onPressed: () => Scaffold.of(context).openDrawer(),
|
|
),
|
|
);
|
|
},
|
|
),
|
|
centerTitle: true,
|
|
)
|
|
: MyAppbar(),
|
|
drawer: SafeArea(child: AppDrawer()),
|
|
extendBody: true,
|
|
body: PageView(
|
|
physics: NeverScrollableScrollPhysics(),
|
|
controller: pageController,
|
|
children: [
|
|
HomeScreen(),
|
|
MyScheduleScreen(),
|
|
QrReaderScreen(),
|
|
DoctorReplyScreen(
|
|
changeCurrentTab: () {
|
|
_changeCurrentTab(0);
|
|
},
|
|
),
|
|
],
|
|
),
|
|
bottomNavigationBar: BottomNavBar(
|
|
changeIndex: _changeCurrentTab,
|
|
index: currentTab,
|
|
),
|
|
);
|
|
}
|
|
|
|
getText(currentTab) {
|
|
switch (currentTab) {
|
|
case 0:
|
|
return TranslationBase.of(context).home;
|
|
case 1:
|
|
return TranslationBase.of(context).mySchedule;
|
|
case 2:
|
|
return TranslationBase.of(context).qr;
|
|
case 3:
|
|
return TranslationBase.of(context).replay2;
|
|
}
|
|
}
|
|
}
|
|
|
|
class MyAppbar extends StatelessWidget with PreferredSizeWidget {
|
|
@override
|
|
final Size preferredSize;
|
|
|
|
MyAppbar({Key key})
|
|
: preferredSize = Size.fromHeight(0.0),
|
|
super(key: key);
|
|
@override
|
|
Widget build(BuildContext context) {
|
|
return Container();
|
|
}
|
|
}
|