This commit is contained in:
2020-12-23 00:43:59 -05:00
parent 0fd880f57b
commit 86c845b49b
54 changed files with 3638 additions and 107 deletions

96
lib/pages/home.dart Normal file
View File

@@ -0,0 +1,96 @@
import 'package:flutter/material.dart';
import 'package:flutter_wisetronic/models/gallery.dart';
import '../widgets/general/bottom_nav.dart';
import '../widgets/general/index_carousel.dart';
import '../widgets/general/index_main_content_1.dart';
import '../widgets/general/index_main_content_2.dart';
import '../widgets/general/index_main_content_3.dart';
import '../events/eventbus.dart';
import '../events/events.dart';
import '../generated/l10n.dart';
import '../store/actions.dart';
import '../store/store.dart';
import '../utils/http_util.dart';
import '../utils/double_back_to_close_app.dart';
import '../widgets/general/navigationbar.dart';
import '../widgets/mobile/mobile_navigation_drawer.dart';
import 'package:responsive_builder/responsive_builder.dart';
class Home extends StatefulWidget {
final Locale locale;
final String title;
Home(this.locale, {Key key, this.title}) : super(key: key);
@override
State<StatefulWidget> createState() {
return HomeState();
}
}
class HomeState extends State<Home> {
final _scaffoldKey = GlobalKey<ScaffoldState>();
List<Gallery> galleries = [];
String content1Message = '';
Map<String, dynamic> content2;
@override
Widget build(BuildContext context) {
store.dispatch(UpdateContext(context));
return ResponsiveBuilder(
builder: (context, sizingInformation) =>
Scaffold(
key: _scaffoldKey,
appBar: NavigationBar(),
drawer: sizingInformation.deviceScreenType == DeviceScreenType.mobile ? MobileNavigationDrawer() : null,
body: DoubleBackToCloseApp(
snackBar: SnackBar(
content: Text(S.of(context).tap_back_again_to_exit),
),
child: SingleChildScrollView(
child: Column(
mainAxisSize: MainAxisSize.min,
children: [
IndexCarousel(galleries),
IndexMainContent1(content1Message),
IndexMainContent2(content2),
IndexMainContent3(content2),
],
),
),
),
bottomNavigationBar: BottomNav(),
),
);
}
@override
void initState() {
super.initState();
_loadData();
eventBus.on<OpenDrawer>().listen((event) {
if (mounted) {
_scaffoldKey.currentState.openDrawer();
}
});
}
void _loadData() {
HttpUtil.httpGet('v1/get-wisetronic-index-carousel')
.then((value) {
print('$value');
if (mounted) {
setState(() {
galleries = (value['index_carousel'] as List).map((i) => Gallery.fromJson(i)).toList();
content1Message = value['content']['index_content_1'];
content2 = value['content']['index_content_2'];
});
}
});
}
}