Provider (Check Age) Example
import "package:firebase/Stateless_Component_UI/Provider/Providers/home_page_provider.dart";
import "package:flutter/material.dart";
import "package:provider/provider.dart";
void main()
{
runApp(const MyApp());
}
class MyApp extends StatelessWidget
{
const MyApp({super.key});
@override
Widget build(BuildContext context) {
return MaterialApp(
title: "Provider App",
debugShowCheckedModeBanner: false,
theme: ThemeData(
primarySwatch: Colors.grey,
),
home: const HomePage2(),
);
}
}
class HomePage2 extends StatefulWidget
{
const HomePage2({super.key});
@override
State<HomePage2> createState()
{
return HomePage2State();
}
}
class HomePage2State extends State<HomePage2>
{
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: const Text("This is Home Page"),
centerTitle: true,
backgroundColor: Colors.grey,
),
body: Center(
child: Padding(
padding: const EdgeInsets.all(200.0),
child: ChangeNotifierProvider<HomePageProvider>(
create: (context) {
return HomePageProvider();
},
child: Consumer<HomePageProvider>(
builder: (context, provider, child) {
return Column(
mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
Text(provider.eligibilityMessage.toString(),
style: TextStyle(color: (provider.isEligible == true) ? Colors.green : Colors.red),
),
const SizedBox(height: 20.0),
TextFormField(
decoration: InputDecoration(
hintText: "Enter your age",
labelText: "age",
border: OutlineInputBorder(
borderRadius: BorderRadius.circular(11.0),
),
),
onChanged: (value) {
provider.checkEligibility(int.parse(value));
if(provider.isEligible == true)
{
ScaffoldMessenger.of(context).showSnackBar(
const SnackBar(content: Text("You are Eligible!"),),);
}
},
),
],
);
},
),
),
),
),
);
}
}
import "package:flutter/material.dart";
class HomePageProvider with ChangeNotifier
{
bool? isEligible;
String? eligibilityMessage = "";
void checkEligibility(int age)
{
if(age >= 18)
{
isEligible = true;
eligibilityMessage = "You are Eligible";
notifyListeners();
}
else
{
isEligible = false;
eligibilityMessage = "You are not Eligible";
notifyListeners();
}
}
}
Comments
Post a Comment