diff --git a/lib/presentation/08_future_provider_example.dart b/lib/presentation/08_future_provider_example.dart index f4766ed8894229ba551cc56a16918ccdec849782..bb948c615e30f546af2fe0d732594aa8bb5d7329 100644 --- a/lib/presentation/08_future_provider_example.dart +++ b/lib/presentation/08_future_provider_example.dart @@ -25,7 +25,6 @@ class _TodoListState extends ConsumerState<TodoList> { @override Widget build(BuildContext context) { final todos = ref.watch(todosProvider.select((tds) => tds.whereTodos(_isUncheckedFilter))); - final asyncTodosCount = ref.watch(todosCountProvider); return Column( children: [ @@ -34,9 +33,9 @@ class _TodoListState extends ConsumerState<TodoList> { onFilterChanged: _onFilterChanged, ), const Divider(height: 1), - Padding( - padding: const EdgeInsets.only(top: 16, bottom: 8), - child: TodoListHeader(asyncTodosCount), + const Padding( + padding: EdgeInsets.only(top: 16, bottom: 8), + child: TodoListHeader(), ), Expanded( child: ListView.builder( @@ -89,20 +88,17 @@ class TodoListFilter extends StatelessWidget { } } -class TodoListHeader extends StatelessWidget { - const TodoListHeader( - this.todosCount, { - Key? key, - }) : super(key: key); - - final AsyncValue<int> todosCount; +class TodoListHeader extends ConsumerWidget { + const TodoListHeader({Key? key}) : super(key: key); @override - Widget build(BuildContext context) { + Widget build(BuildContext context, WidgetRef ref) { + final asyncTodosCount = ref.watch(todosCountProvider); + return Container( height: 16, alignment: Alignment.center, - child: todosCount.when( + child: asyncTodosCount.when( data: (count) => Text( "$count todos", style: Theme.of(context).textTheme.subtitle2, diff --git a/lib/presentation/09_async_value_example.dart b/lib/presentation/09_async_value_example.dart index 88600b753de9644dc850fa5877263116c7f7edd7..9c47b9b880728e2dad6ac67d7c4aa3eb227a7f14 100644 --- a/lib/presentation/09_async_value_example.dart +++ b/lib/presentation/09_async_value_example.dart @@ -1,4 +1,3 @@ -import 'package:article_flutter_riverpod/presentation/01_introduction_example.dart'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; @@ -26,7 +25,6 @@ class _TodoListState extends ConsumerState<TodoList> { @override Widget build(BuildContext context) { final asyncTodos = ref.watch(todosProvider.selectTodos(_isUncheckedFilter)); - final asyncTodosCount = ref.watch(todosCountProvider); return Column( children: [ @@ -35,9 +33,9 @@ class _TodoListState extends ConsumerState<TodoList> { onFilterChanged: _onFilterChanged, ), const Divider(height: 1), - Padding( - padding: const EdgeInsets.only(top: 16, bottom: 8), - child: TodoListHeader(asyncTodosCount), + const Padding( + padding: EdgeInsets.only(top: 16, bottom: 8), + child: TodoListHeader(), ), Expanded( child: asyncTodos.when( @@ -98,20 +96,17 @@ class TodoListFilter extends StatelessWidget { } } -class TodoListHeader extends StatelessWidget { - const TodoListHeader( - this.todosCount, { - Key? key, - }) : super(key: key); - - final AsyncValue<int> todosCount; +class TodoListHeader extends ConsumerWidget { + const TodoListHeader({Key? key}) : super(key: key); @override - Widget build(BuildContext context) { + Widget build(BuildContext context, WidgetRef ref) { + final asyncTodosCount = ref.watch(todosCountProvider); + return Container( height: 16, alignment: Alignment.center, - child: todosCount.when( + child: asyncTodosCount.when( data: (count) => Text( "$count todos", style: Theme.of(context).textTheme.subtitle2,