diff --git a/lib/screens/home.dart b/lib/screens/home.dart index 6b0f5b3..68fc1c5 100644 --- a/lib/screens/home.dart +++ b/lib/screens/home.dart @@ -6,6 +6,7 @@ import 'package:nekoya_flutter/components/new_arrival_products.dart'; import 'package:nekoya_flutter/components/newsletter.dart'; import 'package:nekoya_flutter/components/popular_products.dart'; import 'package:nekoya_flutter/components/search_form.dart'; +import 'package:nekoya_flutter/screens/faq.dart'; import 'package:nekoya_flutter/utils/utils.dart'; class Home extends StatelessWidget { @@ -20,6 +21,15 @@ class Home extends StatelessWidget { centerTitle: true, backgroundColor: const Color(0xff212226), automaticallyImplyLeading: false, + actions: [ + IconButton( + icon: const Icon(Icons.question_mark), + onPressed: () { + Navigator.push(context, + MaterialPageRoute(builder: (context) => const FAQ())); + }, + ) + ], ), body: SafeArea( child: SingleChildScrollView( diff --git a/lib/screens/products.dart b/lib/screens/products.dart index 8b37fec..d3ebe34 100644 --- a/lib/screens/products.dart +++ b/lib/screens/products.dart @@ -3,8 +3,8 @@ import 'package:flutter/material.dart'; import 'package:nekoya_flutter/api/api.dart'; import 'package:nekoya_flutter/components/product_box.dart'; import 'package:nekoya_flutter/components/product_detail.dart'; -import 'package:nekoya_flutter/screens/faq.dart'; -import 'package:nekoya_flutter/utils/utils.dart' show kMobileBreakpoint, kTabletBreakpoint, kDesktopBreakPoint; +import 'package:nekoya_flutter/utils/utils.dart' + show kMobileBreakpoint, kTabletBreakpoint, kDesktopBreakPoint; class Products extends StatefulWidget { const Products({Key? key}) : super(key: key); @@ -23,72 +23,62 @@ class _ProductsState extends State { centerTitle: true, backgroundColor: const Color(0xff212226), automaticallyImplyLeading: false, - actions: [ - IconButton( - icon: const Icon(Icons.question_mark), - onPressed: () { - Navigator.push(context, MaterialPageRoute( - builder: (context) => const FAQ() - )); - }, - ) - ], ), - body: LayoutBuilder( - builder: (context, dimension) { - int gridCount = 2; - double fontSize = 14.0; + body: LayoutBuilder(builder: (context, dimension) { + int gridCount = 2; + double fontSize = 14.0; - if (dimension.maxWidth <= kMobileBreakpoint) { - gridCount = 2; - fontSize = 14.0; - } else if (dimension.maxWidth > kMobileBreakpoint && - dimension.maxWidth <= kTabletBreakpoint) { - gridCount = 4; - fontSize = 15.0; - } else if (dimension.maxWidth > kTabletBreakpoint && - dimension.maxWidth <= kDesktopBreakPoint) { - gridCount = 5; - fontSize = 10.0; - } else { - gridCount = 6; - fontSize = 10.0; - } - - return FutureBuilder( - future: getProducts(), - builder: (context, snapshot) { - if (snapshot.hasData) { - var data = snapshot.data; - return GridView.count( - crossAxisCount: gridCount, - children: List.generate(data!.length, (index) { - return ProductBox( - imageUrl: "https://nekoya.moe.team/img/${data[index]['IMAGE']}", - title: data[index]['TITLE'], - fontSize: fontSize, - callback: () { - showModalBottomSheet( - isScrollControlled: true, - backgroundColor: Colors.transparent, - context: context, - builder: (context) => productDetail(context, data[index]['ID']), - ); - }, - ); - }), - ); - } - - return const Center( - child: CircularProgressIndicator( - color: Color(0xff8B0000), - ), - ); - }, - ); + if (dimension.maxWidth <= kMobileBreakpoint) { + gridCount = 2; + fontSize = 14.0; + } else if (dimension.maxWidth > kMobileBreakpoint && + dimension.maxWidth <= kTabletBreakpoint) { + gridCount = 4; + fontSize = 15.0; + } else if (dimension.maxWidth > kTabletBreakpoint && + dimension.maxWidth <= kDesktopBreakPoint) { + gridCount = 5; + fontSize = 10.0; + } else { + gridCount = 6; + fontSize = 10.0; } - ), + + return FutureBuilder( + future: getProducts(), + builder: (context, snapshot) { + if (snapshot.hasData) { + var data = snapshot.data; + return GridView.count( + crossAxisCount: gridCount, + children: List.generate(data!.length, (index) { + return ProductBox( + imageUrl: + "https://nekoya.moe.team/img/${data[index]['IMAGE']}", + title: data[index]['TITLE'], + fontSize: fontSize, + callback: () { + showModalBottomSheet( + isScrollControlled: true, + backgroundColor: Colors.transparent, + context: context, + builder: (context) => + productDetail(context, data[index]['ID']), + ); + }, + ); + }), + ); + } + + return const Center( + child: CircularProgressIndicator( + color: Color(0xff8B0000), + ), + ); + }, + ); + }), ); } -} \ No newline at end of file +}