import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; import 'package:pshared/provider/template.dart'; class ResourceContainer extends StatelessWidget { final Widget Function(BuildContext context, T provider) builder; final Widget? loading; final Widget? error; final Widget? empty; const ResourceContainer({ required this.builder, this.loading, this.error, this.empty, }); @override Widget build(BuildContext context) => Consumer(builder: (context, provider, _) { if (provider.isLoading) return loading ?? Center(child: CircularProgressIndicator()); if (provider.error != null) return error ?? Text('Error while loading data. Try again'); //TODO: need to implement localizations and add more details to the error if (provider.isEmpty) return empty ?? Text('Empty data'); //TODO: need to implement localizations too return builder(context, provider); }); }