improvement.

main_design2.0
Sikander Saleem 2 years ago
parent ba1b0ded40
commit c93e249519

@ -4,6 +4,8 @@ import 'package:test_sa/extensions/int_extensions.dart';
import 'package:test_sa/extensions/text_extensions.dart';
import 'package:test_sa/extensions/widget_extensions.dart';
import 'package:test_sa/new_views/app_style/app_color.dart';
import 'package:test_sa/new_views/pages/land_page/calender_fragments/daily_fragment.dart';
import 'package:test_sa/new_views/pages/land_page/calender_fragments/weekly_fragment.dart';
import '../../common_widgets/default_app_bar.dart';
@ -26,20 +28,22 @@ class _CalendarPageState extends State<CalendarPage> with SingleTickerProviderSt
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: const DefaultAppBar(title: ""),
body: Column(
mainAxisSize: MainAxisSize.min,
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Card(
// todo @sikander, hiding My shift view, later when they add data, then will us it.
SizedBox(
width: double.infinity,
child: Column(
crossAxisAlignment: CrossAxisAlignment.stretch,
crossAxisAlignment: CrossAxisAlignment.start,
children: [
"My Shift".heading5(context),
8.height,
"Sunday to Thursday".bodyText(context),
"09:00 to 18:00".bodyText(context).custom(color: AppColor.neutral50),
],
).paddingAll(16),
).toShadowContainer,
),
16.height,
Container(
@ -89,19 +93,12 @@ class _CalendarPageState extends State<CalendarPage> with SingleTickerProviderSt
],
),
),
CalendarCard(
calendarFormat: CalendarFormat.week,
child: Column(
children: [
const Divider().defaultStyle(context),
],
),
),
Container(),
WeeklyFragment(),
DailyFragment(),
],
).expanded,
],
).paddingAll(16),
),
);
}
}
@ -109,6 +106,7 @@ class _CalendarPageState extends State<CalendarPage> with SingleTickerProviderSt
class CalendarCard extends StatelessWidget {
final CalendarFormat calendarFormat;
final Widget child;
const CalendarCard({this.calendarFormat, this.child, Key key}) : super(key: key);
@override

@ -24,7 +24,6 @@ class _DailyFragmentState extends State<DailyFragment> {
@override
Widget build(BuildContext context) {
// TODO: implement build
return null;
return Container();
}
}

@ -1,145 +0,0 @@
import 'package:flutter/material.dart';
import 'package:table_calendar/table_calendar.dart';
import 'package:test_sa/extensions/int_extensions.dart';
import 'package:test_sa/extensions/text_extensions.dart';
import 'package:test_sa/extensions/widget_extensions.dart';
import 'package:test_sa/new_views/app_style/app_color.dart';
import 'package:test_sa/new_views/pages/land_page/calender_fragments/monthly_fragment.dart';
import 'package:test_sa/new_views/pages/land_page/calender_fragments/weekly_fragment.dart';
class CalenderPage extends StatefulWidget {
CalenderPage({Key key}) : super(key: key);
@override
_CalenderPageState createState() {
return _CalenderPageState();
}
}
class _CalenderPageState extends State<CalenderPage> {
int selectedIndex = 0;
DateTime currentDateTime = DateTime.now();
PageController _pageController;
@override
void initState() {
_pageController = PageController();
super.initState();
}
@override
void dispose() {
_pageController.dispose();
super.dispose();
}
@override
Widget build(BuildContext context) {
return Scaffold(
body: Column(
children: [
// todo @sikander, hiding My shift view, later when they add data, then will us it.
Container(
width: double.infinity,
padding: const EdgeInsets.all(16),
decoration: ShapeDecoration(
color: Colors.white,
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(20),
),
shadows: const [
BoxShadow(
color: Color(0x07000000),
blurRadius: 14,
offset: Offset(0, 0),
spreadRadius: 0,
)
],
),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
mainAxisSize: MainAxisSize.min,
children: [
Text(
'My Shift',
style: AppTextStyles.heading5.copyWith(color: AppColor.neutral50),
),
8.height,
Text(
'Sunday to Thursday',
style: AppTextStyles.bodyText.copyWith(color: const Color(0xFF757575)),
),
Text(
'09:00 to 18:00',
style: AppTextStyles.bodyText.copyWith(color: AppColor.neutral50),
),
],
),
),
Container(
width: double.infinity,
padding: const EdgeInsets.all(4),
decoration: ShapeDecoration(
color: const Color(0xFFEAF1F4),
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(16),
),
shadows: const [
BoxShadow(
color: Color(0x07000000),
blurRadius: 14,
offset: Offset(0, 0),
spreadRadius: 0,
)
],
),
child: Row(
children: [
tabItem("Monthly", 0, selectedIndex, () => onTabPress(0)),
tabItem("Weekly", 1, selectedIndex, () => onTabPress(1)),
tabItem("Daily", 2, selectedIndex, () => onTabPress(2)),
],
),
),
8.height,
PageView(
controller: _pageController,
onPageChanged: (index) => onTabPress(index),
children: [
MonthlyFragment(),
WeeklyFragment(),
Container(),
],
).expanded,
],
),
);
}
void onTabPress(index) {
if (selectedIndex != index) {
setState(() {
selectedIndex = index;
});
_pageController.jumpToPage(index);
}
}
Widget tabItem(String title, int index, int selectedIndex, VoidCallback onPress) {
return Container(
alignment: Alignment.center,
padding: const EdgeInsets.only(top: 14, bottom: 14),
decoration: ShapeDecoration(
color: index == selectedIndex ? Colors.white : Colors.transparent,
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(13),
),
),
child: Text(
title,
style: AppTextStyles.bodyText.copyWith(color: index == selectedIndex ? AppColor.neutral60 : const Color(0xFF757575)),
)).onPress(onPress).expanded;
}
}

@ -0,0 +1,145 @@
// import 'package:flutter/material.dart';
// import 'package:table_calendar/table_calendar.dart';
// import 'package:test_sa/extensions/int_extensions.dart';
// import 'package:test_sa/extensions/text_extensions.dart';
// import 'package:test_sa/extensions/widget_extensions.dart';
// import 'package:test_sa/new_views/app_style/app_color.dart';
// import 'package:test_sa/new_views/pages/land_page/calender_fragments/monthly_fragment.dart';
// import 'package:test_sa/new_views/pages/land_page/calender_fragments/weekly_fragment.dart';
//
// class CalenderPage extends StatefulWidget {
// CalenderPage({Key key}) : super(key: key);
//
// @override
// _CalenderPageState createState() {
// return _CalenderPageState();
// }
// }
//
// class _CalenderPageState extends State<CalenderPage> {
// int selectedIndex = 0;
// DateTime currentDateTime = DateTime.now();
//
// PageController _pageController;
//
// @override
// void initState() {
// _pageController = PageController();
// super.initState();
// }
//
// @override
// void dispose() {
// _pageController.dispose();
// super.dispose();
// }
//
// @override
// Widget build(BuildContext context) {
// return Scaffold(
// body: Column(
// children: [
// // todo @sikander, hiding My shift view, later when they add data, then will us it.
// Container(
// width: double.infinity,
// padding: const EdgeInsets.all(16),
// decoration: ShapeDecoration(
// color: Colors.white,
// shape: RoundedRectangleBorder(
// borderRadius: BorderRadius.circular(20),
// ),
// shadows: const [
// BoxShadow(
// color: Color(0x07000000),
// blurRadius: 14,
// offset: Offset(0, 0),
// spreadRadius: 0,
// )
// ],
// ),
// child: Column(
// crossAxisAlignment: CrossAxisAlignment.start,
// mainAxisSize: MainAxisSize.min,
// children: [
// Text(
// 'My Shift',
// style: AppTextStyles.heading5.copyWith(color: AppColor.neutral50),
// ),
// 8.height,
// Text(
// 'Sunday to Thursday',
// style: AppTextStyles.bodyText.copyWith(color: const Color(0xFF757575)),
// ),
// Text(
// '09:00 to 18:00',
// style: AppTextStyles.bodyText.copyWith(color: AppColor.neutral50),
// ),
// ],
// ),
// ),
//
// Container(
// width: double.infinity,
// padding: const EdgeInsets.all(4),
// decoration: ShapeDecoration(
// color: const Color(0xFFEAF1F4),
// shape: RoundedRectangleBorder(
// borderRadius: BorderRadius.circular(16),
// ),
// shadows: const [
// BoxShadow(
// color: Color(0x07000000),
// blurRadius: 14,
// offset: Offset(0, 0),
// spreadRadius: 0,
// )
// ],
// ),
// child: Row(
// children: [
// tabItem("Monthly", 0, selectedIndex, () => onTabPress(0)),
// tabItem("Weekly", 1, selectedIndex, () => onTabPress(1)),
// tabItem("Daily", 2, selectedIndex, () => onTabPress(2)),
// ],
// ),
// ),
// 8.height,
// PageView(
// controller: _pageController,
// onPageChanged: (index) => onTabPress(index),
// children: [
// MonthlyFragment(),
// WeeklyFragment(),
// Container(),
// ],
// ).expanded,
// ],
// ),
// );
// }
//
// void onTabPress(index) {
// if (selectedIndex != index) {
// setState(() {
// selectedIndex = index;
// });
// _pageController.jumpToPage(index);
// }
// }
//
// Widget tabItem(String title, int index, int selectedIndex, VoidCallback onPress) {
// return Container(
// alignment: Alignment.center,
// padding: const EdgeInsets.only(top: 14, bottom: 14),
// decoration: ShapeDecoration(
// color: index == selectedIndex ? Colors.white : Colors.transparent,
// shape: RoundedRectangleBorder(
// borderRadius: BorderRadius.circular(13),
// ),
// ),
// child: Text(
// title,
// style: AppTextStyles.bodyText.copyWith(color: index == selectedIndex ? AppColor.neutral60 : const Color(0xFF757575)),
// )).onPress(onPress).expanded;
// }
// }

@ -6,7 +6,7 @@ import 'package:provider/provider.dart';
import 'package:test_sa/controllers/providers/api/user_provider.dart';
import 'package:test_sa/extensions/int_extensions.dart';
import 'package:test_sa/models/enums/user_types.dart';
import 'package:test_sa/new_views/pages/land_page/calender_page.dart';
import 'package:test_sa/new_views/pages/land_page/calendar_page.dart';
import 'package:test_sa/new_views/pages/land_page/home_app_bar.dart';
import 'package:test_sa/new_views/pages/land_page/my_assets_page.dart';
import 'package:test_sa/new_views/pages/land_page/my_request/my_requests_page.dart';
@ -52,7 +52,7 @@ class _LandPageState extends State<LandPage> {
})),
old_page.LandPage(),
SingleDevicePicker(),
if (_userProvider.user.type == UsersTypes.engineer) CalenderPage(),
if (_userProvider.user.type == UsersTypes.engineer) CalendarPage(),
MyRequestsPage(),
];
}

Loading…
Cancel
Save