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 createState() { return HomeState(); } } class HomeState extends State { final _scaffoldKey = GlobalKey(); List galleries = []; String content1Message = ''; Map 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().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']; }); } }); } }