import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; import 'package:test_sa/controllers/localization/localization.dart'; import 'package:test_sa/controllers/providers/api/service_requests_provider.dart'; import 'package:test_sa/controllers/providers/api/user_provider.dart'; import 'package:test_sa/controllers/providers/settings/setting_provider.dart'; import 'package:test_sa/extensions/context_extension.dart'; import 'package:test_sa/models/service_request/service_request.dart'; import 'package:test_sa/models/subtitle.dart'; import 'package:test_sa/views/pages/user/requests/request_details.dart'; import 'package:test_sa/views/widgets/loaders/app_loading.dart'; import 'package:test_sa/views/widgets/loaders/failed_loading.dart'; class FutureRequestServiceDetails extends StatefulWidget { static final String id = "/service-request-details"; @override _FutureRequestServiceDetailsState createState() => _FutureRequestServiceDetailsState(); } class _FutureRequestServiceDetailsState extends State { UserProvider _userProvider; SettingProvider _settingProvider; @override Widget build(BuildContext context) { _userProvider = Provider.of(context); _settingProvider = Provider.of(context); String requestId = ModalRoute.of(context).settings.arguments; return Scaffold( body: FutureBuilder( future: ServiceRequestsProvider().getSingleServiceRequest(requestId: requestId, user: _userProvider.user, host: _settingProvider.host, subtitle: context.translation), builder: (BuildContext context, AsyncSnapshot snapshot) { if (snapshot.hasError) return FailedLoading( message: snapshot.error.toString(), onReload: () { setState(() {}); }, ); if (snapshot.hasData) { return RequestDetailsPage( serviceRequest: snapshot.data, ); } return Center(child: ALoading()); }, ), ); } }