import 'package:diplomaticquarterapp/config/config.dart'; import 'package:diplomaticquarterapp/providers/project_provider.dart'; import 'package:diplomaticquarterapp/widgets/data_display/text.dart'; import 'file:///D:/Mohammad/diplomatic_quarter_app/lib/widgets/progress_indicator/app_loader_widget.dart'; import 'package:flutter/material.dart'; import 'package:font_awesome_flutter/font_awesome_flutter.dart'; import 'package:hexcolor/hexcolor.dart'; import 'package:provider/provider.dart'; class AppScaffold extends StatelessWidget { final String appBarTitle; final Widget body; final bool isLoading; final bool isShowAppBar; AppScaffold( {@required this.body, this.appBarTitle = '', this.isLoading = false, this.isShowAppBar = true}); @override Widget build(BuildContext context) { AppGlobal.context = context; ProjectProvider projectProvider = Provider.of(context); return Scaffold( backgroundColor: Theme.of(context).scaffoldBackgroundColor, appBar: isShowAppBar ? AppBar( elevation: 0, backgroundColor: Theme.of(context).appBarTheme.color, textTheme: TextTheme( headline6: TextStyle(color: Colors.white, fontWeight: FontWeight.bold), ), title: Text(appBarTitle.toUpperCase()), leading: Builder( builder: (BuildContext context) { return IconButton( icon: Icon(Icons.arrow_back_ios), color: Colors.white, onPressed: () => Navigator.pop(context), ); }, ), centerTitle: true, actions: [ IconButton( icon: Icon(FontAwesomeIcons.home), color: Colors.white, onPressed: () { // TODO add navigator to home page }, ), ], ) : null, body: projectProvider.isInternetConnection ? Stack(children: [body, buildAppLoaderWidget(isLoading)]) : Center( child: Column( mainAxisAlignment: MainAxisAlignment.center, crossAxisAlignment: CrossAxisAlignment.center, children: [ Image.asset( "assets/images/undraw_connected_world_wuay.png", height: 250, ), Texts('No Internet Connection') ], ), ), ); } Widget buildAppLoaderWidget(bool isloading) { return isloading ? AppLoaderWidget() : Container(); } }