import 'package:doctor_app_flutter/core/enum/viewstate.dart'; import 'package:doctor_app_flutter/core/viewModel/base_view_model.dart'; import 'package:doctor_app_flutter/widgets/shared/app_texts_widget.dart'; import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; import 'app_loader_widget.dart'; import 'errors/dr_app_embedded_error.dart'; class NetworkBaseView extends StatelessWidget { final BaseViewModel baseViewModel; final Widget child; NetworkBaseView({Key key, this.baseViewModel, this.child}); @override Widget build(BuildContext context) { return Container( color: Colors.grey[100], child: buildBaseViewWidget(), ); } buildBaseViewWidget() { switch (baseViewModel.state) { case ViewState.ErrorLocal: case ViewState.Idle: case ViewState.BusyLocal: return child; break; case ViewState.Busy: return AppLoaderWidget(); break; case ViewState.Error: return Center( child: Column( crossAxisAlignment: CrossAxisAlignment.center, children: [ SizedBox(height: 100,), Image.asset('assets/images/no-data.png'), Center( child: Center( child: Padding( padding: const EdgeInsets.only(top: 12, bottom: 12,right: 20, left: 30), child: Center(child: AppText(baseViewModel.error??'' , textAlign: TextAlign.center,)), ), ), ) ], ), ); break; } } }