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

Popular posts from this blog

Second GET API Calling with Bloc simple Example in Flutter

Stack Container Scrollable Card widget UI with Custom Widget

Pagination with Bloc Pattern in Flutter