diff --git a/assets/icons/bg_header_user_profile.svg b/assets/icons/bg_header_user_profile.svg new file mode 100644 index 0000000..3fdb2f5 --- /dev/null +++ b/assets/icons/bg_header_user_profile.svg @@ -0,0 +1,3 @@ + + + diff --git a/assets/icons/excel_download.svg b/assets/icons/excel_download.svg new file mode 100644 index 0000000..a1c7e4b --- /dev/null +++ b/assets/icons/excel_download.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/assets/icons/information.svg b/assets/icons/information.svg new file mode 100644 index 0000000..1ae3840 --- /dev/null +++ b/assets/icons/information.svg @@ -0,0 +1,3 @@ + + + diff --git a/assets/icons/pdf_download.svg b/assets/icons/pdf_download.svg new file mode 100644 index 0000000..bb80401 --- /dev/null +++ b/assets/icons/pdf_download.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/assets/icons/picture_frame.svg b/assets/icons/picture_frame.svg new file mode 100644 index 0000000..1aa2bc8 --- /dev/null +++ b/assets/icons/picture_frame.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/assets/icons/receipt_discount.svg b/assets/icons/receipt_discount.svg new file mode 100644 index 0000000..1f41ab6 --- /dev/null +++ b/assets/icons/receipt_discount.svg @@ -0,0 +1,4 @@ + + + + diff --git a/assets/icons/tag_user.svg b/assets/icons/tag_user.svg new file mode 100644 index 0000000..a7e464a --- /dev/null +++ b/assets/icons/tag_user.svg @@ -0,0 +1,3 @@ + + + diff --git a/assets/icons/user.svg b/assets/icons/user.svg new file mode 100644 index 0000000..af27d7c --- /dev/null +++ b/assets/icons/user.svg @@ -0,0 +1,4 @@ + + + + diff --git a/assets/icons/user_square.svg b/assets/icons/user_square.svg new file mode 100644 index 0000000..c2de783 --- /dev/null +++ b/assets/icons/user_square.svg @@ -0,0 +1,4 @@ + + + + diff --git a/assets/vec/bg_header_user_profile.svg.vec b/assets/vec/bg_header_user_profile.svg.vec new file mode 100644 index 0000000..c58f58c Binary files /dev/null and b/assets/vec/bg_header_user_profile.svg.vec differ diff --git a/assets/vec/excel_download.svg.vec b/assets/vec/excel_download.svg.vec new file mode 100644 index 0000000..623671d Binary files /dev/null and b/assets/vec/excel_download.svg.vec differ diff --git a/assets/vec/information.svg.vec b/assets/vec/information.svg.vec new file mode 100644 index 0000000..80fe416 Binary files /dev/null and b/assets/vec/information.svg.vec differ diff --git a/assets/vec/pdf_download.svg.vec b/assets/vec/pdf_download.svg.vec new file mode 100644 index 0000000..b74b222 Binary files /dev/null and b/assets/vec/pdf_download.svg.vec differ diff --git a/assets/vec/picture_frame.svg.vec b/assets/vec/picture_frame.svg.vec new file mode 100644 index 0000000..1a0551d Binary files /dev/null and b/assets/vec/picture_frame.svg.vec differ diff --git a/assets/vec/receipt_discount.svg.vec b/assets/vec/receipt_discount.svg.vec new file mode 100644 index 0000000..851be37 Binary files /dev/null and b/assets/vec/receipt_discount.svg.vec differ diff --git a/assets/vec/tag_user.svg.vec b/assets/vec/tag_user.svg.vec new file mode 100644 index 0000000..e90f06b Binary files /dev/null and b/assets/vec/tag_user.svg.vec differ diff --git a/assets/vec/user.svg.vec b/assets/vec/user.svg.vec new file mode 100644 index 0000000..9455e63 Binary files /dev/null and b/assets/vec/user.svg.vec differ diff --git a/assets/vec/user_square.svg.vec b/assets/vec/user_square.svg.vec new file mode 100644 index 0000000..85abcce Binary files /dev/null and b/assets/vec/user_square.svg.vec differ diff --git a/features/supervision/lib/presentation/action/logic.dart b/features/supervision/lib/presentation/action/logic.dart index f9cdbce..34a4ec6 100644 --- a/features/supervision/lib/presentation/action/logic.dart +++ b/features/supervision/lib/presentation/action/logic.dart @@ -1,10 +1,12 @@ import 'package:rasadyar_core/core.dart'; +import 'package:rasadyar_core/data/utils.dart'; class ActionLogic extends GetxController with GetTickerProviderStateMixin { late Rx slidController; bool showSlideHint = true; - RxBool isExpanded = false.obs; + RxInt selectedIndex = 0.obs; + RxInt previousIndex = 0.obs; List headersTitle = [ 'کاربران', @@ -20,10 +22,31 @@ class ActionLogic extends GetxController with GetTickerProviderStateMixin { Assets.vecLogoutSvg, ]; + RxList supervisionHistoryList = [false, false, false, false].obs; + + List tmpLs = ['دولتی', 'غیر دولتی', 'استیجاری', 'شخصی', 'سایر']; + + List hamadanCities = [ + 'همدان', + 'ملایر', + 'نهاوند', + 'تویسرکان', + 'اسدآباد', + 'بهار', + 'رزن', + 'کبودرآهنگ', + 'فامنین', + 'لالجین', + ]; + + RxInt filter1Index = 0.obs; + RxInt filter2Index = 0.obs; + @override void onInit() { super.onInit(); slidController = SlidableController(this).obs; + } @override @@ -38,7 +61,6 @@ class ActionLogic extends GetxController with GetTickerProviderStateMixin { super.onClose(); } - Future triggerSlidableAnimation() async { await Future.delayed(Duration(milliseconds: 200)); await slidController.value.openEndActionPane(); @@ -47,4 +69,12 @@ class ActionLogic extends GetxController with GetTickerProviderStateMixin { showSlideHint = !showSlideHint; } + + void updateSelectedIndex(int index) { + if(index == selectedIndex.value) { + return; + } + previousIndex.value = selectedIndex.value; + selectedIndex.value = index; + } } diff --git a/features/supervision/lib/presentation/action/view.dart b/features/supervision/lib/presentation/action/view.dart index 9f58b3f..37917a1 100644 --- a/features/supervision/lib/presentation/action/view.dart +++ b/features/supervision/lib/presentation/action/view.dart @@ -1,5 +1,9 @@ +import 'dart:io'; + +import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; import 'package:rasadyar_core/core.dart'; +import 'package:rasadyar_core/presentation/widget/buttons/elevated.dart'; import 'logic.dart'; @@ -22,7 +26,8 @@ class ActionPage extends GetView { icon: controller.headersIcons[index], title: controller.headersTitle[index], onTap: () { - controller.selectedIndex.value = index; + controller.updateSelectedIndex(index); + }, isSelected: controller.selectedIndex.value == index, ); @@ -30,16 +35,63 @@ class ActionPage extends GetView { ); }, controller.selectedIndex), Expanded( - child: ObxValue( - (index) => switch (index.value) { + child: ObxValue((index) { + if (index.value == 3) { + WidgetsBinding.instance.addPostFrameCallback((_) { + showCupertinoDialog( + context: context, + barrierDismissible: true, + builder: (context) { + return CupertinoAlertDialog( + title: Text( + 'از سامانه خارج می شوید؟', + style: AppFonts.yekan18.copyWith( + color: AppColor.lightGreyDarkActive, + ), + ), + actions: [ + Padding( + padding: const EdgeInsets.all(8.0), + child: Row( + spacing: 16, + children: [ + Expanded( + child: RElevated( + text: 'بله', + onPressed: () { + exit(0); + }, + ), + ), + Expanded( + child: ROutlinedElevated( + text: 'خیر', + onPressed: () { + + controller.updateSelectedIndex(controller.previousIndex.value); + + Get.back(); + }, + ), + ), + ], + ), + ), + ], + ); + }, + ); + }); + } + + return switch (index.value) { 0 => profileWidget(), - 1 => slidableWidgetTwo(), - 2 => slidableWidgetOne(), - 3 => slidableWidgetOne(), - int() => Placeholder(), - }, - controller.selectedIndex, - ), + 1 => supervisionHistoryWidget(), + 2 => statisticsWidget(), + + int() => Container(), + }; + }, controller.selectedIndex), ), ], ), @@ -47,6 +99,112 @@ class ActionPage extends GetView { ); } + Container statisticsWidget() => Container( + margin: EdgeInsets.only(top: 50), + padding: EdgeInsets.symmetric(horizontal: 35, vertical: 50), + decoration: BoxDecoration( + color: Colors.white, + borderRadius: BorderRadius.only( + topLeft: Radius.circular(30), + topRight: Radius.circular(30), + ), + ), + child: Column( + children: [ + Container( + height: 32, + margin: EdgeInsets.only(top: 10, left: 22, right: 22), + + child: Row( + mainAxisAlignment: MainAxisAlignment.start, + crossAxisAlignment: CrossAxisAlignment.center, + spacing: 10, + children: [ + Expanded( + child: ROutlinedElevatedIcon( + icon: FaIcon(FontAwesomeIcons.calendar), + onPressed: () {}, + text: 'از تاریخ', + textStyle: AppFonts.yekan16.copyWith( + color: AppColor.blueNormal, + ), + ), + ), + Expanded( + child: ROutlinedElevatedIcon( + icon: FaIcon(FontAwesomeIcons.calendar), + onPressed: () {}, + text: 'تا تاریخ', + textStyle: AppFonts.yekan16.copyWith( + color: AppColor.blueNormal, + ), + ), + ), + ], + ), + ), + optionWidget( + selected: controller.filter1Index, + title: 'فیلترتراکنش ها', + options: controller.tmpLs, + ), + optionWidget( + selected: controller.filter2Index, + title: 'فیلتر شهرستان', + options: controller.hamadanCities, + ), + + SizedBox(height: 10), + Row( + mainAxisAlignment: MainAxisAlignment.end, + + children: [ + vecWidgetWithOnTap( + assets: Assets.vecPdfDownloadSvg, + onTap: () {}, + width: 64, + height: 64, + ), + vecWidgetWithOnTap( + assets: Assets.vecExcelDownloadSvg, + onTap: () {}, + width: 64, + height: 64, + ), + ], + ), + SizedBox(height: 16), + Row( + mainAxisAlignment: MainAxisAlignment.center, + spacing: 25, + children: [ + headerInfo(title: 'تعداد تراکنش ها', description: '183 '), + headerInfo( + title: 'جمع تراکنش ها', + description: '183 ریال', + background: AppColor.green1Light, + ), + ], + ), + ], + ), + ); + + Widget supervisionHistoryWidget() { + return ObxValue((data) { + return ListView.builder( + itemBuilder: (context, index) { + return historyItem(data[index], () { + data[index] = !data[index]; + }); + }, + shrinkWrap: true, + physics: BouncingScrollPhysics(), + itemCount: data.length, + ); + }, controller.supervisionHistoryList); + } + Column profileWidget() { return Column( children: [ @@ -195,138 +353,363 @@ class ActionPage extends GetView { ); } - Widget slidableWidgetTwo() { - return ObxValue((data) { - return Padding( - padding: const EdgeInsets.symmetric(horizontal: 30, vertical: 20), - child: GestureDetector( - onTap: (){ - controller.isExpanded.value = !controller.isExpanded.value; - }, - child: AnimatedContainer( - duration: Duration(milliseconds: 2000), - height: data.value ? 370 : 62, - child: - data.value - ? Container(color: Colors.yellow,height: 80,width: 180,) - : Slidable( - key: Key('selectedLocationWidget'), - controller: controller.slidController.value, - endActionPane: ActionPane( - motion: StretchMotion(), + Widget slidableWidgetTwo({required VoidCallback onTap}) { + return Slidable( + key: Key('selectedLocationWidget'), + controller: controller.slidController.value, + endActionPane: ActionPane( + motion: StretchMotion(), + children: [ + CustomSlidableAction( + onPressed: (context) {}, + backgroundColor: AppColor.blueNormal, + foregroundColor: Colors.white, + padding: EdgeInsets.all(16), + borderRadius: BorderRadius.only( + topRight: Radius.circular(8), + bottomRight: Radius.circular(8), + ), + autoClose: true, + child: vecWidget(Assets.vecEditSvg, width: 24, height: 24), + ), + CustomSlidableAction( + onPressed: (context) {}, + backgroundColor: AppColor.redNormal, + foregroundColor: Colors.white, + padding: EdgeInsets.all(16), + borderRadius: BorderRadius.only( + topLeft: Radius.circular(8), + bottomLeft: Radius.circular(8), + ), + autoClose: true, + child: vecWidget(Assets.vecTrashSvg, width: 24, height: 24), + ), + ], + ), + child: GestureDetector( + onTap: onTap, + child: Container( + height: 62, + padding: EdgeInsets.symmetric(horizontal: 20, vertical: 15), + decoration: BoxDecoration( + color: Colors.white, + borderRadius: BorderRadius.circular(8), + border: Border.all(width: 1, color: AppColor.blackLightHover), + ), + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Column( + spacing: 4, children: [ - CustomSlidableAction( - onPressed: (context) {}, - backgroundColor: AppColor.blueNormal, - foregroundColor: Colors.white, - padding: EdgeInsets.all(16), - borderRadius: BorderRadius.only( - topRight: Radius.circular(8), - bottomRight: Radius.circular(8), - ), - autoClose: true, - child: vecWidget( - Assets.vecEditSvg, - width: 24, - height: 24, + Text( + 'داود خرم مهری پور', + style: AppFonts.yekan10.copyWith( + color: AppColor.blueNormal, ), ), - CustomSlidableAction( - onPressed: (context) {}, - backgroundColor: AppColor.redNormal, - foregroundColor: Colors.white, - padding: EdgeInsets.all(16), - borderRadius: BorderRadius.only( - topLeft: Radius.circular(8), - bottomLeft: Radius.circular(8), - ), - autoClose: true, - child: vecWidget( - Assets.vecTrashSvg, - width: 24, - height: 24, + Text( + '03295224154', + style: AppFonts.yekan12.copyWith( + color: AppColor.darkGreyDarkHover, ), ), ], ), - child: GestureDetector( - onTap: () {}, - child: Container( - height: 62, - padding: EdgeInsets.symmetric( - horizontal: 20, - vertical: 15, - ), - decoration: BoxDecoration( - color: Colors.white, - borderRadius: BorderRadius.circular(8), - border: Border.all( - width: 1, - color: AppColor.blackLightHover, + Column( + spacing: 4, + children: [ + Text( + 'افزودن کاربر', + style: AppFonts.yekan10.copyWith( + color: AppColor.blueNormal, ), ), - child: Row( - mainAxisAlignment: MainAxisAlignment.spaceBetween, - children: [ - Column( - spacing: 4, - children: [ - Text( - 'داود خرم مهری پور', - style: AppFonts.yekan10.copyWith( - color: AppColor.blueNormal, - ), - ), - Text( - '03295224154', - style: AppFonts.yekan12.copyWith( - color: AppColor.darkGreyDarkHover, - ), - ), - ], - ), - Column( - spacing: 4, - children: [ - Text( - 'افزودن کاربر', - style: AppFonts.yekan10.copyWith( - color: AppColor.blueNormal, - ), - ), - Text( - 'ثبت بازرسی', - style: AppFonts.yekan12.copyWith( - color: AppColor.darkGreyDarkHover, - ), - ), - ], - ), - Column( - spacing: 4, - children: [ - Text( - 'همدان', - style: AppFonts.yekan10.copyWith( - color: AppColor.blueNormal, - ), - ), - Text( - 'همدان', - style: AppFonts.yekan12.copyWith( - color: AppColor.darkGreyDarkHover, - ), - ), - ], - ), - ], + Text( + 'ثبت بازرسی', + style: AppFonts.yekan12.copyWith( + color: AppColor.darkGreyDarkHover, + ), ), - ), + ], ), - ), + Column( + spacing: 4, + children: [ + Text( + 'همدان', + style: AppFonts.yekan10.copyWith( + color: AppColor.blueNormal, + ), + ), + Text( + 'همدان', + style: AppFonts.yekan12.copyWith( + color: AppColor.darkGreyDarkHover, + ), + ), + ], + ), + ], ), ), - ); - }, controller.isExpanded); + ), + ); } + + Widget historyItem(bool isExpanded, VoidCallback onTap) { + return AnimatedContainer( + margin: EdgeInsets.symmetric(horizontal: 30, vertical: 10), + curve: Curves.easeInOut, + duration: Duration(seconds: 1), + height: isExpanded ? 364 : 62, + child: + isExpanded + ? markerDetailsWidget(ontap: onTap) + : slidableWidgetTwo(onTap: onTap), + ); + } + + Widget markerDetailsWidget({required VoidCallback ontap}) { + return GestureDetector( + onTap: ontap, + behavior: HitTestBehavior.opaque, + child: Container( + clipBehavior: Clip.antiAlias, + + padding: EdgeInsets.symmetric(horizontal: 20, vertical: 10), + decoration: ShapeDecoration( + color: Colors.white, + shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(8)), + ), + child: Column( + spacing: 15, + children: [ + Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + spacing: 12, + children: [ + vecWidgetWithOnTap( + assets: Assets.vecEditSvg, + onTap: () {}, + width: 24, + height: 24, + color: AppColor.blueNormal, + ), + Text( + 'سوابق بازرسی من', + textAlign: TextAlign.center, + style: AppFonts.yekan14.copyWith( + color: AppColor.darkGreyDarkHover, + ), + ), + vecWidgetWithOnTap( + assets: Assets.vecTrashSvg, + width: 24, + height: 24, + color: AppColor.redNormal, + onTap: () {}, + ), + ], + ), + Container( + height: 32, + clipBehavior: Clip.antiAlias, + padding: EdgeInsets.symmetric(horizontal: 10, vertical: 4), + decoration: ShapeDecoration( + color: AppColor.blueLight, + shape: RoundedRectangleBorder( + side: BorderSide(width: 1, color: AppColor.blueLightHover), + ), + ), + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Text( + 'تاریخ بازرسی', + textAlign: TextAlign.center, + style: AppFonts.yekan14.copyWith( + color: AppColor.darkGreyDarkHover, + ), + ), + Text( + '1403/12/12', + textAlign: TextAlign.center, + style: AppFonts.yekan14.copyWith( + color: AppColor.darkGreyDarkHover, + ), + ), + ], + ), + ), + + Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Text( + 'شماره همراه', + textAlign: TextAlign.center, + style: AppFonts.yekan14.copyWith( + color: AppColor.darkGreyDarkHover, + ), + ), + Text( + '0326598653', + textAlign: TextAlign.center, + style: AppFonts.yekan14.copyWith( + color: AppColor.darkGreyDarkHover, + ), + ), + ], + ), + Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + crossAxisAlignment: CrossAxisAlignment.center, + + children: [ + Text( + 'آخرین فعالیت', + textAlign: TextAlign.center, + style: AppFonts.yekan14.copyWith( + color: AppColor.darkGreyDarkHover, + ), + ), + + Text( + '1409/12/12', + textAlign: TextAlign.center, + style: AppFonts.yekan14.copyWith( + color: AppColor.darkGreyDarkHover, + ), + ), + ], + ), + Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + crossAxisAlignment: CrossAxisAlignment.center, + + children: [ + Text( + 'موجودی', + textAlign: TextAlign.center, + style: AppFonts.yekan14.copyWith( + color: AppColor.darkGreyDarkHover, + ), + ), + Text( + '5کیلوگرم', + textAlign: TextAlign.center, + style: AppFonts.yekan14.copyWith( + color: AppColor.darkGreyDarkHover, + ), + ), + ], + ), + + ...List.generate( + 5, + (index) => Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + crossAxisAlignment: CrossAxisAlignment.center, + + children: [ + Text( + 'فروش رفته', + textAlign: TextAlign.center, + style: AppFonts.yekan14.copyWith( + color: AppColor.darkGreyDarkHover, + ), + ), + Text( + '0 کیلوگرم', + textAlign: TextAlign.center, + style: AppFonts.yekan14.copyWith( + color: AppColor.darkGreyDarkHover, + ), + ), + ], + ), + ), + ], + ), + ), + ); + } + + Column optionWidget({ + required RxInt selected, + required String title, + required List options, + }) { + return Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + title, + textAlign: TextAlign.center, + style: AppFonts.yekan12.copyWith(color: AppColor.blueNormal), + ), + + Wrap( + runSpacing: 8, + spacing: 8, + children: + options + .map( + (e) => ObxValue((data) { + return ChoiceChip( + onSelected: (value) { + selected.value = options.indexOf(e); + }, + selectedColor: AppColor.blueNormal, + labelStyle: + data.value == options.indexOf(e) + ? AppFonts.yekan13.copyWith( + color: AppColor.whiteLight, + ) + : AppFonts.yekan12.copyWith( + color: AppColor.darkGreyNormalActive, + ), + checkmarkColor: Colors.white, + label: Text(e), + selected: options.indexOf(e) == data.value, + ); + }, selected), + ) + .toList(), + ), + ], + ); + } + + Container headerInfo({ + required String title, + required String description, + Color? background, + }) { + return Container( + clipBehavior: Clip.antiAlias, + padding: EdgeInsets.symmetric(horizontal: 16, vertical: 12), + decoration: ShapeDecoration( + color: background ?? AppColor.blueLight, + shape: RoundedRectangleBorder( + side: BorderSide(width: 1, color: AppColor.blackLightHover), + borderRadius: BorderRadius.circular(8), + ), + ), + alignment: AlignmentDirectional.center, + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + crossAxisAlignment: CrossAxisAlignment.center, + spacing: 10, + children: [ + Text(title, style: AppFonts.yekan10), + + Text(description, style: AppFonts.yekan12), + ], + ), + ); + } + } diff --git a/features/supervision/lib/presentation/filter/view.dart b/features/supervision/lib/presentation/filter/view.dart index 0c6147a..5b4f6eb 100644 --- a/features/supervision/lib/presentation/filter/view.dart +++ b/features/supervision/lib/presentation/filter/view.dart @@ -627,4 +627,5 @@ class SupervisionFilterPage extends GetView { ); } + } diff --git a/features/supervision/lib/presentation/profile/logic.dart b/features/supervision/lib/presentation/profile/logic.dart new file mode 100644 index 0000000..ced5ff0 --- /dev/null +++ b/features/supervision/lib/presentation/profile/logic.dart @@ -0,0 +1,33 @@ +import 'package:rasadyar_core/core.dart'; + +class ProfileLogic extends GetxController { + + + List roles = [ + 'کاربر عادی', + 'کاربر ویژه', + 'کاربر VIP', + 'کاربر نقره ای', + 'کاربر طلایی', + + ]; + + + + + RxInt selectedRole = 0.obs; + RxInt selectedInformationType = 0.obs; + + + @override + void onReady() { + // TODO: implement onReady + super.onReady(); + } + + @override + void onClose() { + // TODO: implement onClose + super.onClose(); + } +} diff --git a/features/supervision/lib/presentation/profile/view.dart b/features/supervision/lib/presentation/profile/view.dart new file mode 100644 index 0000000..7c2b49e --- /dev/null +++ b/features/supervision/lib/presentation/profile/view.dart @@ -0,0 +1,257 @@ +import 'package:flutter/material.dart'; +import 'package:rasadyar_core/core.dart'; + +import 'logic.dart'; + +class ProfilePage extends GetView { + const ProfilePage({super.key}); + + @override + Widget build(BuildContext context) { + return Column( + spacing: 30, + children: [ + SizedBox( + height: Get.height * 0.3, + child: Stack( + fit: StackFit.expand, + alignment: Alignment.center, + clipBehavior: Clip.none, + children: [ + vecWidget(Assets.vecBgHeaderUserProfileSvg, fit: BoxFit.cover), + + Positioned( + bottom: -20, + left: 0, + right: 0, + child: SizedBox( + width: 110, + height: 110, + child: CircleAvatar( + backgroundColor: AppColor.blueLightHover, + child: FaIcon( + FontAwesomeIcons.user, + size: 45, + color: Colors.white, + ), + ), + ), + ), + ], + ), + ), + Expanded( + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + + spacing: 16, + children: [ + SizedBox( + height: 75, + child: ListView.separated( + shrinkWrap: true, + padding: EdgeInsets.all(16), + scrollDirection: Axis.horizontal, + itemBuilder: + (context, index) => ObxValue((data) { + return ChoiceChip( + onSelected: (value) { + data.value = index; + }, + selectedColor: AppColor.blueNormal, + labelStyle: + data.value == index + ? AppFonts.yekan13.copyWith( + color: AppColor.whiteLight, + ) + : AppFonts.yekan12.copyWith( + color: AppColor.darkGreyNormalActive, + ), + checkmarkColor: Colors.white, + label: Text(controller.roles[index]), + selected: index == data.value, + ); + }, controller.selectedRole), + + separatorBuilder: (context, index) => SizedBox(width: 8), + itemCount: controller.roles.length, + ), + ), + Padding( + padding: const EdgeInsets.symmetric( + horizontal: 30, + vertical: 10, + ), + child: Expanded( + child: ObxValue((data) { + return switch (data.value) { + 0 => userProfileInformation(), + 1 => bankInformationWidget(), + 2 => invoiceIssuanceInformation(), + int() => Placeholder(), + }; + }, controller.selectedInformationType), + ), + ), + + 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.vecProfileUserSvg, + selected: data.value == 0, + ), + cardActionWidget( + title: 'اطلاعات بانکی', + onPressed: () { + data.value = 1; + }, + icon: Assets.vecInformationSvg, + selected: data.value == 1, + ), + cardActionWidget( + title: 'اطلاعات \nصدور فاکتور', + onPressed: () { + data.value = 2; + }, + icon: Assets.vecReceiptDiscountSvg, + selected: data.value == 2, + ), + ], + ), + ); + }, controller.selectedInformationType), + ], + ), + ), + ], + ); + } + + Container invoiceIssuanceInformation() => Container(); + + Widget bankInformationWidget() => Column( + spacing: 16, + children: [ + itemList(title: 'نام بانک', content: 'سامان'), + itemList(title: 'نام صاحب حساب', content: 'رضا رضایی'), + itemList(title: 'شماره کارت ', content: '54154545415'), + itemList(title: 'شماره حساب', content: '62565263263652'), + itemList(title: 'شماره شبا', content: '62565263263652'), + ], + ); + + Column userProfileInformation() { + return Column( + spacing: 10, + children: [ + itemList( + title: 'نام و نام خانوادگی', + content: 'آیدا گل محمدی', + icon: Assets.vecUserSvg, + ), + itemList( + title: 'موبایل', + content: '09302654896', + icon: Assets.vecCallSvg, + ), + itemList( + title: 'کدملی', + content: 'نا مشخص', + icon: Assets.vecTagUserSvg, + ), + itemList( + title: 'شماره شناسنامه', + content: 'نا مشخص', + icon: Assets.vecUserSquareSvg, + ), + itemList( + title: 'تاریخ تولد', + content: '1404/10/12', + icon: Assets.vecCalendarSvg, + ), + itemList( + title: 'استان', + content: 'لرستان', + icon: Assets.vecPictureFrameSvg, + ), + itemList(title: 'شهر', content: 'خرم آباد', icon: Assets.vecMapSvg), + ], + ); + } + + Widget itemList({ + required String title, + required String content, + String? icon, + }) => Row( + spacing: 4, + children: [ + if (icon != null) + Padding( + padding: const EdgeInsets.only(left: 8.0), + child: vecWidget( + icon, + width: 20, + height: 20, + color: AppColor.blueNormal, + ), + ), + Text(title, style: AppFonts.yekan12.copyWith(color: AppColor.blueNormal)), + Spacer(), + Text( + content, + style: AppFonts.yekan13.copyWith(color: AppColor.darkGreyNormalHover), + ), + ], + ); + + Widget cardActionWidget({ + required String title, + required VoidCallback onPressed, + required String icon, + bool selected = false, + }) { + return GestureDetector( + onTap: onPressed, + child: Column( + spacing: 4, + children: [ + Container( + width: 52, + height: 52, + padding: EdgeInsets.all(8), + decoration: ShapeDecoration( + color: selected ? AppColor.blueLightActive : AppColor.blueLight, + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(8), + ), + ), + child: vecWidget( + icon, + width: 40, + height: 40, + color: selected ? AppColor.blueNormalActive : AppColor.blueNormal, + ), + ), + SizedBox(height: 2), + Text( + title, + style: AppFonts.yekan10.copyWith( + color: selected ? AppColor.blueNormal : AppColor.blueLightActive, + ), + textAlign: TextAlign.center, + ), + ], + ), + ); + } +} diff --git a/features/supervision/lib/presentation/root/logic.dart b/features/supervision/lib/presentation/root/logic.dart index 4d76474..c5d51a7 100644 --- a/features/supervision/lib/presentation/root/logic.dart +++ b/features/supervision/lib/presentation/root/logic.dart @@ -2,18 +2,14 @@ import 'package:flutter/material.dart'; import 'package:get/get.dart'; import 'package:supervision/presentation/action/view.dart'; import 'package:supervision/presentation/filter/view.dart'; +import 'package:supervision/presentation/profile/view.dart'; class RootLogic extends GetxController { RxInt currentIndex = 0.obs; - List pages = [ - SupervisionFilterPage(), - ActionPage(), - Placeholder(color: Colors.amber), - ]; + List pages = [SupervisionFilterPage(), ActionPage(), ProfilePage()]; @override void onReady() { - super.onReady(); } diff --git a/features/supervision/lib/presentation/routes/app_pages.dart b/features/supervision/lib/presentation/routes/app_pages.dart index 07404d2..792d402 100644 --- a/features/supervision/lib/presentation/routes/app_pages.dart +++ b/features/supervision/lib/presentation/routes/app_pages.dart @@ -7,6 +7,8 @@ import 'package:supervision/presentation/display_information/view.dart'; import 'package:supervision/presentation/filter/logic.dart'; import 'package:supervision/presentation/location_details/logic.dart'; import 'package:supervision/presentation/location_details/view.dart'; +import 'package:supervision/presentation/profile/logic.dart'; +import 'package:supervision/presentation/profile/view.dart'; import 'package:supervision/presentation/registration_of_violation/logic.dart'; import 'package:supervision/presentation/registration_of_violation/view.dart'; import 'package:supervision/presentation/root/logic.dart'; @@ -25,6 +27,7 @@ sealed class SupervisionPages { Get.put(SupervisionFilterLogic()); Get.lazyPut(() => LocationDetailsLogic(), fenix: true); Get.lazyPut(() => ActionLogic(), fenix: true); + Get.lazyPut(() => ProfileLogic(), fenix: true); }), ), @@ -43,10 +46,17 @@ sealed class SupervisionPages { name: SupervisionRoutes.supervisionRegistrationOfViolation, page: () => RegistrationOfViolationPage(), binding: BindingsBuilder.put(() => RegistrationOfViolationLogic()), - ), GetPage( + ), + + GetPage( name: SupervisionRoutes.supervisionDisplayInformation, page: () => DisplayInformationPage(), binding: BindingsBuilder.put(() => DisplayInformationLogic()), ), + GetPage( + name: SupervisionRoutes.supervisionUserProfile, + page: () => ProfilePage(), + binding: BindingsBuilder.put(() => ProfileLogic()), + ), ]; } diff --git a/features/supervision/lib/presentation/routes/app_routes.dart b/features/supervision/lib/presentation/routes/app_routes.dart index 011dee1..6397834 100644 --- a/features/supervision/lib/presentation/routes/app_routes.dart +++ b/features/supervision/lib/presentation/routes/app_routes.dart @@ -3,10 +3,11 @@ sealed class SupervisionRoutes { static const supervision = '/supervision'; static const supervisionAction = '$supervision/action'; - static const supervisionUserSetting = '$supervision/userSettings'; + static const supervisionUserProfile = '$supervision/userSettings'; static const supervisionLocationDetails = '$supervision/locationDetails'; static const supervisionAddSupervision = '$supervisionLocationDetails/addSupervision'; static const supervisionRegistrationOfViolation = '$supervisionAddSupervision/RegistrationOfViolation'; static const supervisionDisplayInformation = '$supervisionRegistrationOfViolation/DisplayInformation'; + } diff --git a/lib/main.dart b/lib/main.dart index 0839833..6e2dc9d 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -1,3 +1,4 @@ +import 'package:device_preview/device_preview.dart'; import 'package:flutter/material.dart'; import 'package:get/get.dart'; import 'package:rasadyar_app/domain/service/user/user_service.dart'; @@ -12,6 +13,29 @@ void main() async { await setupAllProvider(); runApp(MyApp()); + // runApp(DevicePreview(builder: (context) => ForDevicePreview(),)); +} + + + +class ForDevicePreview extends StatelessWidget { + const ForDevicePreview({super.key}); + + @override + Widget build(BuildContext context) { + return GetMaterialApp( + useInheritedMediaQuery: true, + locale: DevicePreview.locale(context), + builder: DevicePreview.appBuilder, + title: 'رصدیار', + theme: ThemeData( + colorScheme: ColorScheme.fromSeed(seedColor: AppColor.blueNormal), + ), + initialRoute: AppPages.initRoutes, + initialBinding: BindingsBuilder.put(() => UserService()), + getPages: AppPages.pages, + ); + } } class MyApp extends StatelessWidget { diff --git a/lib/presentation/common/assets.dart b/lib/presentation/common/assets.dart index 0859799..0e70b14 100644 --- a/lib/presentation/common/assets.dart +++ b/lib/presentation/common/assets.dart @@ -5,41 +5,68 @@ class Assets { static const String iconsAdd = 'assets/icons/add.svg'; static const String iconsArrowLeft = 'assets/icons/arrow_left.svg'; static const String iconsArrowRight = 'assets/icons/arrow_right.svg'; + static const String iconsBgHeaderUserProfile = 'assets/icons/bg_header_user_profile.svg'; static const String iconsCalendar = 'assets/icons/calendar.svg'; + static const String iconsCalendarSearch = 'assets/icons/calendar_search.svg'; static const String iconsCall = 'assets/icons/call.svg'; + static const String iconsDiagram = 'assets/icons/diagram.svg'; static const String iconsDownload = 'assets/icons/download.svg'; static const String iconsEdit = 'assets/icons/edit.svg'; + static const String iconsExcelDownload = 'assets/icons/excel_download.svg'; static const String iconsFilter = 'assets/icons/filter.svg'; static const String iconsGps = 'assets/icons/gps.svg'; + static const String iconsInformation = 'assets/icons/information.svg'; static const String iconsKey = 'assets/icons/key.svg'; + static const String iconsLogout = 'assets/icons/logout.svg'; static const String iconsMap = 'assets/icons/map.svg'; static const String iconsMapMarker = 'assets/icons/map_marker.svg'; static const String iconsMessageAdd = 'assets/icons/message_add.svg'; + static const String iconsPdfDownload = 'assets/icons/pdf_download.svg'; + static const String iconsPictureFrame = 'assets/icons/picture_frame.svg'; static const String iconsProfileCircle = 'assets/icons/profile_circle.svg'; + static const String iconsProfileUser = 'assets/icons/profile_user.svg'; + static const String iconsReceiptDiscount = 'assets/icons/receipt_discount.svg'; static const String iconsScan = 'assets/icons/scan.svg'; static const String iconsScanBarcode = 'assets/icons/scan_barcode.svg'; static const String iconsSecurityTime = 'assets/icons/security_time.svg'; static const String iconsSetting = 'assets/icons/setting.svg'; + static const String iconsTagUser = 'assets/icons/tag_user.svg'; static const String iconsTrash = 'assets/icons/trash.svg'; + static const String iconsUser = 'assets/icons/user.svg'; + static const String iconsUserSquare = 'assets/icons/user_square.svg'; static const String imagesInnerSplash = 'assets/images/inner_splash.webp'; static const String imagesOutterSplash = 'assets/images/outter_splash.webp'; static const String vecAddSvg = 'assets/vec/add.svg.vec'; static const String vecArrowLeftSvg = 'assets/vec/arrow_left.svg.vec'; static const String vecArrowRightSvg = 'assets/vec/arrow_right.svg.vec'; + static const String vecBgHeaderUserProfileSvg = 'assets/vec/bg_header_user_profile.svg.vec'; + static const String vecCalendarSearchSvg = 'assets/vec/calendar_search.svg.vec'; + static const String vecCalendarSvg = 'assets/vec/calendar.svg.vec'; static const String vecCallSvg = 'assets/vec/call.svg.vec'; + static const String vecDiagramSvg = 'assets/vec/diagram.svg.vec'; static const String vecDownloadSvg = 'assets/vec/download.svg.vec'; static const String vecEditSvg = 'assets/vec/edit.svg.vec'; + static const String vecExcelDownloadSvg = 'assets/vec/excel_download.svg.vec'; static const String vecFilterSvg = 'assets/vec/filter.svg.vec'; static const String vecGpsSvg = 'assets/vec/gps.svg.vec'; + static const String vecInformationSvg = 'assets/vec/information.svg.vec'; static const String vecKeySvg = 'assets/vec/key.svg.vec'; + static const String vecLogoutSvg = 'assets/vec/logout.svg.vec'; static const String vecMapMarkerSvg = 'assets/vec/map_marker.svg.vec'; static const String vecMapSvg = 'assets/vec/map.svg.vec'; static const String vecMessageAddSvg = 'assets/vec/message_add.svg.vec'; + static const String vecPdfDownloadSvg = 'assets/vec/pdf_download.svg.vec'; + static const String vecPictureFrameSvg = 'assets/vec/picture_frame.svg.vec'; static const String vecProfileCircleSvg = 'assets/vec/profile_circle.svg.vec'; + static const String vecProfileUserSvg = 'assets/vec/profile_user.svg.vec'; + static const String vecReceiptDiscountSvg = 'assets/vec/receipt_discount.svg.vec'; static const String vecScanBarcodeSvg = 'assets/vec/scan_barcode.svg.vec'; static const String vecScanSvg = 'assets/vec/scan.svg.vec'; static const String vecSecurityTimeSvg = 'assets/vec/security_time.svg.vec'; static const String vecSettingSvg = 'assets/vec/setting.svg.vec'; + static const String vecTagUserSvg = 'assets/vec/tag_user.svg.vec'; static const String vecTrashSvg = 'assets/vec/trash.svg.vec'; + static const String vecUserSquareSvg = 'assets/vec/user_square.svg.vec'; + static const String vecUserSvg = 'assets/vec/user.svg.vec'; } diff --git a/lib/presentation/pages/system_design/system_design.dart b/lib/presentation/pages/system_design/system_design.dart index a5b08b5..6c5c04d 100644 --- a/lib/presentation/pages/system_design/system_design.dart +++ b/lib/presentation/pages/system_design/system_design.dart @@ -142,7 +142,7 @@ class _SystemDesignPageState extends State { spacing: 14, children: [ Row(), - +/* RFabOutlined.smallAdd(onPressed: () {}), RFabOutlined.smallAdd(onPressed: null), @@ -153,7 +153,7 @@ class _SystemDesignPageState extends State { RFabOutlined.add(onPressed: null), RFabOutlined.addNoBorder(onPressed: () {}), - RFabOutlined.addNoBorder(onPressed: null), + RFabOutlined.addNoBorder(onPressed: null),*/ ], ), ); @@ -175,7 +175,7 @@ class _SystemDesignPageState extends State { children: [ Row(), - RFab.smallAdd(onPressed: () {}), + /* RFab.smallAdd(onPressed: () {}), RFab.smallAdd(onPressed: null), RFab.add(onPressed: () {}), @@ -221,7 +221,7 @@ class _SystemDesignPageState extends State { RFab.smallBack(onPressed: null), RFab.back(onPressed: () {}), - RFab.back(onPressed: null), + RFab.back(onPressed: null),*/ ], ), ); diff --git a/lib/presentation/widget/buttons/fab.dart b/lib/presentation/widget/buttons/fab.dart index 84a4e8b..360b850 100644 --- a/lib/presentation/widget/buttons/fab.dart +++ b/lib/presentation/widget/buttons/fab.dart @@ -1,3 +1,4 @@ +/* import 'package:flutter/material.dart'; import 'package:rasadyar_app/presentation/common/app_color.dart'; import 'package:rasadyar_app/presentation/common/assets.dart'; @@ -230,3 +231,4 @@ class _RFabState extends State { ); } } +*/ diff --git a/lib/presentation/widget/buttons/fab_outlined.dart b/lib/presentation/widget/buttons/fab_outlined.dart index ecd9ea1..ab6a1ba 100644 --- a/lib/presentation/widget/buttons/fab_outlined.dart +++ b/lib/presentation/widget/buttons/fab_outlined.dart @@ -1,3 +1,4 @@ +/* import 'package:flutter/material.dart'; import 'package:rasadyar_app/presentation/common/app_color.dart'; import 'package:rasadyar_app/presentation/common/assets.dart'; @@ -603,3 +604,4 @@ class _RFabOutlinedState extends State { } } +*/ diff --git a/lib/presentations/common/assets.dart b/lib/presentations/common/assets.dart deleted file mode 100644 index de73abf..0000000 --- a/lib/presentations/common/assets.dart +++ /dev/null @@ -1,54 +0,0 @@ -///This file is automatically generated. DO NOT EDIT, all your changes would be lost. -class Assets { - Assets._(); - - static const String iconsAdd = 'assets/icons/add.svg'; - static const String iconsArrowLeft = 'assets/icons/arrow_left.svg'; - static const String iconsArrowRight = 'assets/icons/arrow_right.svg'; - static const String iconsCalendar = 'assets/icons/calendar.svg'; - static const String iconsCalendarSearch = 'assets/icons/calendar_search.svg'; - static const String iconsCall = 'assets/icons/call.svg'; - static const String iconsDiagram = 'assets/icons/diagram.svg'; - static const String iconsDownload = 'assets/icons/download.svg'; - static const String iconsEdit = 'assets/icons/edit.svg'; - static const String iconsFilter = 'assets/icons/filter.svg'; - static const String iconsGps = 'assets/icons/gps.svg'; - static const String iconsKey = 'assets/icons/key.svg'; - static const String iconsLogout = 'assets/icons/logout.svg'; - static const String iconsMap = 'assets/icons/map.svg'; - static const String iconsMapMarker = 'assets/icons/map_marker.svg'; - static const String iconsMessageAdd = 'assets/icons/message_add.svg'; - static const String iconsProfileCircle = 'assets/icons/profile_circle.svg'; - static const String iconsProfileUser = 'assets/icons/profile_user.svg'; - static const String iconsScan = 'assets/icons/scan.svg'; - static const String iconsScanBarcode = 'assets/icons/scan_barcode.svg'; - static const String iconsSecurityTime = 'assets/icons/security_time.svg'; - static const String iconsSetting = 'assets/icons/setting.svg'; - static const String iconsTrash = 'assets/icons/trash.svg'; - static const String imagesInnerSplash = 'assets/images/inner_splash.webp'; - static const String imagesOutterSplash = 'assets/images/outter_splash.webp'; - static const String vecAddSvg = 'assets/vec/add.svg.vec'; - static const String vecArrowLeftSvg = 'assets/vec/arrow_left.svg.vec'; - static const String vecArrowRightSvg = 'assets/vec/arrow_right.svg.vec'; - static const String vecCalendarSearchSvg = 'assets/vec/calendar_search.svg.vec'; - static const String vecCalendarSvg = 'assets/vec/calendar.svg.vec'; - static const String vecCallSvg = 'assets/vec/call.svg.vec'; - static const String vecDiagramSvg = 'assets/vec/diagram.svg.vec'; - static const String vecDownloadSvg = 'assets/vec/download.svg.vec'; - static const String vecEditSvg = 'assets/vec/edit.svg.vec'; - static const String vecFilterSvg = 'assets/vec/filter.svg.vec'; - static const String vecGpsSvg = 'assets/vec/gps.svg.vec'; - static const String vecKeySvg = 'assets/vec/key.svg.vec'; - static const String vecLogoutSvg = 'assets/vec/logout.svg.vec'; - static const String vecMapMarkerSvg = 'assets/vec/map_marker.svg.vec'; - static const String vecMapSvg = 'assets/vec/map.svg.vec'; - static const String vecMessageAddSvg = 'assets/vec/message_add.svg.vec'; - static const String vecProfileCircleSvg = 'assets/vec/profile_circle.svg.vec'; - static const String vecProfileUserSvg = 'assets/vec/profile_user.svg.vec'; - static const String vecScanBarcodeSvg = 'assets/vec/scan_barcode.svg.vec'; - static const String vecScanSvg = 'assets/vec/scan.svg.vec'; - static const String vecSecurityTimeSvg = 'assets/vec/security_time.svg.vec'; - static const String vecSettingSvg = 'assets/vec/setting.svg.vec'; - static const String vecTrashSvg = 'assets/vec/trash.svg.vec'; - -} diff --git a/packages/core/lib/presentation/common/assets.dart b/packages/core/lib/presentation/common/assets.dart index de73abf..0e70b14 100644 --- a/packages/core/lib/presentation/common/assets.dart +++ b/packages/core/lib/presentation/common/assets.dart @@ -5,50 +5,68 @@ class Assets { static const String iconsAdd = 'assets/icons/add.svg'; static const String iconsArrowLeft = 'assets/icons/arrow_left.svg'; static const String iconsArrowRight = 'assets/icons/arrow_right.svg'; + static const String iconsBgHeaderUserProfile = 'assets/icons/bg_header_user_profile.svg'; static const String iconsCalendar = 'assets/icons/calendar.svg'; static const String iconsCalendarSearch = 'assets/icons/calendar_search.svg'; static const String iconsCall = 'assets/icons/call.svg'; static const String iconsDiagram = 'assets/icons/diagram.svg'; static const String iconsDownload = 'assets/icons/download.svg'; static const String iconsEdit = 'assets/icons/edit.svg'; + static const String iconsExcelDownload = 'assets/icons/excel_download.svg'; static const String iconsFilter = 'assets/icons/filter.svg'; static const String iconsGps = 'assets/icons/gps.svg'; + static const String iconsInformation = 'assets/icons/information.svg'; static const String iconsKey = 'assets/icons/key.svg'; static const String iconsLogout = 'assets/icons/logout.svg'; static const String iconsMap = 'assets/icons/map.svg'; static const String iconsMapMarker = 'assets/icons/map_marker.svg'; static const String iconsMessageAdd = 'assets/icons/message_add.svg'; + static const String iconsPdfDownload = 'assets/icons/pdf_download.svg'; + static const String iconsPictureFrame = 'assets/icons/picture_frame.svg'; static const String iconsProfileCircle = 'assets/icons/profile_circle.svg'; static const String iconsProfileUser = 'assets/icons/profile_user.svg'; + static const String iconsReceiptDiscount = 'assets/icons/receipt_discount.svg'; static const String iconsScan = 'assets/icons/scan.svg'; static const String iconsScanBarcode = 'assets/icons/scan_barcode.svg'; static const String iconsSecurityTime = 'assets/icons/security_time.svg'; static const String iconsSetting = 'assets/icons/setting.svg'; + static const String iconsTagUser = 'assets/icons/tag_user.svg'; static const String iconsTrash = 'assets/icons/trash.svg'; + static const String iconsUser = 'assets/icons/user.svg'; + static const String iconsUserSquare = 'assets/icons/user_square.svg'; static const String imagesInnerSplash = 'assets/images/inner_splash.webp'; static const String imagesOutterSplash = 'assets/images/outter_splash.webp'; static const String vecAddSvg = 'assets/vec/add.svg.vec'; static const String vecArrowLeftSvg = 'assets/vec/arrow_left.svg.vec'; static const String vecArrowRightSvg = 'assets/vec/arrow_right.svg.vec'; + static const String vecBgHeaderUserProfileSvg = 'assets/vec/bg_header_user_profile.svg.vec'; static const String vecCalendarSearchSvg = 'assets/vec/calendar_search.svg.vec'; static const String vecCalendarSvg = 'assets/vec/calendar.svg.vec'; static const String vecCallSvg = 'assets/vec/call.svg.vec'; static const String vecDiagramSvg = 'assets/vec/diagram.svg.vec'; static const String vecDownloadSvg = 'assets/vec/download.svg.vec'; static const String vecEditSvg = 'assets/vec/edit.svg.vec'; + static const String vecExcelDownloadSvg = 'assets/vec/excel_download.svg.vec'; static const String vecFilterSvg = 'assets/vec/filter.svg.vec'; static const String vecGpsSvg = 'assets/vec/gps.svg.vec'; + static const String vecInformationSvg = 'assets/vec/information.svg.vec'; static const String vecKeySvg = 'assets/vec/key.svg.vec'; static const String vecLogoutSvg = 'assets/vec/logout.svg.vec'; static const String vecMapMarkerSvg = 'assets/vec/map_marker.svg.vec'; static const String vecMapSvg = 'assets/vec/map.svg.vec'; static const String vecMessageAddSvg = 'assets/vec/message_add.svg.vec'; + static const String vecPdfDownloadSvg = 'assets/vec/pdf_download.svg.vec'; + static const String vecPictureFrameSvg = 'assets/vec/picture_frame.svg.vec'; static const String vecProfileCircleSvg = 'assets/vec/profile_circle.svg.vec'; static const String vecProfileUserSvg = 'assets/vec/profile_user.svg.vec'; + static const String vecReceiptDiscountSvg = 'assets/vec/receipt_discount.svg.vec'; static const String vecScanBarcodeSvg = 'assets/vec/scan_barcode.svg.vec'; static const String vecScanSvg = 'assets/vec/scan.svg.vec'; static const String vecSecurityTimeSvg = 'assets/vec/security_time.svg.vec'; static const String vecSettingSvg = 'assets/vec/setting.svg.vec'; + static const String vecTagUserSvg = 'assets/vec/tag_user.svg.vec'; static const String vecTrashSvg = 'assets/vec/trash.svg.vec'; + static const String vecUserSquareSvg = 'assets/vec/user_square.svg.vec'; + static const String vecUserSvg = 'assets/vec/user.svg.vec'; } diff --git a/packages/core/pubspec.yaml b/packages/core/pubspec.yaml index bcc2ec7..724acd2 100644 --- a/packages/core/pubspec.yaml +++ b/packages/core/pubspec.yaml @@ -45,6 +45,7 @@ dependencies: + dev_dependencies: flutter_test: sdk: flutter diff --git a/pubspec.lock b/pubspec.lock index 91b7ffd..747dc7c 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -193,6 +193,22 @@ packages: url: "https://pub.dev" source: hosted version: "1.2.0" + device_frame: + dependency: transitive + description: + name: device_frame + sha256: d031a06f5d6f4750009672db98a5aa1536aa4a231713852469ce394779a23d75 + url: "https://pub.dev" + source: hosted + version: "1.2.0" + device_preview: + dependency: "direct main" + description: + name: device_preview + sha256: a694acdd3894b4c7d600f4ee413afc4ff917f76026b97ab06575fe886429ef19 + url: "https://pub.dev" + source: hosted + version: "1.2.0" fake_async: dependency: transitive description: @@ -238,6 +254,11 @@ packages: url: "https://pub.dev" source: hosted version: "5.0.0" + flutter_localizations: + dependency: transitive + description: flutter + source: sdk + version: "0.0.0" flutter_map: dependency: transitive description: @@ -305,13 +326,13 @@ packages: source: hosted version: "3.0.6" freezed_annotation: - dependency: "direct main" + dependency: "direct overridden" description: name: freezed_annotation - sha256: c87ff004c8aa6af2d531668b46a4ea379f7191dc6dfa066acd53d506da6e044b + sha256: c2e2d632dd9b8a2b7751117abcfc2b4888ecfe181bd9fca7170d9ef02e595fe2 url: "https://pub.dev" source: hosted - version: "3.0.0" + version: "2.4.4" frontend_server_client: dependency: transitive description: @@ -460,10 +481,10 @@ packages: dependency: transitive description: name: intl - sha256: "3df61194eb431efc39c4ceba583b95633a403f46c9fd341e550ce0bfa50e9aa5" + sha256: d6f56758b7d3014a48af9701c085700aac781a92a87a62b1333b46d8879661cf url: "https://pub.dev" source: hosted - version: "0.20.2" + version: "0.19.0" io: dependency: transitive description: @@ -481,7 +502,7 @@ packages: source: hosted version: "0.7.2" json_annotation: - dependency: "direct main" + dependency: transitive description: name: json_annotation sha256: "1ce844379ca14835a50d2f019a3099f419082cfdd231cd86a142af94dd5c6bb1" @@ -640,6 +661,14 @@ packages: url: "https://pub.dev" source: hosted version: "1.0.4" + nested: + dependency: transitive + description: + name: nested + sha256: "03bac4c528c64c95c722ec99280375a6f2fc708eec17c7b3f07253b626cd2a20" + url: "https://pub.dev" + source: hosted + version: "1.0.0" package_config: dependency: transitive description: @@ -808,6 +837,14 @@ packages: url: "https://pub.dev" source: hosted version: "2.1.0" + provider: + dependency: transitive + description: + name: provider + sha256: "489024f942069c2920c844ee18bb3d467c69e48955a4f32d1677f71be103e310" + url: "https://pub.dev" + source: hosted + version: "6.1.4" pub_semver: dependency: transitive description: @@ -839,6 +876,62 @@ packages: url: "https://pub.dev" source: hosted version: "0.28.0" + shared_preferences: + dependency: transitive + description: + name: shared_preferences + sha256: "6e8bf70b7fef813df4e9a36f658ac46d107db4b4cfe1048b477d4e453a8159f5" + url: "https://pub.dev" + source: hosted + version: "2.5.3" + shared_preferences_android: + dependency: transitive + description: + name: shared_preferences_android + sha256: "20cbd561f743a342c76c151d6ddb93a9ce6005751e7aa458baad3858bfbfb6ac" + url: "https://pub.dev" + source: hosted + version: "2.4.10" + shared_preferences_foundation: + dependency: transitive + description: + name: shared_preferences_foundation + sha256: "6a52cfcdaeac77cad8c97b539ff688ccfc458c007b4db12be584fbe5c0e49e03" + url: "https://pub.dev" + source: hosted + version: "2.5.4" + shared_preferences_linux: + dependency: transitive + description: + name: shared_preferences_linux + sha256: "580abfd40f415611503cae30adf626e6656dfb2f0cee8f465ece7b6defb40f2f" + url: "https://pub.dev" + source: hosted + version: "2.4.1" + shared_preferences_platform_interface: + dependency: transitive + description: + name: shared_preferences_platform_interface + sha256: "57cbf196c486bc2cf1f02b85784932c6094376284b3ad5779d1b1c6c6a816b80" + url: "https://pub.dev" + source: hosted + version: "2.4.1" + shared_preferences_web: + dependency: transitive + description: + name: shared_preferences_web + sha256: c49bd060261c9a3f0ff445892695d6212ff603ef3115edbb448509d407600019 + url: "https://pub.dev" + source: hosted + version: "2.4.3" + shared_preferences_windows: + dependency: transitive + description: + name: shared_preferences_windows + sha256: "94ef0f72b2d71bc3e700e025db3710911bd51a71cefb65cc609dd0d9a982e3c1" + url: "https://pub.dev" + source: hosted + version: "2.4.1" shelf: dependency: transitive description: diff --git a/pubspec.yaml b/pubspec.yaml index 546bb1c..97afd30 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -24,9 +24,6 @@ dependencies: hive_ce: ^2.10.1 hive_ce_flutter: ^2.2.0 - ##code generation - freezed_annotation: ^3.0.0 - json_annotation: ^4.9.0 #SVG @@ -45,6 +42,10 @@ dependencies: rasadyar_core: path: ./packages/core + device_preview: ^1.2.0 + +dependency_overrides: + freezed_annotation: ^2.4.1 dev_dependencies: flutter_test: