Flutter
Flutter
dart
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
import 'package:temp/item-provider.dart';
import 'home-page.dart';
void main(){
runApp(ChangeNotifierProvider(child: MyApp(),create:
(context) => ProductsProvider(),));
}
class MyApp extends StatelessWidget {
const MyApp({super.key});
@override
Widget build(BuildContext context) {
return MaterialApp(
debugShowCheckedModeBanner: false,
title: "SUHAD",
home: LoginPage(),
);
}
}
class LoginPage extends StatefulWidget {
const LoginPage({super.key});
@override
State<LoginPage> createState() => _LoginPageState();
}
void onSubmit() {
String email = emailController.text;
String password = passwordController.text;
setState(() {
if (!email.contains("@")) {
emailError = "Enter proper email!";
return;
}
emailError = null;
if (password.length < 6) {
passwordError = "Password must be at_least 6
characters";
return;
}
passwordError = null;
Navigator.push(context, MaterialPageRoute(builder:
(context) => HomePage(),));
});
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
backgroundColor: Colors.red,
title: Text('Login'),
leading: Icon(Icons.account_circle),
actions: [
Icon(Icons.shopping_bag),
],
),
body: SingleChildScrollView(
child: Column(
children: [
SizedBox(
height: 200,
),
TextField(
controller: emailController,
decoration: InputDecoration(
errorText: emailError,
border: OutlineInputBorder(),
hintText: "Email",
labelText: "Enter Email",
prefixIcon: Icon(Icons.email),
),
),
SizedBox(
height: 50,
),
TextField(
controller: passwordController,
decoration: InputDecoration(
border: OutlineInputBorder(),
errorText: passwordError,
hintText: "Password",
labelText: "Enter password",
prefixIcon:
Icon(Icons.lock_outline_rounded),
suffixIcon: Icon(Icons.remove_red_eye)
),
),
SizedBox(
height: 30,
),
ElevatedButton(onPressed: onSubmit, child:
Text('Login')),
],
),
),
);
}
}
home-page.dart
import 'package:flutter/material.dart';
import 'package:temp/item-widget.dart';
import 'package:temp/item.dart';
import 'dummy-item-provider.dart';
@override
` State<HomePage> createState() => _HomePageState();
}
item-widget.dart
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
import 'package:temp/item.dart';
import 'item-provider.dart';
@override
State<ItemWidget> createState() => _ItemWidgetState();
}
],
),
)
],
);
}
}
item.dart
class Item{
String image;
String name;
String price;
import 'package:temp/item.dart';
class DummyItemProvider {
static List<Item> getDummyItem() {
return [
Item(
'data:image/jpeg;base64,/9j/4AAQSk',
'Deluxe Room',
'Rs. 10000',
),
Item(
'data:image/jpeg;base64,/9j/4AAQSk',
'Deluxe Room',
'Rs. 10000',
),
Item(
'data:image/jpeg;base64,/9j/4AAQSk',
'Deluxe Room',
'Rs. 10000',
),
Item(
'data:image/jpeg;base64,/9j/4AAQSk',
'Deluxe Room',
'Rs. 10000',
),
Item(
'data:image/jpeg;base64,/9j/4AAQSk',
'Deluxe Room',
'Rs. 10000',
),
Item(
'data:image/jpeg;base64,/9j/4AAQSk',
'Deluxe Room',
'Rs. 10000',
),
Item(
'data:image/jpeg;base64,/9j/4AAQSk',
'Deluxe Room',
'Rs. 10000',
),
Item(
'data:image/jpeg;base64,/9j/4AAQSk',
'Deluxe Room',
'Rs. 10000',
),
Item(
'data:image/jpeg;base64,/9j/4AAQSk',
'Deluxe Room',
'Rs. 10000',
),
Item(
'data:image/jpeg;base64,/9j/4AAQSk',
'Deluxe Room',
'Rs. 10000',
),
];
}
}
item-provider.dart
import 'package:flutter/material.dart';
import 'package:temp/item.dart';
import 'dummy-item-provider.dart';