Files
flutter_wisetronic/lib/pages/home.dart
2020-12-28 00:19:04 -05:00

97 lines
2.8 KiB
Dart

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 {
Locale locale;
final String title;
Home(Locale locale, {Key key, this.title}) :
locale = locale ?? store.state.locale;
@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'];
});
}
});
}
}