BASE: Add Necessary Assets.
BIN
assets/images/click_logo.png
Normal file
|
After Width: | Height: | Size: 3.8 KiB |
BIN
assets/images/cosmetics_img.png
Normal file
|
After Width: | Height: | Size: 34 KiB |
BIN
assets/images/delivery_img.png
Normal file
|
After Width: | Height: | Size: 28 KiB |
BIN
assets/images/fondex_logo.png
Normal file
|
After Width: | Height: | Size: 8.0 KiB |
BIN
assets/images/fondex_logo_main.png
Normal file
|
After Width: | Height: | Size: 9.2 KiB |
BIN
assets/images/food_img.png
Normal file
|
After Width: | Height: | Size: 175 KiB |
BIN
assets/images/garderob_img.png
Normal file
|
After Width: | Height: | Size: 120 KiB |
BIN
assets/images/ic_pick_drop_location.png
Normal file
|
After Width: | Height: | Size: 2.6 KiB |
BIN
assets/images/keys_img.png
Normal file
|
After Width: | Height: | Size: 33 KiB |
BIN
assets/images/location_indicatorl
Normal file
|
After Width: | Height: | Size: 25 KiB |
BIN
assets/images/money_logo.png
Normal file
|
After Width: | Height: | Size: 2.7 KiB |
BIN
assets/images/outer_city_taxi_option.png
Normal file
|
After Width: | Height: | Size: 126 KiB |
BIN
assets/images/payme_logo.png
Normal file
|
After Width: | Height: | Size: 7.3 KiB |
BIN
assets/images/products_img.png
Normal file
|
After Width: | Height: | Size: 59 KiB |
BIN
assets/images/taxi_img.png
Normal file
|
After Width: | Height: | Size: 185 KiB |
BIN
assets/images/taxi_option.png
Normal file
|
After Width: | Height: | Size: 135 KiB |
@@ -6,6 +6,7 @@ import 'package:customer/utils/preferences.dart';
|
||||
import 'package:firebase_core/firebase_core.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_easyloading/flutter_easyloading.dart';
|
||||
import 'package:flutter_screenutil/flutter_screenutil.dart';
|
||||
import 'package:get/get.dart';
|
||||
import 'controllers/global_setting_controller.dart';
|
||||
import 'controllers/theme_controller.dart';
|
||||
@@ -13,7 +14,10 @@ import 'firebase_options.dart';
|
||||
|
||||
void main() async {
|
||||
WidgetsFlutterBinding.ensureInitialized();
|
||||
await Firebase.initializeApp(name: 'default', options: DefaultFirebaseOptions.currentPlatform);
|
||||
await Firebase.initializeApp(
|
||||
name: 'default',
|
||||
options: DefaultFirebaseOptions.currentPlatform,
|
||||
);
|
||||
|
||||
await Preferences.initPref();
|
||||
|
||||
@@ -32,10 +36,18 @@ class MyApp extends StatelessWidget {
|
||||
Widget build(BuildContext context) {
|
||||
Get.put(ThemeController());
|
||||
return Obx(
|
||||
() => GetMaterialApp(
|
||||
() => ScreenUtilInit(
|
||||
designSize: Size(375, 812),
|
||||
minTextAdapt: true,
|
||||
splitScreenMode: true,
|
||||
child: GetMaterialApp(
|
||||
debugShowCheckedModeBanner: false,
|
||||
builder: (context, child) {
|
||||
return SafeArea(bottom: true, top: false, child: EasyLoading.init()(context, child));
|
||||
return SafeArea(
|
||||
bottom: true,
|
||||
top: false,
|
||||
child: EasyLoading.init()(context, child),
|
||||
);
|
||||
},
|
||||
translations: LocalizationService(),
|
||||
locale: LocalizationService.locale,
|
||||
@@ -43,7 +55,9 @@ class MyApp extends StatelessWidget {
|
||||
themeMode: themeController.themeMode,
|
||||
theme: ThemeData(
|
||||
scaffoldBackgroundColor: AppThemeData.surface,
|
||||
textTheme: TextTheme(bodyLarge: TextStyle(color: AppThemeData.grey900)),
|
||||
textTheme: TextTheme(
|
||||
bodyLarge: TextStyle(color: AppThemeData.grey900),
|
||||
),
|
||||
appBarTheme: AppBarTheme(
|
||||
backgroundColor: AppThemeData.surface,
|
||||
foregroundColor: AppThemeData.grey900,
|
||||
@@ -53,14 +67,22 @@ class MyApp extends StatelessWidget {
|
||||
backgroundColor: AppThemeData.surface,
|
||||
selectedItemColor: AppThemeData.primary300,
|
||||
unselectedItemColor: AppThemeData.grey600,
|
||||
selectedLabelStyle: TextStyle(fontFamily: AppThemeData.bold, fontSize: 12),
|
||||
unselectedLabelStyle: TextStyle(fontFamily: AppThemeData.bold, fontSize: 12),
|
||||
selectedLabelStyle: TextStyle(
|
||||
fontFamily: AppThemeData.bold,
|
||||
fontSize: 12,
|
||||
),
|
||||
unselectedLabelStyle: TextStyle(
|
||||
fontFamily: AppThemeData.bold,
|
||||
fontSize: 12,
|
||||
),
|
||||
type: BottomNavigationBarType.fixed,
|
||||
),
|
||||
),
|
||||
darkTheme: ThemeData(
|
||||
scaffoldBackgroundColor: AppThemeData.surfaceDark,
|
||||
textTheme: TextTheme(bodyLarge: TextStyle(color: AppThemeData.greyDark900)),
|
||||
textTheme: TextTheme(
|
||||
bodyLarge: TextStyle(color: AppThemeData.greyDark900),
|
||||
),
|
||||
appBarTheme: AppBarTheme(
|
||||
backgroundColor: AppThemeData.surfaceDark,
|
||||
foregroundColor: AppThemeData.greyDark900,
|
||||
@@ -70,8 +92,14 @@ class MyApp extends StatelessWidget {
|
||||
backgroundColor: AppThemeData.grey900,
|
||||
selectedItemColor: AppThemeData.primary300,
|
||||
unselectedItemColor: AppThemeData.grey300,
|
||||
selectedLabelStyle: TextStyle(fontFamily: AppThemeData.bold, fontSize: 12),
|
||||
unselectedLabelStyle: TextStyle(fontFamily: AppThemeData.bold, fontSize: 12),
|
||||
selectedLabelStyle: TextStyle(
|
||||
fontFamily: AppThemeData.bold,
|
||||
fontSize: 12,
|
||||
),
|
||||
unselectedLabelStyle: TextStyle(
|
||||
fontFamily: AppThemeData.bold,
|
||||
fontSize: 12,
|
||||
),
|
||||
type: BottomNavigationBarType.fixed,
|
||||
),
|
||||
),
|
||||
@@ -82,6 +110,7 @@ class MyApp extends StatelessWidget {
|
||||
},
|
||||
),
|
||||
),
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,8 @@
|
||||
import 'dart:developer';
|
||||
|
||||
import 'package:customer/constant/constant.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_screenutil/flutter_screenutil.dart';
|
||||
import 'package:get/get.dart';
|
||||
import '../../controllers/service_list_controller.dart';
|
||||
import '../../controllers/theme_controller.dart';
|
||||
@@ -25,8 +28,8 @@ class ServiceListScreen extends StatelessWidget {
|
||||
mainAxisAlignment: MainAxisAlignment.start,
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
Text("eMart".tr, style: AppThemeData.semiBoldTextStyle(fontSize: 22, color: themeController.isDark.value ? AppThemeData.grey50 : AppThemeData.grey900)),
|
||||
Text("All Your Needs in One App!".tr, style: AppThemeData.regularTextStyle(fontSize: 14, color: themeController.isDark.value ? AppThemeData.grey100 : AppThemeData.grey700)),
|
||||
Image.asset("assets/images/fondex_logo.png",
|
||||
height: 32.r, width: 124.r, fit: BoxFit.contain),
|
||||
],
|
||||
),
|
||||
),
|
||||
@@ -37,45 +40,140 @@ class ServiceListScreen extends StatelessWidget {
|
||||
child: Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
controller.serviceListBanner.isEmpty
|
||||
? SizedBox()
|
||||
: Padding(
|
||||
padding: EdgeInsets.symmetric(horizontal: 16.r),
|
||||
child: BannerView(
|
||||
bannerList: controller.serviceListBanner,
|
||||
),
|
||||
),
|
||||
// Main Cards Section
|
||||
_mainCardsSection(),
|
||||
|
||||
SizedBox(height: 15.h),
|
||||
|
||||
// Other Services Section Title
|
||||
Padding(
|
||||
padding: EdgeInsets.symmetric(horizontal: 16.r),
|
||||
child: Text(
|
||||
"Другие услуги",
|
||||
style: TextStyle(
|
||||
fontFamily: AppThemeData.bold,
|
||||
fontWeight: FontWeight.w700,
|
||||
fontSize: 20.sp,
|
||||
color: AppThemeData.darkGrey,
|
||||
),
|
||||
),
|
||||
),
|
||||
|
||||
SizedBox(height: 10.h),
|
||||
|
||||
_otherServicesCardMaker(
|
||||
image: "assets/images/delivery_img.png",
|
||||
title: "Курьерская доставка",
|
||||
subtitle: "Доставляем безопасно",
|
||||
),
|
||||
_otherServicesCardMaker(
|
||||
image: "assets/images/keys_img.png",
|
||||
title: "Аренда",
|
||||
subtitle: "Огромный выбор объявлений!",
|
||||
),
|
||||
_otherServicesCardMaker(
|
||||
image: "assets/images/cosmetics_img.png",
|
||||
title: "Косметика",
|
||||
subtitle: "Более 1000 товаров",
|
||||
),
|
||||
_otherServicesCardMaker(
|
||||
image: "assets/images/products_img.png",
|
||||
title: "Продукты питания",
|
||||
subtitle: "Более 1000 товаров",
|
||||
),
|
||||
|
||||
SizedBox(height: 45.h),
|
||||
const SizedBox(height: 12),
|
||||
controller.serviceListBanner.isEmpty ? SizedBox() : BannerView(bannerList: controller.serviceListBanner),
|
||||
controller.serviceListBanner.isEmpty
|
||||
? SizedBox()
|
||||
: BannerView(
|
||||
bannerList: controller.serviceListBanner,
|
||||
),
|
||||
const SizedBox(height: 12),
|
||||
Padding(
|
||||
padding: const EdgeInsets.symmetric(horizontal: 16),
|
||||
child: Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
Text("Explore Our Services".tr, style: AppThemeData.semiBoldTextStyle(fontSize: 20, color: themeController.isDark.value ? AppThemeData.grey50 : AppThemeData.grey900)),
|
||||
Text(
|
||||
"Explore Our Services".tr,
|
||||
style: AppThemeData.semiBoldTextStyle(
|
||||
fontSize: 20,
|
||||
color:
|
||||
themeController.isDark.value
|
||||
? AppThemeData.grey50
|
||||
: AppThemeData.grey900,
|
||||
),
|
||||
),
|
||||
const SizedBox(height: 12),
|
||||
GridView.builder(
|
||||
itemCount: controller.sectionList.length,
|
||||
physics: const NeverScrollableScrollPhysics(),
|
||||
shrinkWrap: true,
|
||||
gridDelegate: const SliverGridDelegateWithFixedCrossAxisCount(crossAxisCount: 3, mainAxisSpacing: 12, crossAxisSpacing: 12, mainAxisExtent: 130),
|
||||
gridDelegate:
|
||||
const SliverGridDelegateWithFixedCrossAxisCount(
|
||||
crossAxisCount: 3,
|
||||
mainAxisSpacing: 12,
|
||||
crossAxisSpacing: 12,
|
||||
mainAxisExtent: 130,
|
||||
),
|
||||
itemBuilder: (context, index) {
|
||||
final section = controller.sectionList[index];
|
||||
return GestureDetector(
|
||||
onTap: () => controller.onServiceTap(context, section),
|
||||
onTap:
|
||||
() => controller.onServiceTap(
|
||||
context,
|
||||
section,
|
||||
),
|
||||
child: Container(
|
||||
decoration: BoxDecoration(
|
||||
gradient: LinearGradient(colors: Constant.sectionColor[index % Constant.sectionColor.length], begin: Alignment.topCenter, end: Alignment.bottomCenter),
|
||||
gradient: LinearGradient(
|
||||
colors:
|
||||
Constant.sectionColor[index %
|
||||
Constant.sectionColor.length],
|
||||
begin: Alignment.topCenter,
|
||||
end: Alignment.bottomCenter,
|
||||
),
|
||||
borderRadius: BorderRadius.circular(12),
|
||||
),
|
||||
child: Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.center,
|
||||
crossAxisAlignment:
|
||||
CrossAxisAlignment.center,
|
||||
children: [
|
||||
Padding(
|
||||
padding: const EdgeInsets.only(top: 10, left: 5, right: 5),
|
||||
padding: const EdgeInsets.only(
|
||||
top: 10,
|
||||
left: 5,
|
||||
right: 5,
|
||||
),
|
||||
child: Text(
|
||||
section.name ?? '',
|
||||
textAlign: TextAlign.center,
|
||||
maxLines: 2,
|
||||
overflow: TextOverflow.ellipsis,
|
||||
style: AppThemeData.semiBoldTextStyle(fontSize: 14, color: AppThemeData.grey900),
|
||||
style:
|
||||
AppThemeData.semiBoldTextStyle(
|
||||
fontSize: 14,
|
||||
color: AppThemeData.grey900,
|
||||
),
|
||||
),
|
||||
),
|
||||
const Spacer(),
|
||||
NetworkImageWidget(imageUrl: section.sectionImage ?? '', width: 80, height: 60, fit: BoxFit.contain),
|
||||
NetworkImageWidget(
|
||||
imageUrl:
|
||||
section.sectionImage ?? '',
|
||||
width: 80,
|
||||
height: 60,
|
||||
fit: BoxFit.contain,
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
@@ -92,6 +190,238 @@ class ServiceListScreen extends StatelessWidget {
|
||||
},
|
||||
);
|
||||
}
|
||||
|
||||
Widget _otherServicesCardMaker({
|
||||
required String image,
|
||||
required String title,
|
||||
required String subtitle,
|
||||
}) {
|
||||
return InkWell(
|
||||
onTap: () {
|
||||
log("Other Service Card Tapped: $title");
|
||||
},
|
||||
child: Container(
|
||||
width: double.infinity,
|
||||
margin: EdgeInsets.symmetric(horizontal: 16.r).copyWith(bottom: 10.r),
|
||||
padding: EdgeInsets.only(left: 6.r, right: 12.r, top: 6.r, bottom: 6.r),
|
||||
decoration: BoxDecoration(
|
||||
borderRadius: BorderRadius.circular(16.r),
|
||||
color: AppThemeData.grey50,
|
||||
),
|
||||
child: Row(
|
||||
spacing: 15.r,
|
||||
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||
children: [
|
||||
Expanded(
|
||||
child: Row(
|
||||
spacing: 10.r,
|
||||
children: [
|
||||
Container(
|
||||
height: 52.r,
|
||||
width: 52.r,
|
||||
decoration: BoxDecoration(
|
||||
color: AppThemeData.cardColor,
|
||||
borderRadius: BorderRadius.circular(14.r),
|
||||
),
|
||||
child: Image.asset(
|
||||
image,
|
||||
height: 62.r,
|
||||
width: 62.r,
|
||||
fit: BoxFit.contain,
|
||||
),
|
||||
),
|
||||
Expanded(
|
||||
child: Column(
|
||||
spacing: 2.r,
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
Text(
|
||||
title,
|
||||
style: TextStyle(
|
||||
overflow: TextOverflow.ellipsis,
|
||||
fontFamily: AppThemeData.semiBold,
|
||||
fontSize: 16.sp,
|
||||
fontWeight: FontWeight.w700,
|
||||
color: AppThemeData.darkGrey,
|
||||
),
|
||||
),
|
||||
Text(
|
||||
subtitle,
|
||||
style: TextStyle(
|
||||
overflow: TextOverflow.ellipsis,
|
||||
fontFamily: AppThemeData.semiBold,
|
||||
fontSize: 13.sp,
|
||||
fontWeight: FontWeight.w400,
|
||||
color: AppThemeData.darkGrey,
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
Icon(
|
||||
Icons.arrow_forward_ios,
|
||||
size: 18.r,
|
||||
color: AppThemeData.darkGrey,
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
Widget _mainCardsSection() {
|
||||
return Container(
|
||||
padding: EdgeInsets.symmetric(vertical: 16.r, horizontal: 16.r),
|
||||
decoration: BoxDecoration(
|
||||
color: AppThemeData.grey50,
|
||||
borderRadius: BorderRadius.circular(16.r),
|
||||
),
|
||||
child: Row(
|
||||
spacing: 12.r,
|
||||
children: [
|
||||
// Food & Garderobe Cards
|
||||
Column(
|
||||
spacing: 12.r,
|
||||
children: [
|
||||
_mainCardsMaker(
|
||||
title: "Еда и доставка",
|
||||
image: "assets/images/food_img.png",
|
||||
// onTap: () {
|
||||
// log("Main Card Tapped");
|
||||
onTap: () async {},
|
||||
// },
|
||||
),
|
||||
_mainCardsMaker(
|
||||
title: "Обновить гардероб",
|
||||
image: "assets/images/garderob_img.png",
|
||||
onTap: () {
|
||||
log("Main Card Tapped");
|
||||
},
|
||||
),
|
||||
],
|
||||
),
|
||||
// Taxi Card
|
||||
InkWell(
|
||||
onTap: () {
|
||||
log("Taxi Card Tapped");
|
||||
// push(context, DashBoardCabService(user: null));
|
||||
},
|
||||
child: Container(
|
||||
height: 192.h,
|
||||
width: 166.w,
|
||||
padding: EdgeInsets.only(top: 12.r, right: 12.r),
|
||||
decoration: BoxDecoration(
|
||||
color: AppThemeData.yellow,
|
||||
borderRadius: BorderRadius.circular(16.r),
|
||||
),
|
||||
child: Column(
|
||||
children: [
|
||||
Expanded(
|
||||
child: Padding(
|
||||
padding: EdgeInsets.only(left: 12.r),
|
||||
child: Row(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
Expanded(
|
||||
child: Text(
|
||||
maxLines: 2,
|
||||
"Позвать такси",
|
||||
style: TextStyle(
|
||||
overflow: TextOverflow.ellipsis,
|
||||
fontFamily: AppThemeData.bold,
|
||||
fontSize: 18.sp,
|
||||
fontWeight: FontWeight.w700,
|
||||
color: AppThemeData.grey50,
|
||||
),
|
||||
),
|
||||
),
|
||||
Container(
|
||||
height: 36.r,
|
||||
width: 36.r,
|
||||
decoration: BoxDecoration(
|
||||
color: AppThemeData.grey50.withValues(alpha: 0.3),
|
||||
borderRadius: BorderRadius.circular(8.r),
|
||||
),
|
||||
child: Icon(
|
||||
Icons.arrow_outward_rounded,
|
||||
size: 20.r,
|
||||
color: AppThemeData.grey50,
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
),
|
||||
Image.asset(
|
||||
"assets/images/taxi_img.png",
|
||||
height: 119.r,
|
||||
width: 156.r,
|
||||
fit: BoxFit.contain,
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
Widget _mainCardsMaker({
|
||||
required String title,
|
||||
required String image,
|
||||
required VoidCallback onTap,
|
||||
}) {
|
||||
return InkWell(
|
||||
onTap: onTap,
|
||||
child: Container(
|
||||
height: 93.h,
|
||||
width: 165.w,
|
||||
padding: EdgeInsets.only(left: 12.r),
|
||||
decoration: BoxDecoration(
|
||||
color: AppThemeData.cardColor,
|
||||
borderRadius: BorderRadius.circular(16.r),
|
||||
),
|
||||
child: Row(
|
||||
mainAxisAlignment: MainAxisAlignment.end,
|
||||
crossAxisAlignment: CrossAxisAlignment.end,
|
||||
children: [
|
||||
Expanded(
|
||||
child: Padding(
|
||||
padding: EdgeInsets.only(bottom: 12.r, top: 12.r),
|
||||
child: Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||
children: [
|
||||
Text(
|
||||
maxLines: 2,
|
||||
title,
|
||||
style: TextStyle(
|
||||
overflow: TextOverflow.ellipsis,
|
||||
fontFamily: AppThemeData.bold,
|
||||
fontSize: 14.sp,
|
||||
fontWeight: FontWeight.w700,
|
||||
color: AppThemeData.darkGrey,
|
||||
),
|
||||
),
|
||||
Icon(
|
||||
Icons.arrow_outward_rounded,
|
||||
size: 24.r,
|
||||
color: AppThemeData.darkGrey,
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
),
|
||||
Image.asset(image, height: 71.r, width: 71.r, fit: BoxFit.contain),
|
||||
],
|
||||
),
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
class BannerView extends StatelessWidget {
|
||||
@@ -132,7 +462,13 @@ class BannerView extends StatelessWidget {
|
||||
itemBuilder: (context, index) {
|
||||
return ClipRRect(
|
||||
borderRadius: BorderRadius.circular(12),
|
||||
child: SizedBox(width: MediaQuery.of(context).size.width * 0.8, child: NetworkImageWidget(imageUrl: bannerList[index].toString(), fit: BoxFit.fill)),
|
||||
child: SizedBox(
|
||||
width: MediaQuery.of(context).size.width * 0.8,
|
||||
child: NetworkImageWidget(
|
||||
imageUrl: bannerList[index].toString(),
|
||||
fit: BoxFit.fill,
|
||||
),
|
||||
),
|
||||
);
|
||||
},
|
||||
),
|
||||
@@ -142,7 +478,18 @@ class BannerView extends StatelessWidget {
|
||||
return Row(
|
||||
children: List.generate(bannerList.length, (index) {
|
||||
final isSelected = currentPage.value == index;
|
||||
return Expanded(child: Container(height: 4, decoration: BoxDecoration(color: isSelected ? AppThemeData.grey300 : AppThemeData.grey100, borderRadius: BorderRadius.circular(5))));
|
||||
return Expanded(
|
||||
child: Container(
|
||||
height: 4,
|
||||
decoration: BoxDecoration(
|
||||
color:
|
||||
isSelected
|
||||
? AppThemeData.grey300
|
||||
: AppThemeData.grey100,
|
||||
borderRadius: BorderRadius.circular(5),
|
||||
),
|
||||
),
|
||||
);
|
||||
}),
|
||||
);
|
||||
}),
|
||||
|
||||
@@ -199,6 +199,12 @@ class AppThemeData {
|
||||
static const Color warningDark500 = Color(0xFFFFE9AB);
|
||||
static const Color warningDark600 = Color(0xFFFFF8E5);
|
||||
|
||||
static const Color yellow = Color(0xFFE5AE3E);
|
||||
static const Color cardColor = Color(0xFFEEEFF2);
|
||||
static const Color darkGrey = Color(0xFF1F2937);
|
||||
static const Color mainColor = Color(0xFFFF6839);
|
||||
static const lightGrey = Color(0xFF8E8E93);
|
||||
|
||||
static const Color primary50 = Color(0xFFFFEBE5);
|
||||
static const Color primary100 = Color(0xFFFFC0AB);
|
||||
static const Color primary200 = Color(0xFFFF9472);
|
||||
|
||||
@@ -678,6 +678,14 @@ packages:
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "4.0.1"
|
||||
flutter_screenutil:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
name: flutter_screenutil
|
||||
sha256: "8239210dd68bee6b0577aa4a090890342d04a136ce1c81f98ee513fc0ce891de"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "5.9.3"
|
||||
flutter_spinkit:
|
||||
dependency: transitive
|
||||
description:
|
||||
|
||||
@@ -86,6 +86,7 @@ dependencies:
|
||||
intl: ^0.20.2
|
||||
uuid: ^4.5.2
|
||||
flutter_google_places_hoc081098: ^2.0.0
|
||||
flutter_screenutil: ^5.9.3
|
||||
|
||||
dependency_overrides:
|
||||
webview_flutter: ^4.9.0
|
||||
|
||||