parent
51f5204f4a
commit
036d0279de
After Width: | Height: | Size: 2.4 KiB |
After Width: | Height: | Size: 24 KiB |
After Width: | Height: | Size: 6.4 KiB |
After Width: | Height: | Size: 2.4 KiB |
@ -0,0 +1,64 @@
|
|||||||
|
|
||||||
|
|
||||||
|
import 'dart:io';
|
||||||
|
|
||||||
|
import 'package:flutter/material.dart';
|
||||||
|
import 'package:google_fonts/google_fonts.dart';
|
||||||
|
|
||||||
|
const Color primaryColor = Color(0XFF1D7AFC);
|
||||||
|
const Color secondaryColor = Color(0XFFBFE0ED);
|
||||||
|
const Color greyColor = Color(0XFF7E7F80);
|
||||||
|
|
||||||
|
TextStyle fontTextStyle(double fontSize,Color fontColor,FontWeight weight) {
|
||||||
|
return GoogleFonts.inter(
|
||||||
|
textStyle: TextStyle(
|
||||||
|
fontSize: fontSize,
|
||||||
|
fontWeight: weight,
|
||||||
|
color:fontColor,
|
||||||
|
),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
InputDecoration textFormFieldDecoration(IconData icon,var text){
|
||||||
|
return InputDecoration(
|
||||||
|
counterText: '',
|
||||||
|
filled: false,
|
||||||
|
fillColor: Colors.white,
|
||||||
|
/*prefixIcon: Icon(
|
||||||
|
icon,
|
||||||
|
color: Colors.white,
|
||||||
|
),*/
|
||||||
|
border: OutlineInputBorder(
|
||||||
|
borderRadius: BorderRadius.circular(4.0),
|
||||||
|
borderSide: BorderSide(color: greyColor,
|
||||||
|
width: 1, )),
|
||||||
|
focusedBorder: OutlineInputBorder(
|
||||||
|
borderRadius: BorderRadius.circular(4.0),
|
||||||
|
borderSide: BorderSide(color: Color(0XFF1D7AFC),width: 2,),
|
||||||
|
),
|
||||||
|
|
||||||
|
enabledBorder: OutlineInputBorder(
|
||||||
|
borderRadius: BorderRadius.circular(4.0),
|
||||||
|
borderSide: BorderSide(color: greyColor),
|
||||||
|
),
|
||||||
|
labelText: text,
|
||||||
|
labelStyle:fontTextStyle(14,Color(0XFF7E7F80),FontWeight.w400),
|
||||||
|
/* TextStyle(color: greyColor, fontWeight: FontWeight.bold //<-- SEE HERE
|
||||||
|
),*/
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
class AppSettings{
|
||||||
|
static Future<bool> internetConnectivity() async {
|
||||||
|
try {
|
||||||
|
final result = await InternetAddress.lookup('google.com');
|
||||||
|
if (result.isNotEmpty && result[0].rawAddress.isNotEmpty) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
} on SocketException catch (_) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,99 @@
|
|||||||
|
import 'dart:io';
|
||||||
|
import 'package:flutter/material.dart';
|
||||||
|
import 'package:flutter/services.dart';
|
||||||
|
import 'package:supplier_new/login/login.dart';
|
||||||
|
import 'package:supplier_new/login/starting_screen.dart';
|
||||||
|
|
||||||
|
void main() async{
|
||||||
|
SystemChrome.setPreferredOrientations([DeviceOrientation.portraitUp]);
|
||||||
|
//FirebaseMessaging.onBackgroundMessage(_messageHandler);
|
||||||
|
runApp(new Splash());
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
class Splash extends StatelessWidget {
|
||||||
|
// This widget is the root of your application.
|
||||||
|
@override
|
||||||
|
Widget build(BuildContext context) {
|
||||||
|
return MaterialApp(
|
||||||
|
debugShowCheckedModeBanner: false,
|
||||||
|
title: 'Water Management',
|
||||||
|
theme: new ThemeData(
|
||||||
|
primarySwatch: Colors.blue,
|
||||||
|
),
|
||||||
|
home: new SplashScreen(),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class SplashScreen extends StatefulWidget {
|
||||||
|
const SplashScreen({ super.key });
|
||||||
|
|
||||||
|
@override
|
||||||
|
State<SplashScreen> createState() => _SplashScreenState();
|
||||||
|
}
|
||||||
|
|
||||||
|
class _SplashScreenState extends State<SplashScreen> {
|
||||||
|
|
||||||
|
|
||||||
|
Widget _defaultHome = new StartingScreen();
|
||||||
|
|
||||||
|
|
||||||
|
/*void loginCheck()async{
|
||||||
|
|
||||||
|
bool _result = await AppSettings.isSigIn();
|
||||||
|
|
||||||
|
|
||||||
|
*//*store device information in firebase*//*
|
||||||
|
try{
|
||||||
|
if(Platform.isIOS){
|
||||||
|
await FireBaseCore.init();
|
||||||
|
}
|
||||||
|
//await FireBaseCore.init();
|
||||||
|
await FireBaseCore.checkFcmTokenInFireStoreDbWithdeviceId();
|
||||||
|
// AppSettings.fcmId=await AppSettings.getData('FCM_TOKEN', 'STRING');
|
||||||
|
}
|
||||||
|
catch(e){
|
||||||
|
print(e);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (_result) {
|
||||||
|
await AppSettings.loadDataFromMemory();
|
||||||
|
AppSettings.fcmId=await AppSettings.getData('FCM_TOKEN', 'STRING');
|
||||||
|
// await AppSettings.getProfile();
|
||||||
|
_defaultHome = new DashboardScreen();
|
||||||
|
}
|
||||||
|
}*/
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@override
|
||||||
|
void initState() {
|
||||||
|
|
||||||
|
//loginCheck();
|
||||||
|
super.initState();
|
||||||
|
Future.delayed(
|
||||||
|
const Duration(seconds: 3),
|
||||||
|
() => Navigator.push(
|
||||||
|
context,
|
||||||
|
MaterialPageRoute(builder: (context) => _defaultHome),
|
||||||
|
));
|
||||||
|
}
|
||||||
|
@override
|
||||||
|
Widget build(BuildContext context) {
|
||||||
|
return Scaffold(
|
||||||
|
body: Stack(
|
||||||
|
children: <Widget>[
|
||||||
|
Container(
|
||||||
|
decoration: const BoxDecoration(
|
||||||
|
image: DecorationImage(image: AssetImage("images/final_splash_screen.jpg"), fit: BoxFit.fill,),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
|
||||||
|
],
|
||||||
|
)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,215 @@
|
|||||||
|
import 'package:flutter/material.dart';
|
||||||
|
import 'package:flutter/services.dart';
|
||||||
|
import 'package:supplier_new/common/settings.dart';
|
||||||
|
|
||||||
|
class Login extends StatefulWidget {
|
||||||
|
const Login({super.key});
|
||||||
|
|
||||||
|
@override
|
||||||
|
State<Login> createState() => _LoginState();
|
||||||
|
}
|
||||||
|
|
||||||
|
class _LoginState extends State<Login> {
|
||||||
|
|
||||||
|
|
||||||
|
bool isObscureText=true;
|
||||||
|
TextEditingController mobileNumberController = TextEditingController();
|
||||||
|
TextEditingController passwordController = TextEditingController();
|
||||||
|
|
||||||
|
|
||||||
|
@override
|
||||||
|
void initState() {
|
||||||
|
isObscureText=true;
|
||||||
|
super.initState();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Future<bool> onWillPop() async {
|
||||||
|
final shouldPop = await showDialog<bool>(context: context, builder: (context) {
|
||||||
|
return AlertDialog(
|
||||||
|
title: const Text('Do you want to exit app?',
|
||||||
|
style: TextStyle(
|
||||||
|
color: primaryColor,
|
||||||
|
fontSize: 20,
|
||||||
|
)),
|
||||||
|
actionsAlignment: MainAxisAlignment.spaceBetween,
|
||||||
|
actions: [
|
||||||
|
TextButton(
|
||||||
|
onPressed: () {
|
||||||
|
SystemNavigator.pop();
|
||||||
|
},
|
||||||
|
child: const Text('Yes',
|
||||||
|
style: TextStyle(
|
||||||
|
color: primaryColor,
|
||||||
|
fontSize: 20,
|
||||||
|
)),
|
||||||
|
),
|
||||||
|
TextButton(
|
||||||
|
onPressed: () {
|
||||||
|
Navigator.of(context).pop(false);
|
||||||
|
},
|
||||||
|
child: const Text('No',
|
||||||
|
style: TextStyle(
|
||||||
|
color: primaryColor,
|
||||||
|
fontSize: 20,
|
||||||
|
)),
|
||||||
|
),
|
||||||
|
],
|
||||||
|
);
|
||||||
|
},
|
||||||
|
);
|
||||||
|
return shouldPop!;
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
Widget build(BuildContext context) {
|
||||||
|
String lastInputValue="";
|
||||||
|
|
||||||
|
return WillPopScope(
|
||||||
|
onWillPop: () async => onWillPop(),
|
||||||
|
child: Scaffold(
|
||||||
|
backgroundColor: Colors.white,
|
||||||
|
body: Stack(
|
||||||
|
children: <Widget>[
|
||||||
|
/*Container(
|
||||||
|
decoration: const BoxDecoration(
|
||||||
|
image: DecorationImage(image: AssetImage("images/backgroundimage.png"), fit: BoxFit.cover,),
|
||||||
|
),
|
||||||
|
),*/
|
||||||
|
GestureDetector(
|
||||||
|
onTap: () {
|
||||||
|
FocusManager.instance.primaryFocus?.unfocus();
|
||||||
|
},
|
||||||
|
child: SafeArea(
|
||||||
|
child: SingleChildScrollView(
|
||||||
|
child: Padding(
|
||||||
|
padding: const EdgeInsets.fromLTRB(24, 0, 24, 0),
|
||||||
|
child: Column(
|
||||||
|
|
||||||
|
children: <Widget>[
|
||||||
|
Image(
|
||||||
|
image: const AssetImage('images/login_logo.png'),
|
||||||
|
height: MediaQuery.of(context).size.height * .30,
|
||||||
|
width:MediaQuery.of(context).size.width * .30,
|
||||||
|
),
|
||||||
|
|
||||||
|
SizedBox(height:MediaQuery.of(context).size.height * .04,),
|
||||||
|
/*Align(
|
||||||
|
alignment: Alignment.bottomLeft,
|
||||||
|
child: Text('Welcome!', style:fontTextStyle(24,Color(0XFF1C1E20),FontWeight.w800)
|
||||||
|
|
||||||
|
*//*style: GoogleFonts.inter(
|
||||||
|
textStyle: TextStyle(
|
||||||
|
fontSize: 24,
|
||||||
|
fontWeight: FontWeight.bold,
|
||||||
|
color: Colors.black,
|
||||||
|
),
|
||||||
|
),*//*),
|
||||||
|
),*/
|
||||||
|
SizedBox(height:MediaQuery.of(context).size.height * .024,),
|
||||||
|
Container(
|
||||||
|
child: TextFormField(
|
||||||
|
controller: mobileNumberController,
|
||||||
|
keyboardType: TextInputType.number,
|
||||||
|
textCapitalization: TextCapitalization.sentences,
|
||||||
|
maxLength: 10,
|
||||||
|
decoration: textFormFieldDecoration(Icons.phone,'Mobile Number'),
|
||||||
|
style:fontTextStyle(14,Color(0XFF101214),FontWeight.w400),
|
||||||
|
cursorColor: Color(0XFF1D7AFC),
|
||||||
|
|
||||||
|
//TextStyle(color: Colors.black,fontWeight: FontWeight.bold),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
SizedBox(height:MediaQuery.of(context).size.height * .016,),
|
||||||
|
|
||||||
|
Container(
|
||||||
|
child: TextFormField(
|
||||||
|
cursorColor:Color(0XFF1D7AFC),
|
||||||
|
obscureText: isObscureText,
|
||||||
|
obscuringCharacter: '*',
|
||||||
|
controller: passwordController,
|
||||||
|
decoration: InputDecoration(
|
||||||
|
filled: false,
|
||||||
|
fillColor: Colors.white,
|
||||||
|
labelText: 'Password',
|
||||||
|
//prefixIcon: const Icon(Icons.lock, color: Colors.white,),
|
||||||
|
labelStyle: fontTextStyle(14,Color(0XFF7E7F80),FontWeight.w400),
|
||||||
|
border: OutlineInputBorder(
|
||||||
|
borderRadius: BorderRadius.circular(4.0),
|
||||||
|
borderSide: BorderSide(color: greyColor,
|
||||||
|
width: 1, )),
|
||||||
|
focusedBorder: OutlineInputBorder(
|
||||||
|
borderRadius: BorderRadius.circular(4.0),
|
||||||
|
borderSide: BorderSide(color: Color(0XFF1D7AFC),width: 2,),
|
||||||
|
),
|
||||||
|
enabledBorder: OutlineInputBorder(
|
||||||
|
borderRadius: BorderRadius.circular(4.0),
|
||||||
|
borderSide: BorderSide(color: greyColor),
|
||||||
|
),
|
||||||
|
|
||||||
|
suffixIcon: IconButton(
|
||||||
|
icon: isObscureText==true?Image.asset('images/eye_icon.png',color: Color(0XFF7E7F80),width: 30,height: 30,):Image.asset('images/open_eye.png',color:Color(0XFF7E7F80),width: 30,height: 30,),
|
||||||
|
/* Icon(
|
||||||
|
icon:Image.asset('assets/your_image.png'),
|
||||||
|
color: isObscureText==true?greyColor:primaryColor,
|
||||||
|
),*/
|
||||||
|
onPressed: () {
|
||||||
|
|
||||||
|
print("show password");
|
||||||
|
setState(() {
|
||||||
|
isObscureText = !isObscureText;
|
||||||
|
});
|
||||||
|
},
|
||||||
|
),
|
||||||
|
|
||||||
|
),
|
||||||
|
style: fontTextStyle(14,Color(0XFF101214),FontWeight.w400),
|
||||||
|
|
||||||
|
),
|
||||||
|
),
|
||||||
|
|
||||||
|
SizedBox(height:MediaQuery.of(context).size.height * .016,),
|
||||||
|
Align(
|
||||||
|
alignment: Alignment.bottomLeft,
|
||||||
|
child:GestureDetector(
|
||||||
|
onTap: (){
|
||||||
|
/*Navigator.push(
|
||||||
|
context,
|
||||||
|
MaterialPageRoute(builder: (context) => ForgotpasswordNew()),
|
||||||
|
);*/
|
||||||
|
},
|
||||||
|
child: Text(
|
||||||
|
'Forgot Password?',
|
||||||
|
style: fontTextStyle(12,Color(0XFF1D7AFC),FontWeight.w600),
|
||||||
|
|
||||||
|
),
|
||||||
|
)
|
||||||
|
),
|
||||||
|
SizedBox(height:MediaQuery.of(context).size.height * .024,),
|
||||||
|
Container(
|
||||||
|
width:double.infinity,
|
||||||
|
height: MediaQuery.of(context).size.height * .06,
|
||||||
|
child: ElevatedButton(
|
||||||
|
style: ElevatedButton.styleFrom(
|
||||||
|
foregroundColor: Colors.white,
|
||||||
|
backgroundColor: primaryColor,
|
||||||
|
shape: RoundedRectangleBorder(
|
||||||
|
borderRadius: BorderRadius.circular(24.0), // Customize the radius
|
||||||
|
),
|
||||||
|
),
|
||||||
|
onPressed: () async{
|
||||||
|
|
||||||
|
},
|
||||||
|
child: Text('Login',style: fontTextStyle(12,Colors.white,FontWeight.w600),),
|
||||||
|
)),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
)
|
||||||
|
)),
|
||||||
|
),
|
||||||
|
],
|
||||||
|
)
|
||||||
|
),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,97 @@
|
|||||||
|
import 'package:flutter/material.dart';
|
||||||
|
import 'package:supplier_new/common/settings.dart';
|
||||||
|
import 'package:supplier_new/login/login.dart';
|
||||||
|
|
||||||
|
class LoginSignUpScreen extends StatefulWidget {
|
||||||
|
const LoginSignUpScreen({super.key});
|
||||||
|
|
||||||
|
@override
|
||||||
|
State<LoginSignUpScreen> createState() => _LoginSignUpScreenState();
|
||||||
|
}
|
||||||
|
|
||||||
|
class _LoginSignUpScreenState extends State<LoginSignUpScreen> {
|
||||||
|
@override
|
||||||
|
Widget build(BuildContext context) {
|
||||||
|
return SafeArea(
|
||||||
|
child: Scaffold(
|
||||||
|
body: Padding(
|
||||||
|
padding: EdgeInsets.all(24),
|
||||||
|
child: Column(
|
||||||
|
children: [
|
||||||
|
SizedBox(height: MediaQuery.of(context).size.height * .2),
|
||||||
|
Center(
|
||||||
|
child: Text("AQUICK SUPPLIER",
|
||||||
|
style: fontTextStyle(20, Color(0XFF515253), FontWeight.w800)),
|
||||||
|
),
|
||||||
|
SizedBox(height: MediaQuery.of(context).size.height * .05),
|
||||||
|
CircleAvatar(radius: 80, backgroundColor: Color(0XFFC9DFFE)),
|
||||||
|
SizedBox(height: MediaQuery.of(context).size.height * .05),
|
||||||
|
Center(
|
||||||
|
child: Text(
|
||||||
|
"Welcome to Aquick Supplier",
|
||||||
|
style: fontTextStyle(20, Color(0XFF343637), FontWeight.w700),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
SizedBox(height: MediaQuery.of(context).size.height * .012),
|
||||||
|
Center(
|
||||||
|
child: Text(
|
||||||
|
"Sign up or login to be listed as a supplier, start deliveries and track orders",
|
||||||
|
style: fontTextStyle(12, Color(0XFF7E7F80), FontWeight.w400),
|
||||||
|
textAlign: TextAlign.center, // Keeps text centered in multiple lines
|
||||||
|
),
|
||||||
|
)
|
||||||
|
,
|
||||||
|
SizedBox(height: MediaQuery.of(context).size.height * .04),
|
||||||
|
Container(
|
||||||
|
width:double.infinity,
|
||||||
|
height: MediaQuery.of(context).size.height * .06,
|
||||||
|
child: ElevatedButton(
|
||||||
|
style: ElevatedButton.styleFrom(
|
||||||
|
foregroundColor: Colors.white,
|
||||||
|
backgroundColor: primaryColor,
|
||||||
|
shape: RoundedRectangleBorder(
|
||||||
|
borderRadius: BorderRadius.circular(24.0), // Customize the radius
|
||||||
|
),
|
||||||
|
),
|
||||||
|
onPressed: () async{
|
||||||
|
Navigator.push(
|
||||||
|
context,
|
||||||
|
MaterialPageRoute(
|
||||||
|
builder: (context) => Login()),
|
||||||
|
);
|
||||||
|
},
|
||||||
|
child: Text('Login',style: fontTextStyle(14,Colors.white,FontWeight.w500),),
|
||||||
|
)),
|
||||||
|
SizedBox(height: MediaQuery.of(context).size.height * .012),
|
||||||
|
Container(
|
||||||
|
width: double.infinity,
|
||||||
|
height: MediaQuery.of(context).size.height * .06,
|
||||||
|
child: ElevatedButton(
|
||||||
|
style: ElevatedButton.styleFrom(
|
||||||
|
foregroundColor: Color(0XFF757575),
|
||||||
|
backgroundColor: Colors.white,
|
||||||
|
shape: RoundedRectangleBorder(
|
||||||
|
borderRadius: BorderRadius.circular(24.0), // Customize the radius
|
||||||
|
side: BorderSide(
|
||||||
|
color: Color(0XFF757575), // Border color
|
||||||
|
width: 1, // Border width
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
onPressed: () async {
|
||||||
|
// Your onPressed logic
|
||||||
|
},
|
||||||
|
child: Text(
|
||||||
|
'Sign up',
|
||||||
|
style: fontTextStyle(12, Color(0XFF757575), FontWeight.w500),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
)
|
||||||
|
|
||||||
|
],
|
||||||
|
),
|
||||||
|
)
|
||||||
|
),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,89 @@
|
|||||||
|
import 'package:flutter/material.dart';
|
||||||
|
import 'package:supplier_new/common/settings.dart';
|
||||||
|
import 'package:supplier_new/login/login_signup_screen.dart';
|
||||||
|
|
||||||
|
class StartingScreen extends StatefulWidget {
|
||||||
|
const StartingScreen({super.key});
|
||||||
|
|
||||||
|
@override
|
||||||
|
State<StartingScreen> createState() => _StartingScreenState();
|
||||||
|
}
|
||||||
|
|
||||||
|
class _StartingScreenState extends State<StartingScreen> {
|
||||||
|
@override
|
||||||
|
Widget build(BuildContext context) {
|
||||||
|
return SafeArea(
|
||||||
|
child: Scaffold(
|
||||||
|
body: Padding(
|
||||||
|
padding: EdgeInsets.all(24),
|
||||||
|
child: Column(
|
||||||
|
children: [
|
||||||
|
SizedBox(height: MediaQuery.of(context).size.height * .2),
|
||||||
|
Center(
|
||||||
|
child: Text("AQUICK SUPPLIER",
|
||||||
|
style: fontTextStyle(20, Color(0XFF515253), FontWeight.w800)),
|
||||||
|
),
|
||||||
|
SizedBox(height: MediaQuery.of(context).size.height * .05),
|
||||||
|
CircleAvatar(radius: 80, backgroundColor: Color(0XFFC9DFFE)),
|
||||||
|
SizedBox(height: MediaQuery.of(context).size.height * .05),
|
||||||
|
Center(
|
||||||
|
child: Text("Want to be a supplier on Aquick Tankers?",
|
||||||
|
style: fontTextStyle(16, Color(0XFF343637), FontWeight.w600)),
|
||||||
|
),
|
||||||
|
SizedBox(height: MediaQuery.of(context).size.height * .04),
|
||||||
|
Container(
|
||||||
|
width: double.infinity,
|
||||||
|
height: MediaQuery.of(context).size.height * .06,
|
||||||
|
child: ElevatedButton(
|
||||||
|
style: ElevatedButton.styleFrom(
|
||||||
|
foregroundColor: Colors.white,
|
||||||
|
backgroundColor: primaryColor,
|
||||||
|
shape: RoundedRectangleBorder(
|
||||||
|
borderRadius:
|
||||||
|
BorderRadius.circular(24.0), // Customize the radius
|
||||||
|
),
|
||||||
|
),
|
||||||
|
onPressed: () async {
|
||||||
|
Navigator.push(
|
||||||
|
context,
|
||||||
|
MaterialPageRoute(
|
||||||
|
builder: (context) => LoginSignUpScreen()),
|
||||||
|
);
|
||||||
|
},
|
||||||
|
child: Text(
|
||||||
|
'Yes',
|
||||||
|
style: fontTextStyle(14, Colors.white, FontWeight.w500),
|
||||||
|
),
|
||||||
|
)),
|
||||||
|
SizedBox(height: MediaQuery.of(context).size.height * .012),
|
||||||
|
Container(
|
||||||
|
width: double.infinity,
|
||||||
|
height: MediaQuery.of(context).size.height * .06,
|
||||||
|
child: ElevatedButton(
|
||||||
|
style: ElevatedButton.styleFrom(
|
||||||
|
foregroundColor: Color(0XFF757575),
|
||||||
|
backgroundColor: Colors.white,
|
||||||
|
shape: RoundedRectangleBorder(
|
||||||
|
borderRadius:
|
||||||
|
BorderRadius.circular(24.0), // Customize the radius
|
||||||
|
side: BorderSide(
|
||||||
|
color: Color(0XFF757575), // Border color
|
||||||
|
width: 1, // Border width
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
onPressed: () async {
|
||||||
|
// Your onPressed logic
|
||||||
|
},
|
||||||
|
child: Text(
|
||||||
|
'No, I want to buy water',
|
||||||
|
style: fontTextStyle(12, Color(0XFF757575), FontWeight.w500),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
)
|
||||||
|
],
|
||||||
|
),
|
||||||
|
)),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
@ -1,90 +1,29 @@
|
|||||||
name: supplier_new
|
name: supplier_new
|
||||||
description: "A new Flutter project."
|
description: "A new Flutter project."
|
||||||
# The following line prevents the package from being accidentally published to
|
|
||||||
# pub.dev using `flutter pub publish`. This is preferred for private packages.
|
|
||||||
publish_to: 'none' # Remove this line if you wish to publish to pub.dev
|
|
||||||
|
|
||||||
# The following defines the version and build number for your application.
|
publish_to: 'none'
|
||||||
# A version number is three numbers separated by dots, like 1.2.43
|
|
||||||
# followed by an optional build number separated by a +.
|
|
||||||
# Both the version and the builder number may be overridden in flutter
|
|
||||||
# build by specifying --build-name and --build-number, respectively.
|
|
||||||
# In Android, build-name is used as versionName while build-number used as versionCode.
|
|
||||||
# Read more about Android versioning at https://developer.android.com/studio/publish/versioning
|
|
||||||
# In iOS, build-name is used as CFBundleShortVersionString while build-number is used as CFBundleVersion.
|
|
||||||
# Read more about iOS versioning at
|
|
||||||
# https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html
|
|
||||||
# In Windows, build-name is used as the major, minor, and patch parts
|
|
||||||
# of the product and file versions while build-number is used as the build suffix.
|
|
||||||
version: 1.0.0+1
|
version: 1.0.0+1
|
||||||
|
|
||||||
environment:
|
environment:
|
||||||
sdk: '>=3.4.4 <4.0.0'
|
sdk: '>=3.4.4 <4.0.0'
|
||||||
|
|
||||||
# Dependencies specify other packages that your package needs in order to work.
|
|
||||||
# To automatically upgrade your package dependencies to the latest versions
|
|
||||||
# consider running `flutter pub upgrade --major-versions`. Alternatively,
|
|
||||||
# dependencies can be manually updated by changing the version numbers below to
|
|
||||||
# the latest version available on pub.dev. To see which dependencies have newer
|
|
||||||
# versions available, run `flutter pub outdated`.
|
|
||||||
dependencies:
|
dependencies:
|
||||||
flutter:
|
flutter:
|
||||||
sdk: flutter
|
sdk: flutter
|
||||||
|
|
||||||
|
|
||||||
# The following adds the Cupertino Icons font to your application.
|
|
||||||
# Use with the CupertinoIcons class for iOS style icons.
|
|
||||||
cupertino_icons: ^1.0.6
|
cupertino_icons: ^1.0.6
|
||||||
|
google_fonts: ^4.0.4
|
||||||
|
|
||||||
dev_dependencies:
|
dev_dependencies:
|
||||||
flutter_test:
|
flutter_test:
|
||||||
sdk: flutter
|
sdk: flutter
|
||||||
|
|
||||||
# The "flutter_lints" package below contains a set of recommended lints to
|
|
||||||
# encourage good coding practices. The lint set provided by the package is
|
|
||||||
# activated in the `analysis_options.yaml` file located at the root of your
|
|
||||||
# package. See that file for information about deactivating specific lint
|
|
||||||
# rules and activating additional ones.
|
|
||||||
flutter_lints: ^3.0.0
|
flutter_lints: ^3.0.0
|
||||||
|
|
||||||
# For information on the generic Dart part of this file, see the
|
|
||||||
# following page: https://dart.dev/tools/pub/pubspec
|
|
||||||
|
|
||||||
# The following section is specific to Flutter packages.
|
|
||||||
flutter:
|
flutter:
|
||||||
|
|
||||||
# The following line ensures that the Material Icons font is
|
|
||||||
# included with your application, so that you can use the icons in
|
|
||||||
# the material Icons class.
|
|
||||||
uses-material-design: true
|
|
||||||
|
|
||||||
# To add assets to your application, add an assets section, like this:
|
|
||||||
# assets:
|
|
||||||
# - images/a_dot_burr.jpeg
|
|
||||||
# - images/a_dot_ham.jpeg
|
|
||||||
|
|
||||||
# An image asset can refer to one or more resolution-specific "variants", see
|
|
||||||
# https://flutter.dev/assets-and-images/#resolution-aware
|
|
||||||
|
|
||||||
# For details regarding adding assets from package dependencies, see
|
uses-material-design: true
|
||||||
# https://flutter.dev/assets-and-images/#from-packages
|
assets:
|
||||||
|
- images/
|
||||||
# To add custom fonts to your application, add a fonts section here,
|
|
||||||
# in this "flutter" section. Each entry in this list should have a
|
|
||||||
# "family" key with the font family name, and a "fonts" key with a
|
|
||||||
# list giving the asset and other descriptors for the font. For
|
|
||||||
# example:
|
|
||||||
# fonts:
|
|
||||||
# - family: Schyler
|
|
||||||
# fonts:
|
|
||||||
# - asset: fonts/Schyler-Regular.ttf
|
|
||||||
# - asset: fonts/Schyler-Italic.ttf
|
|
||||||
# style: italic
|
|
||||||
# - family: Trajan Pro
|
|
||||||
# fonts:
|
|
||||||
# - asset: fonts/TrajanPro.ttf
|
|
||||||
# - asset: fonts/TrajanPro_Bold.ttf
|
|
||||||
# weight: 700
|
|
||||||
#
|
|
||||||
# For details regarding fonts from package dependencies,
|
|
||||||
# see https://flutter.dev/custom-fonts/#from-packages
|
|
||||||
|
Loading…
Reference in new issue