import 'package:flutter/material.dart'; import 'package:intl/intl.dart'; import 'package:progress/progress.dart'; import 'package:provider/provider.dart'; import 'package:fcs/model/employee_model.dart'; import 'package:fcs/model/language_model.dart'; import 'package:fcs/theme/theme.dart'; import 'package:fcs/widget/localization/app_translations.dart'; import 'package:fcs/widget/progress.dart'; import 'employee_editor.dart'; class EmployeeList extends StatefulWidget { @override _EmployeeListState createState() => _EmployeeListState(); } class _EmployeeListState extends State { var dateFormatter = new DateFormat('dd MMM yyyy - hh:mm:ss a'); final double dotSize = 15.0; bool _isLoading = false; @override Widget build(BuildContext context) { var employeeModel = Provider.of(context); var languageModle = Provider.of(context); return LocalProgress( inAsyncCall: _isLoading, child: Scaffold( appBar: AppBar( backgroundColor: primaryColor, title: Text( AppTranslations.of(context).text("employee.title"), style: languageModle.isEng ? TextStyle() : TextStyle(fontFamily: 'MyanmarUnicode'), ), ), floatingActionButton: FloatingActionButton( backgroundColor: primaryColor, child: Icon(Icons.add), onPressed: () { Navigator.push( context, MaterialPageRoute(builder: (context) => EmployeeEditor()), ); }, ), body: new ListView.builder( padding: EdgeInsets.only(left: 15, right: 15, top: 15), shrinkWrap: true, itemCount: employeeModel.employees.length, itemBuilder: (BuildContext context, int index) { return InkWell( onTap: () { Navigator.push( context, MaterialPageRoute( builder: (context) => EmployeeEditor( employee: employeeModel.employees[index], )), ); }, child: Card( elevation: 10, color: Colors.white, child: Row( children: [ new Padding( padding: const EdgeInsets.symmetric(vertical: 10.0), child: new Row( children: [ new Padding( padding: new EdgeInsets.symmetric( horizontal: 32.0 - dotSize / 2), child: Image.asset( "assets/employee.png", width: 40, height: 40, color: primaryColor, ), ), Column( mainAxisAlignment: MainAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start, children: [ Text( employeeModel.employees[index].name == null ? "" : employeeModel.employees[index].name, style: new TextStyle( fontSize: 17.0, color: Colors.black), ), Text( employeeModel.employees[index].phone == null ? "" : employeeModel .employees[index].phone, style: new TextStyle( fontSize: 14.0, color: Colors.grey), ), employeeModel.employees[index].device == null ? Text("No login", style: TextStyle(color: Colors.red)) : Text("last active", style: TextStyle(color: Colors.green)), Text( "${employeeModel.employees[index].device == null ? "" : employeeModel.employees[index].device}", style: TextStyle(fontSize: 11)), Text( "${employeeModel.employees[index].lastActiveTime == null ? "" : dateFormatter.format(employeeModel.employees[index].lastActiveTime)}") ], ), ], ), ), ], ), ), ); }), ), ); } }