Dman_14

Using Provider.of

Jan 28th, 2021
866
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. class IdeasMainPage extends StatelessWidget {
  2.   @override
  3.   Widget build(BuildContext context) {
  4.     return BaseView<IdeasMainPageController>(onControllerReady: (controller) {
  5.       controller.initialize();
  6.     }, builder: (context, controller, child) {
  7.       return Scaffold(
  8.         backgroundColor: Colors.white.withOpacity(0.9),
  9.         appBar: AppBar(
  10.           title: Text('Ideas'),
  11.         ),
  12.         floatingActionButton: FloatingActionButton(
  13.           onPressed: () {
  14.             Navigator.push(
  15.                 context,
  16.                 MaterialPageRoute(
  17.                     builder: (context) => CreateIdeaPage('Create Idea')));
  18.           },
  19.           child: Icon(Icons.add),
  20.         ),
  21.         body: controller.ideas.isEmpty ? NoIdeas() : IdeasList(),
  22.       );
  23.     });
  24.   }
  25. }
  26.  
  27. class IdeasList extends StatelessWidget {
  28.   const IdeasList({Key key}) : super(key: key);
  29.  
  30.   @override
  31.   Widget build(BuildContext context) {
  32.     final controller = Provider.of<IdeasMainPageController>(context);
  33.  
  34.     return ListView.builder(
  35.         itemCount: controller.ideas.length,
  36.         itemBuilder: (context, index) {
  37.           return IdeaCard(
  38.             idea: controller.ideas[index],
  39.           );
  40.         });
  41.   }
  42. }
  43.  
  44. class NoIdeas extends StatelessWidget {
  45.   const NoIdeas({Key key}) : super(key: key);
  46.  
  47.   @override
  48.   Widget build(BuildContext context) {
  49.     return Container();
  50.   }
  51. }
RAW Paste Data