diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml index 97c5248..7290492 100644 --- a/android/app/src/main/AndroidManifest.xml +++ b/android/app/src/main/AndroidManifest.xml @@ -1,5 +1,23 @@ + + + + + + + + + + + + + + + + + + createState() => _CartScreenState(); + } + +class _CartScreenState extends State{ + @override + Widget build(BuildContext context) { + return SafeArea(child: Scaffold( + body: Container( + height: double.infinity, + width: double.infinity, + decoration: const BoxDecoration( + image: DecorationImage( + image: AssetImage("images/bg7.png"), + fit: BoxFit.cover), + ), + child: SingleChildScrollView( + child: Padding( + padding: const EdgeInsets.all(20.0), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + mainAxisAlignment: MainAxisAlignment.start, + mainAxisSize: MainAxisSize.min, + children: [ + Padding( + padding: EdgeInsets.only(left: 10, top: 10), + child: Align( + alignment: Alignment.topLeft, + child: GestureDetector( + child: Icon( + Icons.arrow_back, + size: 30, + ), + onTap: () { + Navigator.pop(context); + }, + )), + ), + Center(child: Text('Your draft for the letter', style: GoogleFonts.combo(fontSize: 30, fontWeight: FontWeight.bold, decoration: TextDecoration.underline, color: Color(0xff229954)), textAlign: TextAlign.center)), + SizedBox( + height: 40, + ), + Text('To', style: GoogleFonts.secularOne(fontSize: 20,)), + SizedBox(height: 10), + Text('Relation', style: GoogleFonts.rochester(fontSize: 20),), + SizedBox(height: 20), + Text('Ocassion', style: GoogleFonts.secularOne(fontSize: 20),), + SizedBox(height: 10), + Text('ocassion', style: GoogleFonts.rochester(fontSize: 20),), + SizedBox(height: 20), + Text('Your message', style: GoogleFonts.secularOne(fontSize: 20),), + SizedBox(height: 10), + Text('message......', style: GoogleFonts.rochester(fontSize: 20),), + SizedBox(height: 30), + + Center( + child: SizedBox( + width: 300, + height: 60, + child: ElevatedButton( + onPressed: () { + Navigator.of(context).push( + MaterialPageRoute( + builder: (context) => UserDetails(), + ), + ); + }, + child: Text('Continue', + style: GoogleFonts.niconne( + fontSize: 40, + color: Colors.white, + //fontWeight: FontWeight.bold + ), + ), + style: ButtonStyle( + shape: MaterialStateProperty.all( + RoundedRectangleBorder( + borderRadius: BorderRadius.circular(28.0), + side: BorderSide(color: Color(0xff751455)) + ) + ), + backgroundColor: + MaterialStateProperty.all( + Color(0xff229954)), + ) + ), + + ), + ) + ], + ), + ), + ), + ) + )); + } +} + diff --git a/lib/Utils/cataloguePage1.dart b/lib/Utils/cataloguePage1.dart new file mode 100644 index 0000000..daa9f4c --- /dev/null +++ b/lib/Utils/cataloguePage1.dart @@ -0,0 +1,250 @@ +import 'package:cookie_code/Utils/writeMessage.dart'; +import 'package:flutter/material.dart'; +import 'package:google_fonts/google_fonts.dart'; + +class CataloguePage1 extends StatefulWidget { + const CataloguePage1({super.key}); + + @override + State createState() => _CataloguePage1State(); +} + +class _CataloguePage1State extends State { + final relation = [ + 'mother', + 'father', + 'friend', + 'brother', + 'sister', + 'uncle', + 'Aunt', + 'teacher', + 'student' + 'other' + ]; + String dropdownvalue1 = 'friend'; + final occasion = [ + 'birthday', + 'anniversay', + 'diwali', + 'holi', + 'rakshabandhan', + 'proposal', + 'mothers\' day', + 'fathers\' day' 'friendshipday', + 'chrismas', + 'other' + ]; + final color =[ + 'bubble pink', + 'the blue hue', + 'the sheer cheer', + 'splash of green', + 'elegant white' + ]; + String dropdownvalue3 = 'elegant white'; + String dropdownvalue2 = 'birthday'; + @override + Widget build(BuildContext context) { + return Scaffold( + body: Container( + height: double.infinity, + width: double.infinity, + decoration: const BoxDecoration( + image: DecorationImage( + image: AssetImage("images/bg8.png"), + fit: BoxFit.cover), + ), + child: Column( + mainAxisAlignment: MainAxisAlignment.start, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Padding( + padding: EdgeInsets.only(left: 20, top: 20), + child: Align( + alignment: Alignment.topLeft, + child: GestureDetector( + child: Icon( + Icons.arrow_back, + size: 30, + ), + onTap: () { + Navigator.pop(context); + }, + )), + ), + Container( + margin: EdgeInsets.only(top: 20,left: 40), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [Text( + 'I want to write this letter to', + style: GoogleFonts.aladin( + fontSize: 30, + color: Color(0xff82053b) + ), + ), + SizedBox( + height: 20, + ), + DropdownButton( + style: TextStyle(fontSize: 20, color: Colors.black), + hint: SizedBox( + width: 250, + child: Text( + 'Relation', + style: TextStyle(fontSize: 20), + )), + value: dropdownvalue1, + // Down Arrow Icon + icon: const Icon(Icons.keyboard_arrow_down), + items: relation.map((String items) { + return DropdownMenuItem( + value: items, + child: Text(items), + ); + }).toList(), + // After selecting the desired option,it will + // change button value to selected value + onChanged: (String? newValue) { + setState(() { + dropdownvalue1 = newValue!; + }); + }), + SizedBox( + height: 30, + ), + Text( + 'On the occasion', + style: GoogleFonts.aladin( + fontSize: 30, + color: Color(0xff82053b) + ), + ), + DropdownButton( + style: TextStyle(fontSize: 20, color: Colors.black), + hint: Text( + 'Occasion', + style: TextStyle(fontSize: 20), + ), + value: dropdownvalue2, + // Down Arrow Icon + icon: const Icon(Icons.keyboard_arrow_down), + items: occasion.map((String items) { + return DropdownMenuItem( + value: items, + child: Text(items), + ); + }).toList(), + // After selecting the desired option,it will + // change button value to selected value + onChanged: (String? newValue) { + setState(() { + dropdownvalue2 = newValue!; + }); + }), + SizedBox( + height: 30, + ), + Text( + 'Choose the color', + style: GoogleFonts.aladin(fontSize: 30, + color: Color(0xff82053b)), + ), + DropdownButton( + style: TextStyle(fontSize: 20, color: Colors.black), + hint: Text( + 'color', + style: TextStyle(fontSize: 20), + ), + value: dropdownvalue3, + // Down Arrow Icon + icon: const Icon(Icons.keyboard_arrow_down), + items: color.map((String items) { + return DropdownMenuItem( + value: items, + child: Text(items), + ); + }).toList(), + // After selecting the desired option,it will + // change button value to selected value + onChanged: (String? newValue) { + setState(() { + dropdownvalue3 = newValue!; + }); + }), + SizedBox( + height: 5, + ), + + ]), + ), + SingleChildScrollView( + scrollDirection: Axis.horizontal, + child: Row( + children: [ + Image.asset('images/bubble_pink.png', height: 200,), + Image.asset('images/the_blue_hue.png', height: 200,), + Image.asset('images/the_sheer_cheer.png', height: 200,), + Image.asset('images/splash_of_green.png', height: 200,), + Image.asset('images/elegant_white.png', height: 200,), + ], + ) + ), + SizedBox( + height: 5, + ), + Padding( + padding: EdgeInsets.only(left:30), + child: Text('Scroll to see all the colors -->', + + style: TextStyle( + fontStyle: FontStyle.italic, + fontWeight: FontWeight.bold, + color: Color(0xff82053b) + ), + ), + ), + SizedBox( + height: 30, + ), + Center( + child: SizedBox( + width: 300, + height: 60, + child: ElevatedButton( + onPressed: () { + Navigator.of(context).push( + MaterialPageRoute( + builder: (context) => WriteMessage(), + ), + ); + }, + child: Text('Next', + style: GoogleFonts.niconne( + fontSize: 40, + color: Color(0xff82053b) + //fontWeight: FontWeight.bold + ), + ), + style: ButtonStyle( + shape: MaterialStateProperty.all( + RoundedRectangleBorder( + borderRadius: BorderRadius.circular(28.0), + side: BorderSide(color: Color(0xff82053b)) + ) + ), + backgroundColor: + MaterialStateProperty.all( + Colors.white12), + ) + ), + + ), + ) + ], + ), + ), + ); + } +} diff --git a/lib/Utils/contactUs.dart b/lib/Utils/contactUs.dart new file mode 100644 index 0000000..25934e3 --- /dev/null +++ b/lib/Utils/contactUs.dart @@ -0,0 +1,196 @@ +import 'package:flutter/material.dart'; +import 'package:google_fonts/google_fonts.dart'; +import 'package:url_launcher/url_launcher.dart'; + +class ContactUs extends StatefulWidget { + @override + State createState() => _ContactUsState(); +} + +class _ContactUsState extends State { + @override + Widget build(BuildContext context) { + _makingPhoneCall() async { + var url = Uri.parse("tel:+919310315580"); + if (await canLaunchUrl(url)) { + await launchUrl(url); + } else { + throw 'Could not launch $url'; + } + } + _launchURL() async { + const url = 'https://www.instagram.com/thecookiecode11/'; + if (await canLaunch(url)) { + await launch(url); + } else { + throw 'Could not launch $url'; + } + } + return SafeArea( + child: Scaffold( + resizeToAvoidBottomInset: false, + body: Container( + height: double.infinity, + width: double.infinity, + decoration: const BoxDecoration( + image: DecorationImage( + image: AssetImage("images/bg/bg4.png"), fit: BoxFit.cover), + ), + child: SingleChildScrollView( + child: Column( + children: [ + Padding( + padding: EdgeInsets.only(left: 10, top: 10), + child: Align( + alignment: Alignment.topLeft, + child: GestureDetector( + child: Icon( + Icons.arrow_back, + size: 30, + ), + onTap: () { + Navigator.pop(context); + }, + )), + ), + Center( + child: Row( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Icon(Icons.circle, size: 15, color: Color(0xff2ea678)), + SizedBox(width: 10), + Text( + 'Contact us', + style: GoogleFonts.kurale( + fontSize: 40, + fontWeight: FontWeight.bold, + color: Color(0xff96057c), + decoration: TextDecoration.underline), + ), + SizedBox(width: 10), + Icon(Icons.circle, size: 15, color: Color(0xff2ea678)), + ], + ), + ), + Column( + children: [ + SizedBox( + width: 320.0, + child: TextButton( + onPressed: () { + onPressed: _makingPhoneCall; + }, + child: Row( + children: [ + Icon(Icons.phone, color: Colors.black,), + SizedBox( + width: 20, + ), + const Text( + '9310315580', + style: TextStyle( + color: Colors.black, + fontSize: 20.0, + ), + ) + ], + )), + ), + SizedBox( + height: 20.0, + ), + SizedBox( + width: 320.0, + //height: 120.0, + child: TextButton( + onPressed: _launchURL, + child: Row( + children: [ + Icon(Icons.store, color: Colors.black,), + SizedBox( + width: 20, + ), + const Text( + 'thecookiecode11/', + style: TextStyle( + color: Colors.black, + fontSize: 20.0, + ), + ) + ], + ), + ), + ), + ], + ), + SizedBox( + height: 40, + ), + Divider( + height: 5, + thickness: 5, + indent: 30, + endIndent: 30, + color: Colors.black26, + ), + Center( + child: Column( + mainAxisAlignment: MainAxisAlignment.start, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + SizedBox( + height: 20.0, + ), + const CircleAvatar( + radius: 50.0, + backgroundImage: AssetImage('images/palludii.jpg'), + ), + SizedBox( + height: 20.0, + ), + Text( + 'Palak Tripathi', + // style: TextStyle( + + style: GoogleFonts.signikaNegative( + fontSize: 25.0, + fontWeight: FontWeight.bold, + //fontStyle: FontStyle.italic, + color: Colors.black, + ), + ), + SizedBox( + height: 7.0, + ), + Text( + 'Founder', + style: GoogleFonts.signikaNegative( + fontSize: 20.0, + fontWeight: FontWeight.bold, + color: Colors.black, + ), + ), + SizedBox( + width: 300, + height: 90, + child: Text( + 'Hi everyone! I am Palak Tripathi, and this, is THE COOKIE CODE.I am a writer and this idea that popped in my mind one usual day resonates with my belief that words can heal any ailing soul❤.Personally, I love receiving letters, and many a times I have noticed that people struggle to find the right words to pour their feelings on paper.This is exactly where The Cookie Code is coming to help!You can share details about the person you want to send a letter to, like what is the occasion, what you want to say to them, how you feel about them and we will give words to your thoughts💕Once you approve the letter, it will be handwritten by us under your name and will be posted to the person you want to❤', + textAlign: TextAlign.center, + style: GoogleFonts.squarePeg( + fontSize: 30, + + //fontWeight: FontWeight.bold, + ), + ), + ) + ], + ), + ) + ], + ), + ), + ), + ), + ); + } +} diff --git a/lib/Utils/drawerList.dart b/lib/Utils/drawerList.dart new file mode 100644 index 0000000..73981a8 --- /dev/null +++ b/lib/Utils/drawerList.dart @@ -0,0 +1 @@ +import 'package:flutter/material.dart'; \ No newline at end of file diff --git a/lib/Utils/feedBack.dart b/lib/Utils/feedBack.dart new file mode 100644 index 0000000..945ea17 --- /dev/null +++ b/lib/Utils/feedBack.dart @@ -0,0 +1,19 @@ +import 'package:flutter/material.dart'; + +class Feedback extends StatefulWidget{ + const Feedback({super.key}); + + @override + State createState() => _FeedbackState(); + } + +class _FeedbackState extends State{ + @override + Widget build(BuildContext context) { + return Scaffold( + + ); + } + +} + diff --git a/lib/Utils/headerDrawer.dart b/lib/Utils/headerDrawer.dart new file mode 100644 index 0000000..c16db37 --- /dev/null +++ b/lib/Utils/headerDrawer.dart @@ -0,0 +1,42 @@ +import 'package:flutter/material.dart'; +import 'package:google_fonts/google_fonts.dart'; + +class HeaderDrawer extends StatefulWidget { + const HeaderDrawer({super.key}); + @override + State createState() => _HeaderDrawerState(); +} + +class _HeaderDrawerState extends State { + @override + Widget build(BuildContext context) { + return Container( + color: Colors.white10, + width: double.infinity, + height: 300, + padding: EdgeInsets.only(top: 20), + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Image.asset( + 'images/logo.png', + width: 150, + ), + // Container( + // margin: EdgeInsets.only(bottom: 10), + // decoration: BoxDecoration( + // shape: BoxShape.circle, + // image: DecorationImage(image: AssetImage('images/logo.png') + // ), + // ), + // ), + SizedBox( + height: 25, + ), + Text('The Cookie Code', + style: GoogleFonts.sail(color: Color(0xff2ea678), fontSize: 30, fontWeight: FontWeight.bold)) + ], + ), + ); + } +} diff --git a/lib/Utils/homepage.dart b/lib/Utils/homepage.dart index 71a7835..6b362d1 100644 --- a/lib/Utils/homepage.dart +++ b/lib/Utils/homepage.dart @@ -1,3 +1,7 @@ +import 'package:cookie_code/Utils/contactUs.dart'; +import 'package:cookie_code/Utils/feedBack.dart'; +import 'package:cookie_code/Utils/headerDrawer.dart'; +import 'package:cookie_code/Utils/instructionPage.dart'; import 'package:flutter/material.dart'; import 'package:google_fonts/google_fonts.dart'; @@ -9,172 +13,255 @@ class MyHomePage extends StatefulWidget { } class _MyHomePageState extends State { + var currentPage = DrawerSections.dashboard; @override Widget build(BuildContext context) { - return Scaffold( - appBar: AppBar( - //Color(0xff2ea678) - backgroundColor: Color(0xff2ea678), - toolbarHeight: 80, - centerTitle: true, - title: Text('The Cookie Code', style: GoogleFonts.sail(fontSize: 40)), - ), - body: Container( - color: Colors.white, - child: SingleChildScrollView( - - child: Center( - child: Column( - children: [ - SizedBox( - height: 50, - ), - Image.asset('images/logo.png', width: 200), - SizedBox( - width: 300, - height: 90, - child: Text( - 'Handwritten letters curated with love, right at your doorstep!', - textAlign: TextAlign.center, - style: GoogleFonts.squarePeg( - fontSize: 30, + return SafeArea( + child: Scaffold( + appBar: AppBar( + //Color(0xff2ea678) + backgroundColor: Color(0xff2ea678), + //toolbarHeight: 80, + centerTitle: true, + title: Text('The Cookie Code', style: GoogleFonts.sail(fontSize: 30)), + actions: [ + IconButton(onPressed: () {}, icon: Icon(Icons.shopping_cart)) + ], + ), + body: Container( + color: Colors.white, + child: SingleChildScrollView( + child: Center( + child: Column( + children: [ + SizedBox( + height: 30, + ), + Image.asset('images/logo.png', width: 200), + SizedBox( + width: 300, + height: 90, + child: Text( + 'Handwritten letters curated with love, right at your doorstep!', + textAlign: TextAlign.center, + style: GoogleFonts.squarePeg( + fontSize: 30, - //fontWeight: FontWeight.bold, + //fontWeight: FontWeight.bold, + ), ), ), - ), - Divider( - indent: 70, - thickness: 5, - endIndent: 70, - ), - SizedBox( - width: 300, - height: 80, - child: Text( - 'Starting at 189 INR only\nmessage upto 200 words*', - textAlign: TextAlign.center, - style: GoogleFonts.squarePeg( - wordSpacing: 5, - fontSize: 25, - //fontWeight: FontWeight.bold, + Divider( + indent: 70, + thickness: 5, + endIndent: 70, + ), + SizedBox( + width: 300, + height: 80, + child: Text( + 'Starting at 189 INR only\nmessage upto 200 words*', + textAlign: TextAlign.center, + style: GoogleFonts.quicksand( + wordSpacing: 5, + fontSize: 18, + //fontWeight: FontWeight.bold, + ), ), ), - ), - SizedBox( - height: 20, - ), - SizedBox( - width: 300, - child: OutlinedButton( - onPressed: () {}, - child: Text('Get a letter written', - style: GoogleFonts.loveYaLikeASister( - fontSize: 27, - fontWeight: FontWeight.bold, - ) - , + SizedBox( + height: 20, + ), + SizedBox( + width: 300, + child: OutlinedButton( + onPressed: () { + Navigator.of(context).push( + MaterialPageRoute( + builder: (context) => InstructionPage(), + ), + ); + }, + child: Text( + 'Get a letter written', + style: GoogleFonts.loveYaLikeASister( + fontSize: 27, + fontWeight: FontWeight.bold, + ), + ), + style: OutlinedButton.styleFrom( + primary: Color(0xff8ca140), + padding: EdgeInsets.all(20)), ), - style: OutlinedButton.styleFrom( - primary: Color(0xff8ca140), - padding: EdgeInsets.all(20) + ), + SizedBox( + height: 20, + ), + Divider( + //indent: 30, + thickness: 2, + //endIndent: 30, + ), + SizedBox( + height: 30, + ), + Center( + child: Row( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Icon(Icons.circle, size: 15, color: Color(0xff2ea678)), + SizedBox(width: 10), + Text( + 'Why handwritten letter?', + style: GoogleFonts.kurale( + fontSize: 30, + fontWeight: FontWeight.bold, + color: Color(0xff2ea678), + decoration: TextDecoration.underline), + ), + SizedBox(width: 10), + Icon(Icons.circle, size: 15, color: Color(0xff2ea678)), + ], ), ), - ), - SizedBox( - height: 20, - ), - Divider( - //indent: 30, - thickness: 2, - //endIndent: 30, - ), - SizedBox( - height: 30, - ), - Center( - child: Row( - mainAxisAlignment: MainAxisAlignment.center, - children: [ - Icon(Icons.circle, size: 15, color: Color(0xff2ea678)), - SizedBox(width:10), - Text('Why handwritten letter?', - style: GoogleFonts.kurale( - fontSize: 30, - fontWeight: FontWeight.bold, - color: Color(0xff2ea678), - decoration: TextDecoration.underline + SizedBox( + height: 20, + ), + SizedBox( + width: 350, + child: Text( + 'Penning down thoughts may come across as an old-fashioned way of expressing in this era of instant messages. But, if you believe various surveys conducted for best gifting options, a handwritten letter still is the best-personalised gift you can give someone, yes second to your time. A handwritten letter shows how much time you must have invested in coming up with the exact words, as you cannot delete a wrong word in a handwritten letter with a click of a button like you do in an email or a message. Spammed inbox with ballads of love or apologies may seem like a good and more accessible idea but holding a love letter with a smile or sleeping with a sorry letter under the pillow is still an unmatchable magic.', + style: GoogleFonts.tillana( + //fontWeight: FontWeight.bold, + fontSize: 15, + color: Color(0xff01451e)), + textAlign: TextAlign.justify, + )), + SizedBox( + height: 60, + ), + Center( + child: Row( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Icon(Icons.circle, size: 15, color: Color(0xff2ea678)), + SizedBox(width: 10), + Text( + 'Why us?', + style: GoogleFonts.kurale( + fontSize: 30, + fontWeight: FontWeight.bold, + color: Color(0xff2ea678), + decoration: TextDecoration.underline), ), - ), - SizedBox(width:10), - Icon(Icons.circle, size: 15, color: Color(0xff2ea678)), - ], + SizedBox(width: 10), + Icon(Icons.circle, size: 15, color: Color(0xff2ea678)), + ], + ), ), - ), - - SizedBox( - height: 20, - ), - SizedBox( - width: 350, - child: Text('Penning down thoughts may come across as an old-fashioned way of expressing in this era of instant messages. But, if you believe various surveys conducted for best gifting options, a handwritten letter still is the best-personalised gift you can give someone, yes second to your time. A handwritten letter shows how much time you must have invested in coming up with the exact words, as you cannot delete a wrong word in a handwritten letter with a click of a button like you do in an email or a message. Spammed inbox with ballads of love or apologies may seem like a good and more accessible idea but holding a love letter with a smile or sleeping with a sorry letter under the pillow is still an unmatchable magic.', - style: GoogleFonts.tillana( - //fontWeight: FontWeight.bold, - fontSize: 15, - color: Color(0xff01451e) - + SizedBox( + height: 10, ), - textAlign: TextAlign.justify, - ) - ), - SizedBox( - height: 60, - ), - Center( - child: Row( - mainAxisAlignment: MainAxisAlignment.center, + Wrap( children: [ - Icon(Icons.circle, size: 15, color: Color(0xff2ea678)), - SizedBox(width:10), - Text('Why us?', - style: GoogleFonts.kurale( - fontSize: 30, - fontWeight: FontWeight.bold, - color: Color(0xff2ea678), - decoration: TextDecoration.underline - ), - ), - SizedBox(width:10), - Icon(Icons.circle, size: 15, color: Color(0xff2ea678)), + Image.asset('images/skilled_writer.png', width: 200), + Image.asset('images/support.png', width: 200), + Image.asset('images/budget.png', width: 200), + Image.asset('images/customizable.png', width: 200), + Image.asset('images/privacy.png', width: 200), + Image.asset('images/valueformoney.png', width: 200), + //Image.asset('images/budget.png', width: 200), ], - ), - ), - SizedBox( - height: 10, - ), - Wrap( - children: [ - Image.asset('images/skilled_writer.png', width: 200), - Image.asset('images/support.png', width: 200), - Image.asset('images/budget.png', width: 200), - Image.asset('images/customizable.png', width: 200), - Image.asset('images/privacy.png', width: 200), - Image.asset('images/valueformoney.png', width: 200), - //Image.asset('images/budget.png', width: 200), - ], - ) - ], + ) + ], + ), ), ), ), + drawer: Drawer( + child: Column( + children: [HeaderDrawer(), DrawerList()], + ), + ), ), - drawer: Drawer( - child: Column( - children: [ + ); + } - ], + Widget DrawerList() { + return Container( + color: Color(0xff2ea678), + padding: EdgeInsets.only(top: 5), + child: Column( + children: [ + menuItems(1, "Dashboard", Icons.dashboard, + currentPage == DrawerSections.dashboard ? true : false), + menuItems(1, "Order", Icons.shopping_bag, + currentPage == DrawerSections.orders ? true : false), + menuItems(1, "Contact us", Icons.contact_page, + currentPage == DrawerSections.contactUs ? true : false), + menuItems(1, "Feedback", Icons.feedback, + currentPage == DrawerSections.feedback ? true : false) + ], + ), + ); + } + + Widget menuItems(int id, String title, IconData icon, bool selected) { + return Material( + color: selected ? Colors.grey : Colors.transparent, + child: InkWell( + onTap: () { + Navigator.pop(context); + setState(() { + if (id == 1) { + currentPage = DrawerSections.dashboard; + //Navigator.of(context).push(MaterialPageRoute(builder: (context) => ContactUs(),)); + } else if (id == 2) { + currentPage = DrawerSections.orders; + //Navigator.of(context).push(MaterialPageRoute(builder: (context) => ContactUs(),)); + } else if (id == 3) { + currentPage = DrawerSections.contactUs; + Navigator.of(context).push( + MaterialPageRoute( + builder: (context) => ContactUs(), + ), + ); + } else if (id == 4) { + currentPage = DrawerSections.feedback; + // Navigator.of(context).push( + // MaterialPageRoute( + // builder: (context) => Feedback(), + // ), + // ); + } + }); + }, + child: Padding( + padding: EdgeInsets.all(20.0), + child: Row( + children: [ + Expanded( + child: Icon( + icon, + size: 20, + color: Colors.white, + )), + Expanded( + flex: 3, + child: Text(title, + style: + GoogleFonts.kanit(fontSize: 20, color: Colors.white))) + ], + ), ), ), ); } } + +enum DrawerSections { + dashboard, + orders, + contactUs, + feedback, +} diff --git a/lib/Utils/instructionPage.dart b/lib/Utils/instructionPage.dart new file mode 100644 index 0000000..d2166cd --- /dev/null +++ b/lib/Utils/instructionPage.dart @@ -0,0 +1,189 @@ +import 'package:cookie_code/Utils/cataloguePage1.dart'; +import 'package:flutter/material.dart'; +import 'package:google_fonts/google_fonts.dart'; + +class InstructionPage extends StatefulWidget{ + const InstructionPage({super.key}); + + @override + State createState() => _InstructionPageState(); + + +} + +class _InstructionPageState extends State{ + @override + Widget build(BuildContext context) { + return Scaffold( + body: Container( + height: double.infinity, + width: double.infinity, + decoration: const BoxDecoration( + image: DecorationImage( + image: AssetImage("images/bg9.png"), + fit: BoxFit.cover), + ), + child: Padding( + padding: const EdgeInsets.all(8.0), + child: Center( + child: Column( + children: [ + Padding( + padding: EdgeInsets.only(left: 10, top: 10), + child: Align( + alignment: Alignment.topLeft, + child: GestureDetector( + child: Icon( + Icons.arrow_back, + size: 30, + ), + onTap: () { + Navigator.pop(context); + }, + )), + ), + Center( + child: Row( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Icon(Icons.circle, size: 15, color: Color(0xff751455)), + SizedBox(width:10), + Text('How it works', + style: GoogleFonts.frederickaTheGreat( + fontSize: 40, + fontWeight: FontWeight.bold, + color: Colors.black, + decoration: TextDecoration.underline + ), + ), + SizedBox(width:10), + Icon(Icons.circle, size: 15, color: Color(0xff751455)), + ], + ), + ), + SizedBox( + height: 20, + ), + Container( + child: Column( + children: [ + Icon(Icons.favorite, color: Colors.black, size: 40,), + Text('Tell us who', + style: GoogleFonts.chewy( + fontSize: 30, + color: Color(0xff751455) + ), + ), + SizedBox( + width: 280, + child: Text('you want to write and a few details', + style: GoogleFonts.indieFlower( + fontSize: 24, + letterSpacing: 1, + color: Colors.black, + fontWeight: FontWeight.bold + ), + textAlign: TextAlign.center, + ), + ), + ], + ), + ), + SizedBox( + height: 15, + ), + Container( + child: Column( + children: [ + Icon(Icons.border_color, color: Colors.black, size: 40,), + Text('Write your message', + style: GoogleFonts.chewy( + fontSize: 30, + color: Color(0xff751455) + ), + ), + SizedBox( + width: 320, + child: Text('either completely or give us pointer, so that we can draft it for you', + style: GoogleFonts.indieFlower( + fontSize: 23, + letterSpacing: 1, + color: Colors.black, + fontWeight: FontWeight.bold + ), + textAlign: TextAlign.center, + ), + ), + ], + ), + ), + SizedBox( + height: 15, + ), + Container( + child: Column( + children: [ + Icon(Icons.local_shipping, color: Colors.black, size: 40,), + Text('Have it delivered', + style: GoogleFonts.chewy( + fontSize: 30, + color: Color(0xff751455) + )), + SizedBox( + width: 320, + child: Text('on your behalf and be assured that your message will be felt', + style: GoogleFonts.indieFlower( + fontSize: 23, + letterSpacing: 1, + color: Colors.black, + fontWeight: FontWeight.bold + ), + textAlign: TextAlign.center, + ), + ), + ], + ), + ), + SizedBox( + height: 30, + ), + SizedBox( + width: 300, + height: 60, + child: ElevatedButton( + onPressed: () { + Navigator.of(context).push( + MaterialPageRoute( + builder: (context) => CataloguePage1(), + ), + ); + }, + child: Text('Start Writing', + style: GoogleFonts.niconne( + fontSize: 40, + color: Colors.black + //fontWeight: FontWeight.bold + ), + ), + style: ButtonStyle( + shape: MaterialStateProperty.all( + RoundedRectangleBorder( + borderRadius: BorderRadius.circular(28.0), + side: BorderSide(color: Color(0xff751455)) + ) + ), + backgroundColor: + MaterialStateProperty.all( + Colors.transparent), + ) + ), + + ) + ], + ) + ), + ), + ), + ); + } +} \ No newline at end of file diff --git a/lib/Utils/recieverDetails.dart b/lib/Utils/recieverDetails.dart new file mode 100644 index 0000000..5033148 --- /dev/null +++ b/lib/Utils/recieverDetails.dart @@ -0,0 +1,278 @@ +import 'package:cookie_code/Utils/contactUs.dart'; +import 'package:country_state_city_picker/country_state_city_picker.dart'; +import 'package:flutter/material.dart'; +import 'package:google_fonts/google_fonts.dart'; + +class RecieverDetails extends StatefulWidget { + const RecieverDetails({super.key}); + + @override + State createState() => _RecieverDetailsState(); +} + +class _RecieverDetailsState extends State { + late String countryValue; + late String stateValue; + late String cityValue; + // By defaut, the checkbox is unchecked and "agree" is "false" + bool agree = false; + final _formKey = GlobalKey(); + @override + Widget build(BuildContext context) { + return SafeArea( + child: Scaffold( + resizeToAvoidBottomInset: false, + body: Container( + height: double.infinity, + width: double.infinity, + decoration: const BoxDecoration( + image: DecorationImage( + image: AssetImage("images/bg8.png"), fit: BoxFit.cover), + ), + child: SingleChildScrollView( + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Padding( + padding: EdgeInsets.only(left: 10, top: 10), + child: Align( + alignment: Alignment.topLeft, + child: GestureDetector( + child: Icon( + Icons.arrow_back, + size: 30, + ), + onTap: () { + Navigator.pop(context); + }, + )), + ), + Center( + child: Text( + 'Reciever\'s Details', + style: GoogleFonts.abrilFatface(fontSize: 30, color: Color(0xff940a28)), + ), + ), + Padding( + padding: EdgeInsets.only(left: 20), + child: Form( + key: _formKey, + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + SizedBox( + height: 20, + ), + Text( + 'Reciever\'s Name', + style: GoogleFonts.acme(fontSize: 20), + ), + Padding( + padding: EdgeInsets.only(left: 30, right: 30), + child: TextFormField( + validator: (value) { + if (value == null || value.isEmpty) { + return 'Please enter some text'; + } + return null; + }, + style: TextStyle(fontSize: 20), + decoration: InputDecoration( + enabledBorder: OutlineInputBorder( + borderSide: BorderSide( + width: 1, color: Colors.black), //<-- SEE HERE + ), + hintText: 'Reciever\'s full name'), + ), + ), + SizedBox( + height: 10, + ), + Text( + 'Reciever\'s Contact number', + style: GoogleFonts.acme(fontSize: 20), + ), + Padding( + padding: EdgeInsets.only(left: 30, right: 30), + child: TextField( + style: TextStyle(fontSize: 20), + decoration: InputDecoration( + enabledBorder: OutlineInputBorder( + borderSide: BorderSide( + width: 1, color: Colors.black), //<-- SEE HERE + ), + hintText: 'Contact Number'), + ), + ), + SizedBox( + height: 10, + ), + Text( + 'Reciever\'s Email address', + style: GoogleFonts.acme(fontSize: 20), + ), + Padding( + padding: EdgeInsets.only(left: 30, right: 30), + child: TextField( + style: TextStyle(fontSize: 20), + decoration: InputDecoration( + enabledBorder: OutlineInputBorder( + borderSide: BorderSide( + width: 1, color: Colors.black), //<-- SEE HERE + ), + hintText: 'email'), + ), + ), + SizedBox( + height: 10, + ), + Text( + 'Details of the reciever for delivery', + style: GoogleFonts.acme(fontSize: 20), + ), + SelectState( + onCountryChanged: (value) { + setState(() { + countryValue = value; + }); + }, + onStateChanged: (value) { + setState(() { + stateValue = value; + }); + }, + onCityChanged: (value) { + setState(() { + cityValue = value; + }); + }, + ), + SizedBox( + height: 10, + ), + Text( + 'Complete address of the reciever', + style: GoogleFonts.acme(fontSize: 20), + ), + SizedBox( + height: 10, + ), + Text( + 'House number/flat number/floor', + style: GoogleFonts.acme(fontSize: 20), + ), + Padding( + padding: EdgeInsets.only(left: 30, right: 30), + child: TextField( + style: TextStyle(fontSize: 20), + decoration: InputDecoration( + enabledBorder: OutlineInputBorder( + borderSide: BorderSide( + width: 1, color: Colors.black), //<-- SEE HERE + ), + hintText: 'email'), + ), + ), + Text( + 'Society name', + style: GoogleFonts.acme(fontSize: 20), + ), + Padding( + padding: EdgeInsets.only(left: 30, right: 30), + child: TextField( + style: TextStyle(fontSize: 20), + decoration: InputDecoration( + enabledBorder: OutlineInputBorder( + borderSide: BorderSide( + width: 1, color: Colors.black), //<-- SEE HERE + ), + hintText: 'society name'), + ), + ), + Text( + 'Reciever\'s pincode', + style: GoogleFonts.acme(fontSize: 20), + ), + Padding( + padding: EdgeInsets.only(left: 30, right: 30), + child: TextField( + style: TextStyle(fontSize: 20), + decoration: InputDecoration( + enabledBorder: OutlineInputBorder( + borderSide: BorderSide( + width: 1, color: Colors.black), //<-- SEE HERE + ), + hintText: 'pincode'), + ), + ), + SizedBox( + height: 20, + ), + Row( + children: [ + Checkbox( + value: agree, + activeColor: Color(0xff940a28), + onChanged: (value) { + setState(() { + agree = value ?? false; + }); + }), + const Text( + 'I have re-checked the details of the \nreciever filled above', textAlign: TextAlign.center, + style: TextStyle( + fontSize: 15, + fontWeight: FontWeight.bold, + fontStyle: FontStyle.italic), + overflow: TextOverflow.ellipsis, + ), + ], + ), + Center( + child: ElevatedButton( + // go to the next page only when the checkbox is ticked + onPressed: () { + agree + ? Navigator.of(context).push( + MaterialPageRoute( + builder: (context) => ContactUs(), + ), + ) + : null; + }, + child: Padding( + padding: const EdgeInsets.all(8.0), + child: Text( + 'Confirm', + style: GoogleFonts.niconne( + fontSize: 50, + color: Color(0xff940a28), + //fontWeight: FontWeight.bold + ), + ), + ), + style: ButtonStyle( + shape: MaterialStateProperty.all( + RoundedRectangleBorder( + borderRadius: BorderRadius.circular(28.0), + side: BorderSide(color: Color(0xff82053b)))), + backgroundColor: + MaterialStateProperty.all(Colors.white12), + ), + ), + ), + SizedBox( + height: 20, + ) + ], + ), + ), + ), + ], + ), + ), + ), + ), + ); + } +} diff --git a/lib/Utils/splashScreen.dart b/lib/Utils/splashScreen.dart new file mode 100644 index 0000000..52c5f54 --- /dev/null +++ b/lib/Utils/splashScreen.dart @@ -0,0 +1,39 @@ +import 'package:flutter/material.dart'; +import 'package:google_fonts/google_fonts.dart'; + +import 'homepage.dart'; + +class SplashScreen extends StatefulWidget{ + const SplashScreen({super.key}); + + @override + State createState() => _SplashScreenState(); + } + +class _SplashScreenState extends State{ + + @override + void initState() { + super.initState(); + _navigateToHome(); + } + _navigateToHome() async{ + await Future.delayed(Duration(milliseconds: 2000), (){}); + Navigator.pushReplacement(context, MaterialPageRoute(builder: (context) => MyHomePage())); + } + + @override + Widget build(BuildContext context) { + return Scaffold( + backgroundColor: Colors.white, + body: Center( + child: Image.asset('images/logo.png', width: 350,), + ), + ); + } +} + + + + + diff --git a/lib/Utils/userDetails.dart b/lib/Utils/userDetails.dart new file mode 100644 index 0000000..ca52cb4 --- /dev/null +++ b/lib/Utils/userDetails.dart @@ -0,0 +1,208 @@ +import 'package:cookie_code/Utils/recieverDetails.dart'; +import 'package:flutter/material.dart'; +import 'package:google_fonts/google_fonts.dart'; +import 'package:country_state_city_picker/country_state_city_picker.dart'; + +class UserDetails extends StatefulWidget { + const UserDetails({super.key}); + + @override + State createState() => _UserDetailsState(); +} + +class _UserDetailsState extends State { + late String countryValue; + late String stateValue; + late String cityValue; + // By defaut, the checkbox is unchecked and "agree" is "false" + bool agree = false; + final _formKey = GlobalKey(); + @override + Widget build(BuildContext context) { + return SafeArea( + child: Scaffold( + resizeToAvoidBottomInset: false, + body: Container( + height: double.infinity, + width: double.infinity, + decoration: const BoxDecoration( + image: DecorationImage( + image: AssetImage("images/bg8.png"), fit: BoxFit.cover), + ), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Padding( + padding: EdgeInsets.only(left: 10, top: 10), + child: Align( + alignment: Alignment.topLeft, + child: GestureDetector( + child: Icon( + Icons.arrow_back, + size: 30, + ), + onTap: () { + Navigator.pop(context); + }, + )), + ), + Center( + child: Text( + 'User Details', + style: GoogleFonts.abrilFatface( + fontSize: 30, + color: Color(0xff940a28), + ), + ), + ), + Padding( + padding: EdgeInsets.only(left: 20), + child: Form( + key: _formKey, + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + SizedBox( + height: 20, + ), + Text( + 'Your Name', + style: GoogleFonts.acme(fontSize: 20), + ), + Padding( + padding: EdgeInsets.only(left: 30, right: 30), + child: TextFormField( + validator: (value) { + if (value == null || value.isEmpty) { + return 'Please enter some text'; + } + return null; + }, + style: TextStyle(fontSize: 20), + decoration: InputDecoration( + enabledBorder: OutlineInputBorder( + borderSide: BorderSide( + width: 1, color: Colors.black), //<-- SEE HERE + ), + hintText: 'Your full name'), + ), + ), + SizedBox( + height: 10, + ), + Text( + 'Contact number', + style: GoogleFonts.acme(fontSize: 20), + ), + Padding( + padding: EdgeInsets.only(left: 30, right: 30), + child: TextField( + style: TextStyle(fontSize: 20), + decoration: InputDecoration( + enabledBorder: OutlineInputBorder( + borderSide: BorderSide( + width: 1, color: Colors.black), //<-- SEE HERE + ), + hintText: 'Contact Number'), + ), + ), + SizedBox( + height: 10, + ), + Text( + 'Email address', + style: GoogleFonts.acme(fontSize: 20), + ), + Padding( + padding: EdgeInsets.only(left: 30, right: 30), + child: TextField( + style: TextStyle(fontSize: 20), + decoration: InputDecoration( + enabledBorder: OutlineInputBorder( + borderSide: BorderSide( + width: 1, color: Colors.black), //<-- SEE HERE + ), + hintText: 'email'), + ), + ), + SizedBox( + height: 10, + ), + SelectState( + onCountryChanged: (value) { + setState(() { + countryValue = value; + }); + }, + onStateChanged: (value) { + setState(() { + stateValue = value; + }); + }, + onCityChanged: (value) { + setState(() { + cityValue = value; + }); + }, + ), + //Text('Country', style: GoogleFonts.rochester(fontSize: 20),), + //Text('Gender', style: GoogleFonts.rochester(fontSize: 20),), + ], + ), + ), + ), + Row( + children: [ + Checkbox( + value: agree, + onChanged: (value) { + setState(() { + agree = value ?? false; + }); + }), + const Text( + 'I have rechecked the details above', + style: TextStyle( + fontSize: 17, + fontWeight: FontWeight.bold, + fontStyle: FontStyle.italic), + overflow: TextOverflow.ellipsis, + ), + ], + ), + Center( + child: ElevatedButton( + // go to the next page only when the checkbox is ticked + onPressed: () { + agree + ? Navigator.of(context).push( + MaterialPageRoute( + builder: (context) => RecieverDetails(), + ), + ) + : null; + }, + child: Text( + 'Confirm', + style: GoogleFonts.niconne( + fontSize: 40, + color: Color(0xff940a28), + //fontWeight: FontWeight.bold + ), + ), + style: ButtonStyle( + shape: MaterialStateProperty.all( + RoundedRectangleBorder( + borderRadius: BorderRadius.circular(28.0), + side: BorderSide(color: Color(0xff82053b)))), + backgroundColor: + MaterialStateProperty.all(Colors.white12), + ), + ), + ), + ], + ), + ), + )); + } +} diff --git a/lib/Utils/writeMessage.dart b/lib/Utils/writeMessage.dart new file mode 100644 index 0000000..93460f6 --- /dev/null +++ b/lib/Utils/writeMessage.dart @@ -0,0 +1,153 @@ +import 'package:flutter/material.dart'; +import 'package:google_fonts/google_fonts.dart'; + +import 'cartScreen.dart'; + +class WriteMessage extends StatefulWidget { + const WriteMessage({super.key}); + + @override + State createState() => _WriteMessageState(); +} + +class _WriteMessageState extends State { + @override + Widget build(BuildContext context) { + return SafeArea( + child: Scaffold( + body: Container( + height: double.infinity, + width: double.infinity, + decoration: const BoxDecoration( + image: DecorationImage( + image: AssetImage("images/bg9.png"), fit: BoxFit.cover), + ), + child: SingleChildScrollView( + child: Column( + children: [ + Padding( + padding: EdgeInsets.only(left: 15, top: 15), + child: Align( + alignment: Alignment.topLeft, + child: GestureDetector( + child: Icon( + Icons.arrow_back, + size: 30, + ), + onTap: () { + Navigator.pop(context); + }, + )), + ), + SizedBox( + height: 20, + ), + Padding( + padding: const EdgeInsets.all(10.0), + child: Text( + 'Write you message or pointer that you want to include in the letter', + style: + GoogleFonts.aladin(fontSize: 30, color: Colors.black), + textAlign: TextAlign.center, + ), + ), + SizedBox( + height: 20, + ), + Padding( + padding: EdgeInsets.only(left: 30, right: 30), + child: TextFormField( + validator: (value) { + if (value!.isEmpty) { + return 'Please enter some text'; + } + return null; + }, + style: TextStyle(fontSize: 20), + keyboardType: TextInputType.multiline, + maxLines: null, + decoration: InputDecoration( + enabledBorder: OutlineInputBorder( + borderSide: BorderSide( + width: 1, color: Colors.black), //<-- SEE HERE + ), + labelText: 'Message', + hintText: 'Write your message here'), + + ), + ), + SizedBox( + height: 50, + ), + SizedBox( + width: 300, + height: 60, + child: ElevatedButton( + onPressed: () { + showDialog( + context: context, + builder: (ctx) => AlertDialog( + title: const Text("Confirmation"), + content: const Text( + "Are you sure you want this message on the letter?"), + actions: [ + TextButton( + onPressed: () { + Navigator.of(ctx).pop(); + }, + child: Container( + padding: const EdgeInsets.all(14), + child: const Text( + "No", + style: TextStyle(fontSize: 20), + ), + ), + ), + TextButton( + onPressed: () { + Navigator.of(context).push( + MaterialPageRoute( + builder: (context) => CartScreen(), + ), + ); + }, + child: Container( + padding: const EdgeInsets.all(14), + child: const Text("Yes", + style: TextStyle(fontSize: 20)), + ), + ), + ], + ), + ); + // Navigator.of(context).push( + // MaterialPageRoute( + // builder: (context) => CataloguePage1(), + // ), + // ); + }, + child: Text( + 'Confirm', + style: GoogleFonts.niconne( + fontSize: 40, color: Colors.black + //fontWeight: FontWeight.bold + ), + ), + style: ButtonStyle( + shape: + MaterialStateProperty.all( + RoundedRectangleBorder( + borderRadius: BorderRadius.circular(28.0), + side: BorderSide(color: Colors.black))), + backgroundColor: MaterialStateProperty.all( + Colors.transparent), + )), + ) + ], + ), + ), + ), + ), + ); + } +} diff --git a/lib/main.dart b/lib/main.dart index 027bc44..9706ce8 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -1,3 +1,4 @@ +import 'package:cookie_code/Utils/splashScreen.dart'; import 'package:flutter/material.dart'; import 'Utils/homepage.dart'; @@ -15,7 +16,7 @@ class MyApp extends StatelessWidget { return MaterialApp( debugShowCheckedModeBanner: false, title: 'Flutter Demo', - home: const MyHomePage(), + home: const SplashScreen(), ); } } diff --git a/pubspec.lock b/pubspec.lock index 10f7ba9..1d4caef 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -36,6 +36,13 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "1.16.0" + country_state_city_picker: + dependency: "direct main" + description: + name: country_state_city_picker + url: "https://pub.dartlang.org" + source: hosted + version: "1.2.8" crypto: dependency: transitive description: @@ -43,6 +50,13 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "3.0.2" + csc_picker: + dependency: "direct main" + description: + name: csc_picker + url: "https://pub.dartlang.org" + source: hosted + version: "0.2.6" cupertino_icons: dependency: "direct main" description: @@ -88,6 +102,11 @@ packages: description: flutter source: sdk version: "0.0.0" + flutter_web_plugins: + dependency: transitive + description: flutter + source: sdk + version: "0.0.0" google_fonts: dependency: "direct main" description: @@ -109,6 +128,13 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "4.0.1" + js: + dependency: transitive + description: + name: js + url: "https://pub.dartlang.org" + source: hosted + version: "0.6.4" lints: dependency: transitive description: @@ -192,7 +218,7 @@ packages: name: path_provider_windows url: "https://pub.dartlang.org" source: hosted - version: "2.1.2" + version: "2.1.3" platform: dependency: transitive description: @@ -268,6 +294,62 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "1.3.1" + url_launcher: + dependency: "direct main" + description: + name: url_launcher + url: "https://pub.dartlang.org" + source: hosted + version: "6.1.5" + url_launcher_android: + dependency: transitive + description: + name: url_launcher_android + url: "https://pub.dartlang.org" + source: hosted + version: "6.0.18" + url_launcher_ios: + dependency: transitive + description: + name: url_launcher_ios + url: "https://pub.dartlang.org" + source: hosted + version: "6.0.17" + url_launcher_linux: + dependency: transitive + description: + name: url_launcher_linux + url: "https://pub.dartlang.org" + source: hosted + version: "3.0.1" + url_launcher_macos: + dependency: transitive + description: + name: url_launcher_macos + url: "https://pub.dartlang.org" + source: hosted + version: "3.0.1" + url_launcher_platform_interface: + dependency: transitive + description: + name: url_launcher_platform_interface + url: "https://pub.dartlang.org" + source: hosted + version: "2.1.0" + url_launcher_web: + dependency: transitive + description: + name: url_launcher_web + url: "https://pub.dartlang.org" + source: hosted + version: "2.0.13" + url_launcher_windows: + dependency: transitive + description: + name: url_launcher_windows + url: "https://pub.dartlang.org" + source: hosted + version: "3.0.1" vector_math: dependency: transitive description: @@ -281,7 +363,7 @@ packages: name: win32 url: "https://pub.dartlang.org" source: hosted - version: "2.7.0" + version: "3.0.0" xdg_directories: dependency: transitive description: diff --git a/pubspec.yaml b/pubspec.yaml index c534183..1eed98b 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -32,6 +32,10 @@ dependencies: flutter: sdk: flutter google_fonts: ^3.0.1 + country_state_city_picker: ^1.2.8 + csc_picker: ^0.2.0 + url_launcher: ^6.1.5 + # The following adds the Cupertino Icons font to your application. @@ -63,6 +67,7 @@ flutter: # To add assets to your application, add an assets section, like this: assets: - images/ + - images/bg/ # - images/a_dot_ham.jpeg