import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; import '../models/cycles_models.dart'; import '../providers/connectivity.dart'; import '../providers/cycles.dart'; import '../widgets/CycleScreens/Details/datas_box.dart'; import '../widgets/Global/internet_error.dart'; class CycleDetailScreen extends StatefulWidget { // static const route = '/CycleDetailScreen'; final String testResultId; CycleDetailScreen({this.testResultId}); @override _CycleDetailScreenState createState() => _CycleDetailScreenState(); } class _CycleDetailScreenState extends State { bool isInit = true; bool isEmpty = false; CycleDetailObject datas; @override void didChangeDependencies() async { if (isInit) { var _id = ModalRoute.of(context).settings.arguments; await Provider.of(context, listen: false) .showCycleResult(_id.toString()) .then( (result) { setState( () { if (result.id == 'null') { isEmpty = true; } datas = result; isInit = false; }, ); }, ); } super.didChangeDependencies(); } @override Widget build(BuildContext context) { final _media = MediaQuery.of(context); // final double _pixelRatio = (_media.size.height / _media.size.width * 7 / 5); final double _devicewidth = _media.size.width; final double _deviceBlockSize = _devicewidth / 100; return SafeArea( child: Scaffold( appBar: AppBar( titleSpacing: -10, title: Text('Cycles'), leading: IconButton( icon: Icon( Icons.keyboard_arrow_left, size: 35, ), onPressed: () => Navigator.of(context).pop(), ), ), body: Consumer(builder: (ct, connection, _) { return connection.conStatus != 'offline' ? isInit ? Center( child: CircularProgressIndicator(), ) : isEmpty ? Center( child: Text('This Cycle doesnt exists!'), ) : CycleDetailsDataBox( datas: datas, deviceBlockSize: _deviceBlockSize, ) : ConnectionErrorBox(); }), ), ); } }