From 0676de831660681853002135f92e8810610d578c Mon Sep 17 00:00:00 2001 From: Siahlooei Date: Wed, 17 Jul 2024 15:43:52 +0330 Subject: [PATCH] Add new ConsuemerWidget with same business of RandomWidget. Add widget to homepage. Two widgets shows same (random) data, and just one request recorded on API server. It's good. --- lib/mains/gt.dart | 4 +++- lib/widgets/consumer/random.dart | 26 ++++++++++++++++++++++++++ 2 files changed, 29 insertions(+), 1 deletion(-) create mode 100644 lib/widgets/consumer/random.dart diff --git a/lib/mains/gt.dart b/lib/mains/gt.dart index eae4bf5..5dcaaca 100644 --- a/lib/mains/gt.dart +++ b/lib/mains/gt.dart @@ -2,6 +2,7 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:riverpod_annotation/riverpod_annotation.dart'; +import '../widgets/consumer/random.dart'; import '../widgets/simples/random.dart'; part 'gt.g.dart'; @@ -40,7 +41,8 @@ class MyApp extends ConsumerWidget { children: [ const Expanded(child: Text('1')), Expanded(child: Text(value)), - const Expanded(child: RandomWidget()) + const Expanded(child: RandomWidget()), + const Expanded(child: Random2Widget()) ], ) diff --git a/lib/widgets/consumer/random.dart b/lib/widgets/consumer/random.dart new file mode 100644 index 0000000..dae16f5 --- /dev/null +++ b/lib/widgets/consumer/random.dart @@ -0,0 +1,26 @@ +import 'package:flutter/cupertino.dart'; +import 'package:flutter/material.dart'; +import 'package:flutter_riverpod/flutter_riverpod.dart'; +import 'package:riverpod_flutter_tuts/outerapi/auth/call/getRandomData.dart'; +import 'package:riverpod_flutter_tuts/outerapi/auth/model/my_random.dart'; + +class Random2Widget extends ConsumerWidget { + const Random2Widget({super.key}); + + @override + Widget build(BuildContext context, WidgetRef ref) { + // TODO: implement build + + final AsyncValue myRandom = ref.watch(getMyRandomProvider); + return Center( + child: switch (myRandom) { + AsyncData(:final MyRandom value ) => Text( + 'myRandom: $value' + ), + AsyncError() => const Text('Oops, something unexpected happened'), + _ => const CircularProgressIndicator(), + + }, + ); + } +} \ No newline at end of file