diff --git a/lib/main.dart b/lib/main.dart index bcc58f7..ef71e24 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -1,4 +1,7 @@ import 'package:flutter/material.dart'; +import 'package:get/get.dart'; +import 'page1/home_page.dart'; +import 'page3/adding_page.dart'; void main() { runApp(const MyApp()); @@ -9,12 +12,72 @@ class MyApp extends StatelessWidget { @override Widget build(BuildContext context) { - return const MaterialApp( - home: Scaffold( - body: Center( - child: Text("Book Store App"), - ), + final Books b; + return GetMaterialApp( + title: 'task three', + theme: ThemeData( + primarySwatch: Colors.blue, ), + home: HomePage(), ); } } + +class Books { + final RxString bookName, authorName, price, image, description; + final RxBool isSold; + Books(String bookNameb, String authorNameb, String priceb, String imageb, + String descriptionb, + [bool? isSold]) + : bookName = bookNameb.obs, + authorName = authorNameb.obs, + price = priceb.obs, + image = imageb.obs, + description = descriptionb.obs, + isSold = (isSold ?? false).obs; + + static makeAsTrue(RxBool x) { + x.value = true; + } + + static RxList MyBooks = [ + Books( + "One Hundred Years of Solitude", + "Gabriel García Márquez", + "2.99", + "data:image/jpeg;base64,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", + "One Hundred Years of Solitude is the first piece of literature since the Book of Genesis that should be required reading for the entire human race. . . . Mr. Garcia Marquez has done nothing less than to create in the reader a sense of all that is profound, meaningful, and meaningless in life."), + Books( + "1984", + "George Orwell's", + "10.99", + "data:image/jpeg;base64,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", + "The reader of George Orwell's novel 1984 is still shocked by its frightening perception of life in a totalitarian environment, as he begins to realize the congruence of what the author describes with the current reality. Intellectual” that combines two opposites, and the “reduced talk” in which the regime deprives its opponents of tools for expressing rejection, the “thought police” and the “Ministry of Love” that specialize in pain and despair and the extermination of dissidents, as well as the “Ministry of Peace” that wages war, and mechanisms Writing that appeals to the masses with pornography, and so on.") + ].obs; + + static add(String bookName, String authorName, String price, String image, + String description) { + MyBooks.add(Books(bookName, authorName, price, image, description)); + } +} + + +/* +Books.add("bookNaneB.text", "autherNameB.text", "priceB.text", + "imageLinkB.text", "descriptionB.text"); + +add( + {required String bookName, + required String authorName, + required String price, + required String image, + required String description}) { + MyBooks.add(Books( + bookName: bookName, + authorName: authorName, + price: price, + image: image, + description: description)); + */ + + diff --git a/lib/page1/home_page.dart b/lib/page1/home_page.dart new file mode 100644 index 0000000..752aef6 --- /dev/null +++ b/lib/page1/home_page.dart @@ -0,0 +1,387 @@ +// ignore_for_file: non_constant_identifier_names + +import 'package:book_store_app/main.dart'; +import 'package:flutter/material.dart'; +import 'package:get/get.dart'; +import '../page2/shoping_page.dart'; +import '../page3/adding_page.dart'; +import '../page4/book_buy.dart'; +import '../main.dart'; + +class HomePage extends StatelessWidget { + const HomePage({ + Key? key, + }) : super(key: key); + + @override + Widget build(BuildContext context) { + final Books b; + final TextController = TextEditingController(); + return Scaffold( + body: Stack( + children: [ + Column( + children: [ + navBar( + onPress: () { + Navigator.pop( + context, + MaterialPageRoute( + builder: (context) => const AddingBooksPage(), + )); + }, + ), + const search( + text: "Search..", + maxLines: 3, + ), + navText(text: "Book List"), + Obx( + () { + return Expanded( + child: ListView( + children: Books.MyBooks.map( + (e) => bookDetails(b: e), + ).toList(), + ), + ); + }, + ), + ], + ), + flowIcons(), + ], + ), + ); + } +} + +class flowIcons extends StatelessWidget { + const flowIcons({ + Key? key, + }) : super(key: key); + + @override + Widget build(BuildContext context) { + return Positioned( + bottom: 30, + left: 82, + right: 82, + child: Container( + height: 72, + width: 227, + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(22), + boxShadow: const [ + BoxShadow( + color: Colors.black26, + spreadRadius: 1, + blurRadius: 10, + offset: Offset(0, 10)), + ], + color: Colors.white, + ), + child: Padding( + padding: const EdgeInsets.only(left: 25, right: 25), + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + IconButton( + iconSize: 30, + icon: const Icon( + Icons.home_outlined, + color: Color(0xFF06070D), + ), + onPressed: () { + Navigator.push( + context, + MaterialPageRoute( + builder: (context) => HomePage(), + ), + ); + }, + ), + IconButton( + iconSize: 30, + icon: const Icon( + Icons.shopping_cart_outlined, + color: Colors.black54, + ), + onPressed: () { + Navigator.push( + context, + MaterialPageRoute( + builder: (context) => BooksBuyPage(), + ), + ); + }, + ), + IconButton( + iconSize: 30, + icon: const Icon( + Icons.add, + color: Colors.black54, + ), + onPressed: () { + Navigator.push( + context, + MaterialPageRoute( + builder: (context) => const AddingBooksPage(), + ), + ); + }, + ), + ], + ), + ), + ), + ); + } +} + +class bookDetails extends StatelessWidget { + const bookDetails({ + Key? key, + required this.b, + }) : super(key: key); + + final Books b; + @override + Widget build(BuildContext context) { + return GestureDetector( + onTap: () { + Get.to(ShopingPage( + b: b, + )); + }, + child: Padding( + padding: const EdgeInsets.only(left: 30, top: 15, right: 15), + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Row( + children: [ + Padding( + padding: const EdgeInsets.only(right: 10), + child: SizedBox( + height: 106, + width: 72, + child: Image.network( + b.image.value, + height: 106, + width: 72, + ), + ), + ), + Container( + width: 180, + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + b.bookName.value, + style: const TextStyle( + overflow: TextOverflow.ellipsis, + fontSize: 16, + fontStyle: FontStyle.normal, + fontWeight: FontWeight.bold, + color: Color(0xFF06070D), + ), + ), + Text( + b.authorName.value, + textAlign: TextAlign.start, + textDirection: TextDirection.ltr, + style: const TextStyle( + fontSize: 12, + fontStyle: FontStyle.normal, + fontWeight: FontWeight.w500, + color: Colors.black54, + ), + ), + Text( + "\$${b.price.value}", + textAlign: TextAlign.start, + textDirection: TextDirection.ltr, + style: const TextStyle( + fontSize: 14, + fontStyle: FontStyle.normal, + fontWeight: FontWeight.w500, + color: Color(0xFF06070D), + ), + ), + Row( + children: const [ + starsIcon(), + starsIcon(), + starsIcon(), + starsIcon(), + starsIcon(), + ], + ) + ], + ), + ), + ], + ), /* + Container( + child: TextButton( + child: Icon( + Icons.save_alt, + color: Color(0xFF06070D), + ), + onPressed: () { + b. + }, //=> Books.makeAsTrue(), + ), + ), + */ + ], + ), + ), + ); + } +} + +class starsIcon extends StatelessWidget { + const starsIcon({ + Key? key, + }) : super(key: key); + + @override + Widget build(BuildContext context) { + return const Icon( + Icons.star, + color: Color(0xFFFFC41F), + size: 14, + ); + } +} + +class navText extends StatelessWidget { + const navText({Key? key, required this.text}) : super(key: key); + final String text; + @override + Widget build(BuildContext context) { + return Container( + alignment: Alignment.centerLeft, + padding: + const EdgeInsets.only(top: 20, left: 30, right: 30, bottom: 15), + child: Text( + text, + style: const TextStyle( + fontSize: 25, + fontStyle: FontStyle.normal, + fontWeight: FontWeight.bold, + //fontFamily: "Niramit", + color: Color(0xFF191919), + ), + )); + } +} + +class navBar extends StatelessWidget { + navBar({ + required this.onPress, + Key? key, + }) : super(key: key); + final void Function() onPress; + + @override + Widget build(BuildContext context) { + return Column( + children: [ + Padding( + padding: + const EdgeInsets.only(top: 50, left: 25, right: 25, bottom: 30), + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Row( + children: [ + SizedBox( + height: 40, + width: 40, + child: Image.network( + 'https://miro.medium.com/max/1400/1*6VOiMKuyK_KJRPJ2W6dXdw.png', + height: 40, + width: 40, + ), + ), + const Text( + " Hi, DOHA", + style: TextStyle( + fontSize: 14, + fontStyle: FontStyle.normal, + fontWeight: FontWeight.w600, + color: Colors.black, + ), + ), + ], + ), + IconButton( + icon: const Icon( + Icons.more_vert, + color: Color(0xFF06070D), + ), + onPressed: () => print('g'), + ), + ], + ), + ), + ], + ); + } +} + +class search extends StatelessWidget { + const search({Key? key, required this.text, required this.maxLines}) + : super(key: key); + + final String text; + final int maxLines; + @override + Widget build(BuildContext context) { + final TextController = TextEditingController(); + return Padding( + padding: const EdgeInsets.only(bottom: 20, left: 30, right: 30), + child: SizedBox( + height: maxLines * 20.0, + child: TextField( + maxLines: maxLines, + //onChangd: searchBook, + decoration: InputDecoration( + filled: true, + fillColor: const Color(0xFFFFFFFF), + labelText: text, + focusedBorder: const OutlineInputBorder( + borderSide: BorderSide(color: Colors.black38), + ), + enabledBorder: const OutlineInputBorder( + borderSide: BorderSide(color: Color(0xFFFFFFFF)), + ), + suffixIcon: TextButton( + child: Icon( + Icons.search, + color: TextController.text.isEmpty ? Colors.grey : Colors.black, + ), + onPressed: () => TextController.clear(), + ), + ), + onSubmitted: (value) { + //name = value; + }, + ), + ), + ); + } +/* + void searchBook(String query) { + final suggestion = Books.MyBooks.where((book) { + final bookTitle = book.bookName.toLowerCase(); + final input = query.toLowerCase(); + }).toList(); + setState(() => books = suggestion); + } + */ +} diff --git a/lib/page2/shoping_page.dart b/lib/page2/shoping_page.dart new file mode 100644 index 0000000..419e921 --- /dev/null +++ b/lib/page2/shoping_page.dart @@ -0,0 +1,240 @@ +import 'package:book_store_app/main.dart'; +import 'package:flutter/material.dart'; + +import '../page1/home_page.dart'; +import '../page3/adding_page.dart'; + +class ShopingPage extends StatelessWidget { + const ShopingPage({ + Key? key, + required this.b, + }) : super(key: key); + final Books b; + @override + Widget build(BuildContext context) { + final TextController = TextEditingController(); + return Scaffold( + body: Stack( + children: [ + Column( + children: [ + navBar( + onPress: () { + Navigator.push( + context, + MaterialPageRoute( + builder: (context) => HomePage(), + ), + ); + }, + ), + Expanded( + child: ListView( + children: [ + Padding( + padding: + const EdgeInsets.only(left: 28, right: 28, top: 10), + child: Column( + children: [ + SizedBox( + height: 320, + width: 216, + child: Image.network( + b.image.value, + height: 320, + width: 216, + ), + ), + Text( + b.bookName.value, + textAlign: TextAlign.start, + textDirection: TextDirection.ltr, + style: const TextStyle( + fontSize: 24, + fontStyle: FontStyle.normal, + fontWeight: FontWeight.w600, + color: Color(0xFF06070D), + ), + ), + Text( + b.authorName.value, + textAlign: TextAlign.start, + textDirection: TextDirection.ltr, + style: const TextStyle( + fontSize: 14, + fontStyle: FontStyle.normal, + fontWeight: FontWeight.w500, + color: Color(0xFF06070D), + ), + ), + Row( + mainAxisAlignment: MainAxisAlignment.center, + children: const [ + starsIcon(), + starsIcon(), + starsIcon(), + starsIcon(), + starsIcon(), + Text( + " 4.5", + textAlign: TextAlign.start, + textDirection: TextDirection.ltr, + style: const TextStyle( + fontSize: 14, + fontStyle: FontStyle.normal, + fontWeight: FontWeight.w500, + color: Color(0xFF06070D), + ), + ), + Text( + "/5.0", + textAlign: TextAlign.start, + textDirection: TextDirection.ltr, + style: const TextStyle( + fontSize: 14, + fontStyle: FontStyle.normal, + fontWeight: FontWeight.w500, + color: Color(0xFF828285), + ), + ), + ], + ), + Text( + b.description.value, + textAlign: TextAlign.start, + textDirection: TextDirection.ltr, + style: const TextStyle( + fontSize: 14, + fontStyle: FontStyle.normal, + fontWeight: FontWeight.w400, + color: Color(0xFF828285), + ), + ), + ], + ), + ), + ], + ), + ), + ], + ), + Positioned( + bottom: 150, + right: 30, + left: 30, + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + TextButton( + onPressed: () { + //Books.makeAsTrue(); + }, + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Icon(Icons.list), + Text( + "preview", + style: TextStyle(fontSize: 14), + ), + ], + ), + style: TextButton.styleFrom( + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(16)), + backgroundColor: Color(0xFFFFFFFF), + primary: Colors.black, + padding: EdgeInsets.only( + bottom: 20, top: 20, left: 35, right: 35), + ), + ), + TextButton( + onPressed: () { + //Books.makeAsTrue(); + }, + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: const [ + Icon(Icons.message), + Text( + "Reviews", + style: TextStyle(fontSize: 14), + ), + ], + ), + style: TextButton.styleFrom( + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(16)), + backgroundColor: Color(0xFFFFFFFF), + primary: Colors.black, + padding: EdgeInsets.only( + bottom: 20, top: 20, left: 35, right: 35), + ), + ), + ], + ), + ), + Positioned( + bottom: 50, + left: 30, + right: 30, + child: TextButton( + onPressed: () { + //Books.makeAsTrue(b.isSold); + b.isSold.value = true; + }, + child: Text( + "buy Now for \$${b.price.value}", + ), + style: TextButton.styleFrom( + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(16)), + backgroundColor: Color(0xFF06070D), + primary: Colors.white, + padding: EdgeInsets.only(bottom: 25, top: 25), + ), + ), + ), + ], + ), + ); + } +} + +class navBar extends StatelessWidget { + navBar({ + required this.onPress, + Key? key, + }) : super(key: key); + final void Function() onPress; + + @override + Widget build(BuildContext context) { + return Column( + children: [ + Padding( + padding: const EdgeInsets.only(top: 50, left: 25, right: 25), + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + IconButton( + icon: const Icon( + Icons.arrow_back_ios_new_rounded, + color: Color(0xFF06070D), + ), + onPressed: onPress, + ), + IconButton( + icon: const Icon( + Icons.more_vert, + color: Color(0xFF06070D), + ), + onPressed: () => print('g'), + ), + ], + ), + ), + ], + ); + } +} diff --git a/lib/page3/adding_page.dart b/lib/page3/adding_page.dart new file mode 100644 index 0000000..73fe72c --- /dev/null +++ b/lib/page3/adding_page.dart @@ -0,0 +1,231 @@ +import 'package:book_store_app/main.dart'; +import 'package:flutter/material.dart'; + +import '../main.dart'; + +class AddingBooksPage extends StatelessWidget { + const AddingBooksPage({Key? key}) : super(key: key); + + @override + Widget build(BuildContext context) { + final bookNaneB = TextEditingController(); + final autherNameB = TextEditingController(); + final priceB = TextEditingController(); + final imageLinkB = TextEditingController(); + final descriptionB = TextEditingController(); + + int maxLines = 6; + return Scaffold( + body: Column( + children: [ + navBar( + onPress: () { + Navigator.pop( + context, + ); + }, + text: "Add Book", + ), + Padding( + padding: const EdgeInsets.only(bottom: 20, left: 45, right: 45), + child: Column( + children: [ + Container( + height: 3 * 20.0, + child: TextField( + controller: bookNaneB, + decoration: const InputDecoration( + filled: true, + fillColor: Color(0xFFFFFFFF), + labelText: "Book Name", + focusedBorder: OutlineInputBorder( + borderSide: BorderSide(color: Colors.black38), + ), + enabledBorder: OutlineInputBorder( + borderSide: BorderSide(color: Color(0xFFFFFFFF)), + ), + ), + ), + ), + ], + ), + ), + Padding( + padding: const EdgeInsets.only(bottom: 20, left: 45, right: 45), + child: Column( + children: [ + Container( + height: 3 * 20.0, + child: TextField( + controller: autherNameB, + decoration: const InputDecoration( + filled: true, + fillColor: Color(0xFFFFFFFF), + labelText: "Auther Name", + focusedBorder: OutlineInputBorder( + borderSide: BorderSide(color: Colors.black38), + ), + enabledBorder: OutlineInputBorder( + borderSide: BorderSide(color: Color(0xFFFFFFFF)), + ), + ), + ), + ), + ], + ), + ), + Padding( + padding: const EdgeInsets.only(bottom: 20, left: 45, right: 45), + child: Column( + children: [ + Container( + height: 3 * 20.0, + child: TextField( + controller: priceB, + decoration: const InputDecoration( + filled: true, + fillColor: const Color(0xFFFFFFFF), + labelText: "Price", + focusedBorder: OutlineInputBorder( + borderSide: BorderSide(color: Colors.black38), + ), + enabledBorder: OutlineInputBorder( + borderSide: BorderSide(color: Color(0xFFFFFFFF)), + ), + ), + keyboardType: TextInputType.number, + ), + ), + ], + ), + ), + Padding( + padding: const EdgeInsets.only(bottom: 20, left: 45, right: 45), + child: Column( + children: [ + Container( + height: 3 * 20.0, + child: TextField( + controller: imageLinkB, + decoration: const InputDecoration( + filled: true, + fillColor: Color(0xFFFFFFFF), + labelText: "Image Link", + focusedBorder: OutlineInputBorder( + borderSide: BorderSide(color: Colors.black38), + ), + enabledBorder: OutlineInputBorder( + borderSide: BorderSide(color: Color(0xFFFFFFFF)), + ), + ), + ), + ), + ], + ), + ), + Padding( + padding: const EdgeInsets.only(bottom: 20, left: 45, right: 45), + child: Column( + children: [ + Container( + height: maxLines * 20.0, + child: TextField( + controller: descriptionB, + maxLines: maxLines, + decoration: const InputDecoration( + filled: true, + fillColor: Color(0xFFFFFFFF), + labelText: "Description", + focusedBorder: OutlineInputBorder( + borderSide: BorderSide(color: Colors.black38), + ), + enabledBorder: OutlineInputBorder( + borderSide: BorderSide(color: Color(0xFFFFFFFF)), + ), + ), + ), + ), + ], + ), + ), + TextButton( + onPressed: () { + Books.add(bookNaneB.text, autherNameB.text, priceB.text, + imageLinkB.text, descriptionB.text); + bookNaneB.clear(); + autherNameB.clear(); + priceB.clear(); + imageLinkB.clear(); + descriptionB.clear(); + }, + style: TextButton.styleFrom( + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(16)), + backgroundColor: Color(0xFF06070D), + primary: Colors.white, + padding: + EdgeInsets.only(bottom: 20, top: 20, left: 121, right: 121), + ), + child: const Text( + "Add", + ), + ), + ], + ), + ); + } +} + +class navBar extends StatelessWidget { + navBar({ + required this.onPress, + Key? key, + required this.text, + }) : super(key: key); + final void Function() onPress; + final String text; + @override + Widget build(BuildContext context) { + return Column( + children: [ + Padding( + padding: const EdgeInsets.only(top: 50, left: 25, right: 25), + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + IconButton( + icon: const Icon( + Icons.arrow_back_ios_new_rounded, + color: Color(0xFF06070D), + ), + onPressed: onPress, + ), + IconButton( + icon: const Icon( + Icons.more_vert, + color: Color(0xFF06070D), + ), + onPressed: () => print('g'), + ), + ], + ), + ), + Container( + alignment: Alignment.centerLeft, + padding: + const EdgeInsets.only(top: 50, left: 30, right: 30, bottom: 50), + child: Text( + text, + style: const TextStyle( + fontSize: 25, + fontStyle: FontStyle.normal, + fontWeight: FontWeight.w400, + //fontFamily: "Niramit", + color: Color(0xFF191919), + ), + ), + ) + ], + ); + } +} diff --git a/lib/page4/book_buy.dart b/lib/page4/book_buy.dart new file mode 100644 index 0000000..c607d1f --- /dev/null +++ b/lib/page4/book_buy.dart @@ -0,0 +1,188 @@ +import 'package:flutter/material.dart'; +import 'package:get/get.dart'; + +import '../main.dart'; +import '../page1/home_page.dart'; +import '../page3/adding_page.dart'; + +class BooksBuyPage extends StatelessWidget { + const BooksBuyPage({ + Key? key, + }) : super(key: key); + //final Books b; + @override + Widget build(BuildContext context) { + final TextController = TextEditingController(); + return Scaffold( + body: Stack( + children: [ + Column( + children: [ + navBar( + onPress: () { + Navigator.push( + context, + MaterialPageRoute( + builder: (context) => HomePage(), + ), + ); + }, + text: "Cart", + ), + Obx( + () { + return Expanded( + child: ListView( + children: + Books.MyBooks.where((p) => p.isSold.value == true) + .map( + (e) => bookDetails(b: e), + ) + .toList(), + ), + ); + }, + ), + ], + ), + flowIcons(), + ], + ), + ); + } +} + +class navBar extends StatelessWidget { + navBar({ + required this.onPress, + Key? key, + required this.text, + }) : super(key: key); + final void Function() onPress; + final String text; + @override + Widget build(BuildContext context) { + return Column( + children: [ + Padding( + padding: const EdgeInsets.only(top: 50, left: 25, right: 25), + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + IconButton( + icon: const Icon( + Icons.arrow_back_ios_new_rounded, + color: Color(0xFF06070D), + ), + onPressed: onPress, + ), + IconButton( + icon: const Icon( + Icons.more_vert, + color: Color(0xFF06070D), + ), + onPressed: () => print('g'), + ), + ], + ), + ), + Container( + alignment: Alignment.centerLeft, + padding: + const EdgeInsets.only(top: 50, left: 30, right: 30, bottom: 50), + child: Text( + text, + style: const TextStyle( + fontSize: 25, + fontStyle: FontStyle.normal, + fontWeight: FontWeight.bold, + //fontFamily: "Niramit", + color: Color(0xFF191919), + ), + ), + ) + ], + ); + } +} + +class flowIcons extends StatelessWidget { + const flowIcons({Key? key}) : super(key: key); + + @override + Widget build(BuildContext context) { + return Positioned( + bottom: 30, + left: 82, + right: 82, + child: Container( + height: 72, + width: 227, + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(22), + boxShadow: const [ + BoxShadow( + color: Colors.black26, + spreadRadius: 1, + blurRadius: 10, + offset: Offset(0, 10)), + ], + color: Colors.white, + ), + child: Padding( + padding: const EdgeInsets.only(left: 25, right: 25), + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + IconButton( + iconSize: 30, + icon: const Icon( + Icons.home_outlined, + color: Color(0xFF06070D), + ), + onPressed: () { + Navigator.push( + context, + MaterialPageRoute( + builder: (context) => HomePage(), + ), + ); + }, + ), + IconButton( + iconSize: 30, + icon: const Icon( + Icons.shopping_cart_outlined, + color: Colors.black54, + ), + onPressed: () { + Navigator.push( + context, + MaterialPageRoute( + builder: (context) => BooksBuyPage(), + ), + ); + }, + ), + IconButton( + iconSize: 30, + icon: const Icon( + Icons.add, + color: Colors.black54, + ), + onPressed: () { + Navigator.push( + context, + MaterialPageRoute( + builder: (context) => const AddingBooksPage(), + ), + ); + }, + ), + ], + ), + ), + ), + ); + } +} diff --git a/pubspec.lock b/pubspec.lock index 7bc8bdd..a45ff75 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -74,6 +74,13 @@ packages: description: flutter source: sdk version: "0.0.0" + get: + dependency: "direct dev" + description: + name: get + url: "https://pub.dartlang.org" + source: hosted + version: "4.6.5" lints: dependency: transitive description: diff --git a/pubspec.yaml b/pubspec.yaml index cd0f457..a6a664b 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -38,6 +38,7 @@ dependencies: dev_dependencies: flutter_test: sdk: flutter + get: any # The "flutter_lints" package below contains a set of recommended lints to # encourage good coding practices. The lint set provided by the package is