zahra 45f055cc5d Add a random widget.
Fix variable names about counter.
2024-07-19 23:50:11 +03:30

57 lines
1.7 KiB
Dart

import 'package:flutter/material.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:riverpod_annotation/riverpod_annotation.dart';
import 'package:riverpod_flutter_tuts/widgets/notifier/counter_widget.dart';
import '../widgets/consumer/random.dart';
import '../widgets/notifier/random_widget.dart';
import '../widgets/simples/random.dart';
part 'gt.g.dart';
// We create a "provider", which will store a value (here "Hello world").
// By using a provider, this allows us to mock/override the value exposed.
@riverpod
String helloWorld(HelloWorldRef ref) {
return 'Hello world';
}
void main() {
runApp(
// For widgets to be able to read providers, we need to wrap the entire
// application in a "ProviderScope" widget.
// This is where the state of our providers will be stored.
const ProviderScope(
child: MyApp(),
),
);
}
// Extend ConsumerWidget instead of StatelessWidget, which is exposed by Riverpod
class MyApp extends ConsumerWidget {
const MyApp({super.key});
@override
Widget build(BuildContext context, WidgetRef ref) {
final String value = ref.watch(helloWorldProvider);
return MaterialApp(
home: Scaffold(
appBar: AppBar(title: const Text('Example')),
body: Center(
child: Column(
children: <Widget>[
const Expanded(child: Text('1')),
Expanded(child: Text(value)),
const Expanded(child: RandomWidget()),
const Expanded(child: Random2Widget()),
const Expanded(child: CounterWidget()),
const Expanded(child: Random3Widget()),
],
)
),
),
);
}
}