diff --git a/lib/infrastructure/service/app_navigation_observer.dart b/lib/infrastructure/service/app_navigation_observer.dart index 5d4a8dc..12afc4d 100644 --- a/lib/infrastructure/service/app_navigation_observer.dart +++ b/lib/infrastructure/service/app_navigation_observer.dart @@ -18,12 +18,14 @@ class CustomNavigationObserver extends NavigatorObserver { _isWorkDone = true; await setupInjection(); } + iLog('message'); } @override void didReplace({Route? newRoute, Route? oldRoute}) { super.didReplace(newRoute: newRoute, oldRoute: oldRoute); + iLog('didReplace'); } @@ -31,10 +33,12 @@ class CustomNavigationObserver extends NavigatorObserver { void didPop(Route route, Route? previousRoute) { super.didPop(route, previousRoute); + iLog('didPop'); } @override void didRemove(Route route, Route? previousRoute) { super.didRemove(route, previousRoute); + iLog('didRemove'); } } diff --git a/lib/main.dart b/lib/main.dart index b693b95..3fdd903 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -13,8 +13,8 @@ Future main() async { await setupPreInjection(); Get.put(TokenStorageService()); - var tokenService = Get.find(); - await tokenService.init(); + await Get.find().init(); + Get.put(AuthMiddleware()); Get.put(AuthService()); runApp(MyApp()); diff --git a/packages/chicken/lib/data/datasource/local/chicken_local_imp.dart b/packages/chicken/lib/data/datasource/local/chicken_local_imp.dart index 2ccd6ed..663af1f 100644 --- a/packages/chicken/lib/data/datasource/local/chicken_local_imp.dart +++ b/packages/chicken/lib/data/datasource/local/chicken_local_imp.dart @@ -4,13 +4,12 @@ import 'package:rasadyar_chicken/data/models/local/widely_used_local_model.dart' import 'package:rasadyar_core/core.dart'; class ChickenLocalDataSourceImp implements ChickenLocalDataSource { - HiveLocalStorage local =diCore.get(); + HiveLocalStorage local = diCore.get(); final String boxName = 'Chicken_Widley_Box'; - @override Future openBox() async { - await local.openBox(boxName); + await local.openBox(boxName); } @override @@ -53,7 +52,6 @@ class ChickenLocalDataSourceImp implements ChickenLocalDataSource { @override WidelyUsedLocalModel? getAllWidely() { var res = local.readBox(boxName: boxName); - fLog(res.toString()); - return res; + return res?.first; } } diff --git a/packages/chicken/lib/presentation/pages/buy_in_province_waiting/view.dart b/packages/chicken/lib/presentation/pages/buy_in_province_waiting/view.dart index 7310b28..6658f35 100644 --- a/packages/chicken/lib/presentation/pages/buy_in_province_waiting/view.dart +++ b/packages/chicken/lib/presentation/pages/buy_in_province_waiting/view.dart @@ -44,7 +44,7 @@ class BuyInProvinceWaitingPage extends GetView { ); }, controller.waitingProduct), ), - floatingActionButtonLocation: FloatingActionButtonLocation.endFloat, + /* floatingActionButtonLocation: FloatingActionButtonLocation.endFloat, floatingActionButton: ObxValue((data) { if ((data.value.data?.results?.length ?? 0) > 1) { return AnimatedFab( @@ -58,7 +58,7 @@ class BuyInProvinceWaitingPage extends GetView { } else { return SizedBox.shrink(); } - }, controller.waitingProduct), + }, controller.waitingProduct),*/ ); } diff --git a/packages/chicken/lib/presentation/pages/buy_out_of_province/logic.dart b/packages/chicken/lib/presentation/pages/buy_out_of_province/logic.dart index 17d7907..2defabc 100644 --- a/packages/chicken/lib/presentation/pages/buy_out_of_province/logic.dart +++ b/packages/chicken/lib/presentation/pages/buy_out_of_province/logic.dart @@ -17,6 +17,7 @@ class BuyOutOfProvinceLogic extends GetxController { RxList isExpandedList = [].obs; final RxInt currentPage = 1.obs; final RxBool isLoadingMoreAllocationsMade = false.obs; + final RxBool isOnLoadingSubmitOrEdit = false.obs; //TODO add this to Di ImagePicker imagePicker = ImagePicker(); @@ -170,6 +171,7 @@ class BuyOutOfProvinceLogic extends GetxController { Future createStewardPurchaseOutOfProvince() async { bool res = false; + isOnLoadingSubmitOrEdit.value = true; if (!(formKey.currentState?.validate() ?? false)) { return res; } @@ -196,6 +198,7 @@ class BuyOutOfProvinceLogic extends GetxController { res = true; }, ); + isOnLoadingSubmitOrEdit.value = false; return res; } @@ -205,7 +208,6 @@ class BuyOutOfProvinceLogic extends GetxController { carcassWeightController.clear(); selectedProvince.value = null; selectedCity.value = null; - selectedProduct.value = null; selectedImage.value = null; _base64Image.value = null; editImageUrl.value = null; diff --git a/packages/chicken/lib/presentation/pages/buy_out_of_province/view.dart b/packages/chicken/lib/presentation/pages/buy_out_of_province/view.dart index 41f7b84..165b129 100644 --- a/packages/chicken/lib/presentation/pages/buy_out_of_province/view.dart +++ b/packages/chicken/lib/presentation/pages/buy_out_of_province/view.dart @@ -379,12 +379,13 @@ class BuyOutOfProvincePage extends GetView { } Widget submitButtonWidget(bool isOnEdit) { - return ObxValue((data) { + return Obx(() { return RElevated( text: isOnEdit ? 'ویرایش' : 'ثبت', width: Get.width, backgroundColor: AppColor.greenNormal, - onPressed: data.value + isLoading: controller.isOnLoadingSubmitOrEdit.value, + onPressed: controller.isSubmitButtonEnabled.value ? () async { var res = await controller.createStewardPurchaseOutOfProvince(); if (res) { @@ -394,7 +395,7 @@ class BuyOutOfProvincePage extends GetView { : null, height: 40, ); - }, controller.isSubmitButtonEnabled); + }); } Widget _productDropDown() { diff --git a/packages/chicken/lib/presentation/pages/profile/view.dart b/packages/chicken/lib/presentation/pages/profile/view.dart index 6d2c993..3805a4a 100644 --- a/packages/chicken/lib/presentation/pages/profile/view.dart +++ b/packages/chicken/lib/presentation/pages/profile/view.dart @@ -57,59 +57,32 @@ class ProfilePage extends GetView { ), ), - ObxValue((data) { - return Padding( - padding: const EdgeInsets.symmetric(horizontal: 20), - child: Wrap( - spacing: 20, - runSpacing: 10, - children: [ - cardActionWidget( - title: 'اطلاعات کاربری', - onPressed: () { - data.value = 0; - }, - icon: Assets.vec.profileUserSvg.path, - selected: data.value == 0, - ), + Center( + child: Wrap( + alignment: WrapAlignment.center, + spacing: 20, + runSpacing: 10, + children: [ + cardActionWidget( + title: 'تغییر رمز عبور', + selected: true, + onPressed: () { + Get.bottomSheet(changePasswordBottomSheet(), isScrollControlled: true); + }, + icon: Assets.vec.lockSvg.path, + ), + cardActionWidget( + title: 'خروج', + selected: true, + onPressed: () { + Get.bottomSheet(exitBottomSheet(), isScrollControlled: true); + }, + icon: Assets.vec.logoutSvg.path, + ), + ], + ), + ), - cardActionWidget( - title: 'تغییر رمز عبور', - selected: true, - onPressed: () { - Get.bottomSheet(changePasswordBottomSheet(), isScrollControlled: true); - }, - icon: Assets.vec.lockSvg.path, - ), - - cardActionWidget( - title: 'خروج', - selected: true, - onPressed: () { - Get.bottomSheet(exitBottomSheet(), isScrollControlled: true); - }, - icon: Assets.vec.logoutSvg.path, - ), - /*cardActionWidget( - title: 'اطلاعات بانکی', - onPressed: () { - data.value = 1; - }, - icon: Assets.vec.informationSvg.path, - selected: data.value == 1, - ), - cardActionWidget( - title: 'اطلاعات \nصدور فاکتور', - onPressed: () { - data.value = 2; - }, - icon: Assets.vec.receiptDiscountSvg.path, - selected: data.value == 2, - ),*/ - ], - ), - ); - }, controller.selectedInformationType), SizedBox(height: 100), ], diff --git a/packages/chicken/lib/presentation/pages/root/logic.dart b/packages/chicken/lib/presentation/pages/root/logic.dart index 0f3c0cd..380c3c7 100644 --- a/packages/chicken/lib/presentation/pages/root/logic.dart +++ b/packages/chicken/lib/presentation/pages/root/logic.dart @@ -49,10 +49,11 @@ class RootLogic extends GetxController { super.onInit(); localDatasource = diChicken.get(); chickenRepository = diChicken.get(); + localDatasource.openBox().then((value) async { + widelyUsedList.value = localDatasource.getAllWidely(); + }); - widelyUsedList.value = localDatasource.getAllWidely(); - //getKillHouseDistributionInfo(); } @override @@ -70,9 +71,7 @@ class RootLogic extends GetxController { } if (widelyUsedList.value?.hasInit != true) { - localDatasource.initWidleyUsed().then( - (value) => localDatasource.getAllWidely(), - ); + localDatasource.initWidleyUsed().then((value) => localDatasource.getAllWidely()); } } diff --git a/packages/chicken/lib/presentation/pages/root/view.dart b/packages/chicken/lib/presentation/pages/root/view.dart index c3bbaa4..1419f22 100644 --- a/packages/chicken/lib/presentation/pages/root/view.dart +++ b/packages/chicken/lib/presentation/pages/root/view.dart @@ -86,13 +86,20 @@ class RootPage extends GetView { label: 'خرید', icon: Assets.vec.buySvg.path, isSelected: controller.currentPage.value == 0, - onTap: () => controller.changePage(0), + onTap: () { + Get.nestedKey(1)?.currentState?.popUntil((route) => route.isFirst); + + controller.changePage(0); + }, ), RBottomNavigationItem( label: 'فروش', icon: Assets.vec.saleSvg.path, isSelected: controller.currentPage.value == 1, - onTap: () => controller.changePage(1), + onTap: () { + Get.nestedKey(0)?.currentState?.popUntil((route) => route.isFirst); + controller.changePage(1); + }, ), RBottomNavigationItem( label: 'خانه', diff --git a/packages/chicken/lib/presentation/pages/sales_in_province/view.dart b/packages/chicken/lib/presentation/pages/sales_in_province/view.dart index 35e3106..7171ab7 100644 --- a/packages/chicken/lib/presentation/pages/sales_in_province/view.dart +++ b/packages/chicken/lib/presentation/pages/sales_in_province/view.dart @@ -3,7 +3,6 @@ import 'package:flutter/services.dart'; import 'package:rasadyar_chicken/data/models/response/allocated_made/allocated_made.dart'; import 'package:rasadyar_chicken/data/models/response/guild/guild_model.dart'; import 'package:rasadyar_chicken/data/models/response/roles_products/roles_products.dart'; -import 'package:rasadyar_chicken/presentation/routes/routes.dart'; import 'package:rasadyar_chicken/presentation/utils/string_utils.dart'; import 'package:rasadyar_chicken/presentation/widget/base_page/view.dart'; import 'package:rasadyar_chicken/presentation/widget/inventory_widget.dart'; @@ -743,7 +742,7 @@ class SalesInProvincePage extends GetView { Widget show2StepAddBottomSheet() { return BaseBottomSheet( - height: Get.height * .35, + height: Get.height * .39, child: Column( spacing: 8, children: [ @@ -808,7 +807,9 @@ class SalesInProvincePage extends GetView { text: ' بازگشت', textStyle: AppFonts.yekan18.copyWith(color: AppColor.error), onPressed: () { - Get.until((route) => route.settings.name == ChickenRoutes.salesInProvince); + Get + ..back() + ..back(); }, ), ), diff --git a/packages/chicken/lib/presentation/pages/sales_out_of_province/view.dart b/packages/chicken/lib/presentation/pages/sales_out_of_province/view.dart index a2ee38f..ba334bb 100644 --- a/packages/chicken/lib/presentation/pages/sales_out_of_province/view.dart +++ b/packages/chicken/lib/presentation/pages/sales_out_of_province/view.dart @@ -1,5 +1,4 @@ import 'package:flutter/material.dart'; -import 'package:rasadyar_chicken/presentation/pages/sales_out_of_province_buyers/view.dart'; import 'package:rasadyar_chicken/presentation/pages/sales_out_of_province_sales_list/view.dart'; import 'package:rasadyar_chicken/presentation/widget/base_page/view.dart'; import 'package:rasadyar_chicken/presentation/widget/filter_bottom_sheet.dart'; @@ -21,14 +20,8 @@ class SalesOutOfProvincePage extends GetView { filteringWidget: filterBottomSheet(), widgets: [ inventoryWidget(controller.rootLogic), - segmentWidget(), - Expanded( - child: ObxValue((index) { - return index.value == 0 - ? SalesOutOfProvinceSalesListPage() - : SalesOutOfProvinceBuyersPage(); - }, controller.selectedSegmentIndex), - ), + + Expanded(child: SalesOutOfProvinceSalesListPage()), ], ); } @@ -61,5 +54,4 @@ class SalesOutOfProvincePage extends GetView { onChangedToDate: (jalali) => controller.toDateFilter.value = jalali, onSubmit: () => controller.submitFilter(), ); - } diff --git a/packages/chicken/lib/presentation/pages/sales_out_of_province_sales_list/view.dart b/packages/chicken/lib/presentation/pages/sales_out_of_province_sales_list/view.dart index 20f5f46..1b36690 100644 --- a/packages/chicken/lib/presentation/pages/sales_out_of_province_sales_list/view.dart +++ b/packages/chicken/lib/presentation/pages/sales_out_of_province_sales_list/view.dart @@ -1,8 +1,10 @@ +import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:rasadyar_chicken/data/models/response/out_province_carcasses_buyer/out_province_carcasses_buyer.dart'; import 'package:rasadyar_chicken/data/models/response/roles_products/roles_products.dart'; import 'package:rasadyar_chicken/data/models/response/steward_free_sale_bar/steward_free_sale_bar.dart'; +import 'package:rasadyar_chicken/presentation/routes/routes.dart'; import 'package:rasadyar_chicken/presentation/widget/list_item/list_item.dart'; import 'package:rasadyar_chicken/presentation/widget/list_row_item.dart'; import 'package:rasadyar_core/core.dart'; @@ -44,10 +46,23 @@ class SalesOutOfProvinceSalesListPage extends GetView SizedBox(height: 8.h), ); }, controller.salesList), - floatingActionButton: RFab.add( - onPressed: () { - Get.bottomSheet(addOrEditSaleBottomSheet(), isScrollControlled: true); - }, + floatingActionButton: Row( + children: [ + RFab.add( + onPressed: () { + Get.bottomSheet(addOrEditSaleBottomSheet(), isScrollControlled: true); + }, + ), + Spacer(), + RFab( + icon: Icon(CupertinoIcons.person_add_solid, color: Colors.white, size: 35.w), + backgroundColor: AppColor.blueNormal, + onPressed: () { + Get.toNamed(ChickenRoutes.salesOutOfProvinceBuyer, id: 1); + }, + ), + SizedBox(width: 25), + ], ), floatingActionButtonLocation: FloatingActionButtonLocation.startFloat, ); diff --git a/packages/chicken/lib/presentation/pages/segmentation/logic.dart b/packages/chicken/lib/presentation/pages/segmentation/logic.dart index 5d11df4..1c4ed0d 100644 --- a/packages/chicken/lib/presentation/pages/segmentation/logic.dart +++ b/packages/chicken/lib/presentation/pages/segmentation/logic.dart @@ -77,17 +77,15 @@ class SegmentationLogic extends GetxController { void clearForm() { weightController.text = '0'; selectedSegment.value = null; - } void validateForm() { - isSubmitButtonEnabled = RxBool( + var weight = int.tryParse(weightController.text.clearComma.trim()); + isSubmitButtonEnabled.value = selectedProduct.value != null && - selectedSegment.value != null && weightController.text.isNotEmpty && - int.tryParse(weightController.text) != null && - int.tryParse(weightController.text)! > 0, - ); + weight! > 0 + ; } Future getAllSegmentation([bool isLoadingMore = false]) async { diff --git a/packages/chicken/lib/presentation/routes/pages.dart b/packages/chicken/lib/presentation/routes/pages.dart index abab154..531fa16 100644 --- a/packages/chicken/lib/presentation/routes/pages.dart +++ b/packages/chicken/lib/presentation/routes/pages.dart @@ -19,6 +19,7 @@ import 'package:rasadyar_chicken/presentation/pages/sales_in_province/view.dart' import 'package:rasadyar_chicken/presentation/pages/sales_out_of_province/logic.dart'; import 'package:rasadyar_chicken/presentation/pages/sales_out_of_province/view.dart'; import 'package:rasadyar_chicken/presentation/pages/sales_out_of_province_buyers/logic.dart'; +import 'package:rasadyar_chicken/presentation/pages/sales_out_of_province_buyers/view.dart'; import 'package:rasadyar_chicken/presentation/pages/sales_out_of_province_sales_list/logic.dart'; import 'package:rasadyar_chicken/presentation/pages/segmentation/logic.dart'; import 'package:rasadyar_chicken/presentation/routes/routes.dart'; @@ -79,6 +80,17 @@ sealed class ChickenPages { Get.lazyPut(() => SalesOutOfProvinceSalesListLogic()); }), ), + GetPage( + name: ChickenRoutes.salesOutOfProvinceBuyer, + page: () => SalesOutOfProvinceBuyersPage(), + middlewares: [AuthMiddleware()], + binding: BindingsBuilder(() { + Get.lazyPut(() => SearchLogic()); + Get.lazyPut(() => SalesOutOfProvinceLogic()); + Get.lazyPut(() => SalesOutOfProvinceBuyersLogic()); + Get.lazyPut(() => SalesOutOfProvinceSalesListLogic()); + }), + ), GetPage( name: ChickenRoutes.salesInProvince, page: () => SalesInProvincePage(), diff --git a/packages/chicken/lib/presentation/routes/routes.dart b/packages/chicken/lib/presentation/routes/routes.dart index ba16f5d..f880d94 100644 --- a/packages/chicken/lib/presentation/routes/routes.dart +++ b/packages/chicken/lib/presentation/routes/routes.dart @@ -15,6 +15,7 @@ sealed class ChickenRoutes { //sales static const salesInProvince = '$sale/SalesInProvince'; static const salesOutOfProvince = '$sale/saleOutOfProvince'; + static const salesOutOfProvinceBuyer = '$sale/saleOutOfProvinceBuyer '; } diff --git a/packages/chicken/lib/presentation/widget/widely_used/view.dart b/packages/chicken/lib/presentation/widget/widely_used/view.dart index bec4f71..26db171 100644 --- a/packages/chicken/lib/presentation/widget/widely_used/view.dart +++ b/packages/chicken/lib/presentation/widget/widely_used/view.dart @@ -20,7 +20,7 @@ class WidelyUsedWidget extends StatelessWidget { mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ Text('پر کاربرد ها', textAlign: TextAlign.right, style: AppFonts.yekan16), - ObxValue((data) { + /* ObxValue((data) { return GestureDetector( onTap: () { controller.toggleType(); @@ -37,32 +37,73 @@ class WidelyUsedWidget extends StatelessWidget { colorFilter: ColorFilter.mode(AppColor.blueNormal, BlendMode.srcIn), ), ); - }, controller.type), + }, controller.type)*/ ], ), ), Padding( padding: const EdgeInsets.symmetric(horizontal: 2.0, vertical: 2), - child: ObxValue((data) { - return Wrap( - spacing: 4, - runSpacing: 18, - children: [ - widelyUsed( - title: 'خرید خارج استان', - isOnEdit: controller.type.value == WidelyUsedType.edit, - iconPath: Assets.vec.truckFastSvg.path, - onTap: () async { - controller.rootLogic.currentPage.value = 0; - controller.rootLogic.currentPage.refresh(); - await Future.delayed(Duration(milliseconds: 100)); - Get.toNamed(ChickenRoutes.buysOutOfProvince, id: 0); - }, - ), - ], - ); - }, controller.type), + child: Wrap( + spacing: 15, + runSpacing: 8, + children: [ + widelyUsed( + title: 'خرید خارج استان', + iconPath: Assets.vec.truckFastSvg.path, + isOnEdit: false, + + cardColor: AppColor.greenLightActive, + labelColor: AppColor.greenNormal, + textColor: AppColor.greenDarkHover, + onTap: () async { + controller.rootLogic.currentPage.value = 0; + controller.rootLogic.currentPage.refresh(); + await Future.delayed(Duration(milliseconds: 100)); + Get.toNamed(ChickenRoutes.buysOutOfProvince, id: 0); + }, + ), + + widelyUsed( + title: 'خرید داخل استان', + iconPath: Assets.vec.cubeSvg.path, + cardColor: AppColor.greenLightActive, + labelColor: AppColor.greenNormal, + textColor: AppColor.greenDarkHover, + onTap: () async { + controller.rootLogic.currentPage.value = 0; + controller.rootLogic.currentPage.refresh(); + await Future.delayed(Duration(milliseconds: 100)); + Get.toNamed(ChickenRoutes.buysInProvince, id: 0); + }, + isOnEdit: false, + ), + + widelyUsed( + title: 'فروش خارج استان', + iconPath: Assets.vec.truckFastSvg.path, + isOnEdit: false, + onTap: () async { + controller.rootLogic.currentPage.value = 1; + controller.rootLogic.currentPage.refresh(); + await Future.delayed(Duration(milliseconds: 100)); + Get.toNamed(ChickenRoutes.salesOutOfProvince, id: 1); + }, + ), + + widelyUsed( + title: 'فروش داخل استان', + iconPath: Assets.vec.cubeSvg.path, + isOnEdit: false, + onTap: () async { + controller.rootLogic.currentPage.value = 1; + controller.rootLogic.currentPage.refresh(); + await Future.delayed(Duration(milliseconds: 100)); + Get.toNamed(ChickenRoutes.salesInProvince, id: 1); + }, + ), + ], + ), ), ], ); @@ -73,6 +114,9 @@ class WidelyUsedWidget extends StatelessWidget { required String iconPath, required VoidCallback onTap, required bool isOnEdit, + Color? cardColor, + Color? labelColor, + Color? textColor, }) { return GestureDetector( onTap: !isOnEdit ? onTap : null, @@ -89,14 +133,14 @@ class WidelyUsedWidget extends StatelessWidget { height: 48, padding: EdgeInsets.all(4), decoration: ShapeDecoration( - color: Color(0xFFBECDFF), + color: cardColor ?? Color(0xFFBECDFF), shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(8)), ), child: Container( width: 40, height: 40, decoration: ShapeDecoration( - color: AppColor.blueNormal, + color: labelColor ?? AppColor.blueNormal, shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(8)), ), child: SvgGenImage.vec(iconPath).svg( @@ -146,7 +190,7 @@ class WidelyUsedWidget extends StatelessWidget { ), ], ), - Text(title, style: AppFonts.yekan10.copyWith(color: AppColor.blueNormal)), + Text(title, style: AppFonts.yekan10.copyWith(color: textColor ?? AppColor.blueNormal)), ], ), ); diff --git a/packages/core/lib/infrastructure/local/hive_local_storage.dart b/packages/core/lib/infrastructure/local/hive_local_storage.dart index d164dbf..fb3142e 100644 --- a/packages/core/lib/infrastructure/local/hive_local_storage.dart +++ b/packages/core/lib/infrastructure/local/hive_local_storage.dart @@ -2,14 +2,14 @@ import 'package:flutter/foundation.dart'; import 'package:rasadyar_core/core.dart'; class HiveLocalStorage implements ILocalStorage { - HiveLocalStorage() { - Hive.initFlutter(); - } - - final Map _boxes = {}; - @override - Future init() async => await Hive.initFlutter(); + Future init() async { + if (kIsWeb) { + Hive.init('hive_storage_rasadyar'); + } else { + await Hive.initFlutter(); + } + } @override Future openBox( @@ -20,13 +20,13 @@ class HiveLocalStorage implements ILocalStorage { Uint8List? bytes, String? collection, }) async { - if (!_boxes.containsKey(boxName)) { - final box = await Hive.openBox( + var exist = await Hive.boxExists(boxName); + if (!exist || !Hive.isBoxOpen(boxName)) { + await Hive.openBox( boxName, encryptionCipher: encryptionCipher, crashRecovery: crashRecovery, ); - _boxes[boxName] = box; } } @@ -42,10 +42,10 @@ class HiveLocalStorage implements ILocalStorage { } @override - T? readBox({required String boxName}) { + List? readBox({required String boxName}) { try { - Box? box = getBox(boxName); - return box?.values as T?; + Box? box = getBox(boxName); + return box?.values.cast().toList(); } on Exception catch (e) { eLog(e); return null; @@ -53,55 +53,51 @@ class HiveLocalStorage implements ILocalStorage { } @override - Future add({required String boxName, required dynamic value}) async { - Box? box = getBox(boxName); + Future add({required String boxName, required dynamic value}) async { + Box? box = getBox(boxName); await box?.add(value); } @override - Future addAll({required String boxName, required Iterable values}) async { - Box? box = getBox(boxName); + Future addAll({required String boxName, required Iterable values}) async { + Box? box = getBox(boxName); await box?.addAll(values); } Box? getBox(String boxName) { - final box = _boxes[boxName]; - if (box is Box) { - return box; - } else { - throw Exception('Box $boxName is not of exist'); - } + final box = Hive.box(boxName); + return box; } @override Future clear(String boxName) async { - await _boxes[boxName]?.clear(); + await Hive.box(boxName).clear(); } @override - Future close(String boxName) async => await _boxes[boxName]?.close(); + Future close(String boxName) async => await Hive.box(boxName).close(); @override - Future deleteValue({required String boxName, required String key}) async { - Box? box = getBox(boxName); + Future deleteValue({required String boxName, required String key}) async { + Box? box = getBox(boxName); await box?.delete(key); } @override - Future save({required String boxName, required String key, required value}) async { - Box? box = getBox(boxName); + Future save({required String boxName, required String key, required value}) async { + Box? box = getBox(boxName); await box?.put(key, value); } @override - Future saveAll({required String boxName, required Map entries}) async { - Box? box = getBox(boxName); + Future saveAll({required String boxName, required Map entries}) async { + Box? box = getBox(boxName); await box?.putAll(entries); } @override - Future saveAt({required String boxName, required int index, required value}) async { - Box? box = getBox(boxName); + Future saveAt({required String boxName, required int index, required value}) async { + Box? box = getBox(boxName); await box?.putAt(index, value); } } diff --git a/packages/core/lib/infrastructure/local/i_local_storage.dart b/packages/core/lib/infrastructure/local/i_local_storage.dart index 98e6c5b..55026de 100644 --- a/packages/core/lib/infrastructure/local/i_local_storage.dart +++ b/packages/core/lib/infrastructure/local/i_local_storage.dart @@ -15,32 +15,21 @@ abstract class ILocalStorage { T? read({required String boxName, required String key}); - T? readBox({required String boxName}); + List? readBox({required String boxName}); - Future deleteValue({required String boxName, required String key}); + Future deleteValue({required String boxName, required String key}); - Future add({required String boxName, required E value}); + Future add({required String boxName, required E value}); - Future addAll({required String boxName, required Iterable values}); + Future addAll({required String boxName, required Iterable values}); Future clear(String boxName); Future close(String boxName); - Future save({ - required String boxName, - required String key, - required dynamic value, - }); + Future save({required String boxName, required String key, required dynamic value}); - Future saveAt({ - required String boxName, - required int index, - required dynamic value, - }); + Future saveAt({required String boxName, required int index, required dynamic value}); - Future saveAll({ - required String boxName, - required Map entries, - }); + Future saveAll({required String boxName, required Map entries}); } diff --git a/packages/core/lib/infrastructure/remote/dio_remote.dart b/packages/core/lib/infrastructure/remote/dio_remote.dart index c5160ab..a4f7459 100644 --- a/packages/core/lib/infrastructure/remote/dio_remote.dart +++ b/packages/core/lib/infrastructure/remote/dio_remote.dart @@ -15,10 +15,12 @@ class DioRemote implements IHttpClient { if (kDebugMode) { dio.interceptors.add( PrettyDioLogger( - requestHeader: true, - responseHeader: true, - requestBody: true, - responseBody: true, + request: false, + enabled: false, + requestHeader: false, + responseHeader: false, + requestBody: false, + responseBody: false, ), ); } diff --git a/packages/core/lib/presentation/common/app_fonts.dart b/packages/core/lib/presentation/common/app_fonts.dart index a4d3f7c..e7daed0 100644 --- a/packages/core/lib/presentation/common/app_fonts.dart +++ b/packages/core/lib/presentation/common/app_fonts.dart @@ -100,11 +100,11 @@ class AppFonts { ); - static const TextStyle yekan10 = TextStyle( + static TextStyle yekan10 = TextStyle( // Rounded from 10.24 fontFamily: yekan, fontWeight: regular, - fontSize: 10, + fontSize: 10.sp, height: _height, ); diff --git a/packages/core/test/infrastructure/local/hive_local_storage.dart b/packages/core/test/infrastructure/local/hive_local_storage.dart index 52f98da..37e2dd4 100644 --- a/packages/core/test/infrastructure/local/hive_local_storage.dart +++ b/packages/core/test/infrastructure/local/hive_local_storage.dart @@ -1,7 +1,7 @@ import 'package:flutter/foundation.dart'; import 'package:rasadyar_core/core.dart'; - class HiveLocalStorage implements ILocalStorage { +class HiveLocalStorage implements ILocalStorage { HiveLocalStorage() { Hive.initFlutter(); } @@ -42,16 +42,13 @@ import 'package:rasadyar_core/core.dart'; } @override - Future add({required String boxName, required dynamic value}) async { + Future add({required String boxName, required dynamic value}) async { Box? box = getBox(boxName); await box?.add(value); } @override - Future addAll({ - required String boxName, - required Iterable values, - }) async { + Future addAll({required String boxName, required Iterable values}) async { Box? box = getBox(boxName); await box?.addAll(values); } @@ -67,44 +64,39 @@ import 'package:rasadyar_core/core.dart'; @override Future clear(String boxName) async { - await _boxes[boxName]?.clear(); + await Hive.box(boxName).clear(); } @override Future close(String boxName) async => await _boxes[boxName]?.close(); @override - Future deleteValue({ - required String boxName, - required String key, - }) async { - Box? box = getBox(boxName); + Future deleteValue({required String boxName, required String key}) async { + Box? box = getBox(boxName); await box?.delete(key); } @override - Future save({ - required String boxName, - required String key, - required value, - }) async { - Box? box = getBox(boxName); + Future save({required String boxName, required String key, required value}) async { + Box? box = getBox(boxName); await box?.put(key, value); } @override - Future saveAll({required String boxName, required Map entries}) async { - Box? box = getBox(boxName); + Future saveAll({required String boxName, required Map entries}) async { + Box? box = getBox(boxName); await box?.putAll(entries); } @override - Future saveAt({ - required String boxName, - required int index, - required value, - }) async { - Box? box = getBox(boxName); + Future saveAt({required String boxName, required int index, required value}) async { + Box? box = getBox(boxName); await box?.putAt(index, value); } + + @override + T? readBox({required String boxName}) { + // TODO: implement readBox + throw UnimplementedError(); + } } diff --git a/pubspec.yaml b/pubspec.yaml index 33a89a4..4008ff1 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -1,7 +1,7 @@ name: rasadyar_app description: "A new Flutter project." publish_to: 'none' -version: 1.3.0+2 +version: 1.3.2+3 environment: sdk: ^3.8.1