Merge pull request 'Add clock asset and enhance meeting time dialogs' (#219) from design_changes into main

Reviewed-on: https://repo.ravanertebat.com/TM/tm_app/pulls/219
This commit is contained in:
a.ghabeli
2025-10-27 13:23:33 +03:30
11 changed files with 599 additions and 138 deletions
+4
View File
@@ -0,0 +1,4 @@
<svg width="14" height="14" viewBox="0 0 14 14" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M12.8332 6.99935C12.8332 10.2193 10.2198 12.8327 6.99984 12.8327C3.77984 12.8327 1.1665 10.2193 1.1665 6.99935C1.1665 3.77935 3.77984 1.16602 6.99984 1.16602C10.2198 1.16602 12.8332 3.77935 12.8332 6.99935Z" stroke="#777777" stroke-width="1.2" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M9.16418 8.85503L7.35585 7.77586C7.04085 7.58919 6.78418 7.14003 6.78418 6.77253V4.38086" stroke="#777777" stroke-width="1.2" stroke-linecap="round" stroke-linejoin="round"/>
</svg>

After

Width:  |  Height:  |  Size: 589 B

+1
View File
@@ -81,4 +81,5 @@ class AssetsManager {
static const arrowDown = 'assets/icons/arrow-down.svg'; static const arrowDown = 'assets/icons/arrow-down.svg';
static const arrowUp = 'assets/icons/arrow-up.svg'; static const arrowUp = 'assets/icons/arrow-up.svg';
static const uploadFile = 'assets/icons/upload_file.svg'; static const uploadFile = 'assets/icons/upload_file.svg';
static const clock = 'assets/icons/clock.svg';
} }
+8
View File
@@ -58,9 +58,17 @@ final GoRouter appRouter = GoRouter(
path.startsWith('/forgot-password') || path.startsWith('/forgot-password') ||
location.startsWith('/forgot-password'); location.startsWith('/forgot-password');
final isPublic = isSplash || isLogin || isForgotFlow; final isPublic = isSplash || isLogin || isForgotFlow;
// If user has token and tries to access login page, redirect to home
if (hasToken && isLogin) {
return '/home';
}
// If user doesn't have token and tries to access protected routes, redirect to splash
if (!hasToken && !isPublic) { if (!hasToken && !isPublic) {
return '/splash'; return '/splash';
} }
return null; return null;
}, },
); );
@@ -39,4 +39,7 @@ class TenderDetailsStrings {
'Last day to prepare proposal is '; 'Last day to prepare proposal is ';
static const String meetingTimeSuccessfullySet = static const String meetingTimeSuccessfullySet =
'meeting time successfully set'; 'meeting time successfully set';
static const String requestSuccessfullyRegistered =
'Your request has been successfully registered.';
static const String confirmAndClose = 'Confirm and close';
} }
@@ -2,9 +2,9 @@ import 'package:flutter/material.dart';
import 'package:go_router/go_router.dart'; import 'package:go_router/go_router.dart';
import 'package:tm_app/core/utils/size_config.dart'; import 'package:tm_app/core/utils/size_config.dart';
import '../../../core/routes/app_routes.dart';
import '../../../core/theme/colors.dart'; import '../../../core/theme/colors.dart';
import '../strings/tender_details_strings.dart'; import '../strings/tender_details_strings.dart';
import 'meeting_time_successful_registered_bottom_sheet.dart';
class MeetingTimeBottomSheet extends StatefulWidget { class MeetingTimeBottomSheet extends StatefulWidget {
const MeetingTimeBottomSheet({required this.onConfirm, super.key}); const MeetingTimeBottomSheet({required this.onConfirm, super.key});
@@ -41,13 +41,38 @@ class _MeetingTimeBottomSheetState extends State<MeetingTimeBottomSheet> {
), ),
child: Column( child: Column(
children: [ children: [
Text( Row(
TenderDetailsStrings.meetingTime, mainAxisAlignment: MainAxisAlignment.spaceBetween,
style: TextStyle( children: [
fontSize: 20.0.sp(), Text(
fontWeight: FontWeight.w600, TenderDetailsStrings.meetingTime,
color: AppColors.grey70, style: TextStyle(
), fontSize: 20.0.sp(),
fontWeight: FontWeight.w600,
color: AppColors.grey70,
),
),
InkWell(
onTap: () {
context.pop();
},
splashColor: Colors.transparent,
child: Container(
width: 24.0.w(),
height: 24.0.w(),
decoration: BoxDecoration(
shape: BoxShape.circle,
border: Border.all(color: AppColors.grey60, width: 2.0),
),
alignment: Alignment.center,
child: Icon(
Icons.close,
color: AppColors.grey60,
size: 16.0,
),
),
),
],
), ),
SizedBox(height: 15.0.h()), SizedBox(height: 15.0.h()),
ListView.builder( ListView.builder(
@@ -75,9 +100,14 @@ class _MeetingTimeBottomSheetState extends State<MeetingTimeBottomSheet> {
SizedBox(height: 8.0.h()), SizedBox(height: 8.0.h()),
InkWell( InkWell(
onTap: () { onTap: () {
widget.onConfirm(type); // widget.onConfirm(type);
context.pop(); context.pop();
const CompletionOfDocumentsRouteData().push(context); showModalBottomSheet(
context: context,
builder: (context) {
return const MeetingTimeSuccessfulRegisteredBottomSheet();
},
);
}, },
child: Container( child: Container(
width: double.infinity, width: double.infinity,
@@ -1,12 +1,11 @@
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:go_router/go_router.dart'; import 'package:go_router/go_router.dart';
import 'package:provider/provider.dart';
import 'package:tm_app/core/routes/app_routes.dart';
import 'package:tm_app/core/theme/colors.dart'; import 'package:tm_app/core/theme/colors.dart';
import 'package:tm_app/core/utils/size_config.dart'; import 'package:tm_app/core/utils/size_config.dart';
import 'package:tm_app/view_models/auth_view_model.dart';
import 'package:tm_app/views/detail/strings/tender_details_strings.dart'; import 'package:tm_app/views/detail/strings/tender_details_strings.dart';
import 'meeting_time_successful_registered_dialog.dart';
class MeetingTimeDialog extends StatefulWidget { class MeetingTimeDialog extends StatefulWidget {
const MeetingTimeDialog({required this.onConfirm, super.key}); const MeetingTimeDialog({required this.onConfirm, super.key});
final ValueChanged<String> onConfirm; final ValueChanged<String> onConfirm;
@@ -29,7 +28,6 @@ class _MeetingTimeDialogState extends State<MeetingTimeDialog> {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
final userRole = context.watch<AuthViewModel>().userRole;
return Dialog( return Dialog(
shape: RoundedRectangleBorder( shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(16), borderRadius: BorderRadius.circular(16),
@@ -40,7 +38,7 @@ class _MeetingTimeDialogState extends State<MeetingTimeDialog> {
child: Wrap( child: Wrap(
children: [ children: [
Container( Container(
// width: double.infinity, width: 560.0,
padding: EdgeInsets.fromLTRB( padding: EdgeInsets.fromLTRB(
24.0.w(), 24.0.w(),
24.0.h(), 24.0.h(),
@@ -54,15 +52,45 @@ class _MeetingTimeDialogState extends State<MeetingTimeDialog> {
), ),
child: Column( child: Column(
children: [ children: [
Text( Row(
TenderDetailsStrings.meetingTime, mainAxisAlignment: MainAxisAlignment.spaceBetween,
style: TextStyle( children: [
fontSize: 20.0.sp(), Text(
fontWeight: FontWeight.w600, TenderDetailsStrings.meetingTime,
color: AppColors.grey70, style: TextStyle(
), fontSize: 20.0.sp(),
fontWeight: FontWeight.w600,
color: AppColors.grey70,
),
),
InkWell(
onTap: () {
context.pop();
},
splashColor: Colors.transparent,
child: Container(
width: 24.0.w(),
height: 24.0.w(),
decoration: BoxDecoration(
shape: BoxShape.circle,
border: Border.all(
color: AppColors.grey60,
width: 2.0,
),
),
alignment: Alignment.center,
child: Icon(
Icons.close,
color: AppColors.grey60,
size: 16.0,
),
),
),
],
), ),
SizedBox(height: 15.0.h()), SizedBox(height: 16.0.h()),
Divider(color: AppColors.grey20),
SizedBox(height: 8.0.h()),
ListView.builder( ListView.builder(
shrinkWrap: true, shrinkWrap: true,
physics: const NeverScrollableScrollPhysics(), physics: const NeverScrollableScrollPhysics(),
@@ -86,32 +114,37 @@ class _MeetingTimeDialogState extends State<MeetingTimeDialog> {
), ),
SizedBox(height: 8.0.h()), SizedBox(height: 8.0.h()),
SizedBox(height: 8.0.h()), SizedBox(height: 8.0.h()),
Material( Align(
color: Colors.transparent, alignment: Alignment.centerRight,
child: InkWell( child: Material(
onTap: () { color: Colors.transparent,
widget.onConfirm(type); child: InkWell(
context.pop(); borderRadius: BorderRadius.circular(100),
userRole == Role.admin onTap: () {
? const CompletionOfDocumentsRouteData().push(context) // widget.onConfirm(type);
: const FinalCompletionOfDocumentsRouteData().push( context.pop();
context, showDialog(
); context: context,
}, builder: (context) {
child: Container( return const MeetingTimeSuccessfulRegisteredDialog();
width: double.infinity, },
height: 56.0.h(), );
decoration: BoxDecoration( },
color: AppColors.primary20, child: Container(
borderRadius: BorderRadius.circular(100), width: 150,
), height: 56.0.h(),
alignment: Alignment.center, decoration: BoxDecoration(
child: Text( color: AppColors.primary20,
TenderDetailsStrings.apply, borderRadius: BorderRadius.circular(100),
style: TextStyle( ),
fontSize: 14.0.sp(), alignment: Alignment.center,
fontWeight: FontWeight.w500, child: Text(
color: AppColors.mainBlue, TenderDetailsStrings.apply,
style: TextStyle(
fontSize: 14.0.sp(),
fontWeight: FontWeight.w500,
color: AppColors.mainBlue,
),
), ),
), ),
), ),
@@ -0,0 +1,190 @@
import 'package:flutter/material.dart';
import 'package:flutter_svg/svg.dart';
import 'package:go_router/go_router.dart';
import 'package:tm_app/core/constants/assets.dart';
import 'package:tm_app/core/routes/app_routes.dart';
import 'package:tm_app/core/theme/colors.dart';
import 'package:tm_app/core/utils/size_config.dart';
import 'package:tm_app/views/login/widgets/widgets.dart';
import '../../../core/utils/app_toast.dart';
import '../strings/tender_details_strings.dart';
class MeetingTimeSuccessfulRegisteredBottomSheet extends StatelessWidget {
const MeetingTimeSuccessfulRegisteredBottomSheet({super.key});
@override
Widget build(BuildContext context) {
return Wrap(
children: [
Container(
width: double.infinity,
padding: EdgeInsets.symmetric(
horizontal: 24.0.w(),
vertical: 24.0.h(),
),
decoration: BoxDecoration(
color: AppColors.backgroundColor,
borderRadius: const BorderRadius.only(
topLeft: Radius.circular(16.0),
topRight: Radius.circular(16.0),
),
),
alignment: Alignment.center,
child: Column(
children: [
Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
Text(
TenderDetailsStrings.meetingTime,
style: TextStyle(
fontSize: 20.0.sp(),
fontWeight: FontWeight.w600,
color: AppColors.grey70,
),
),
InkWell(
onTap: () {
context.pop();
},
splashColor: Colors.transparent,
child: Container(
width: 24.0.w(),
height: 24.0.w(),
decoration: BoxDecoration(
shape: BoxShape.circle,
border: Border.all(color: AppColors.grey60, width: 2.0),
),
alignment: Alignment.center,
child: Icon(
Icons.close,
color: AppColors.grey60,
size: 16.0,
),
),
),
],
),
SizedBox(height: 16.0.h()),
Divider(color: AppColors.grey20),
SizedBox(height: 24.0.h()),
Container(
width: 64.0.w(),
height: 64.0.w(),
decoration: BoxDecoration(
shape: BoxShape.circle,
color: AppColors.green30,
),
alignment: Alignment.center,
child: Icon(Icons.check, color: AppColors.white, size: 32.0),
),
SizedBox(height: 40.0.h()),
Text(
TenderDetailsStrings.requestSuccessfullyRegistered,
textAlign: TextAlign.center,
style: TextStyle(
fontSize: 22.0.sp(),
fontWeight: FontWeight.w500,
color: AppColors.grey80,
),
),
SizedBox(height: 40.0.h()),
Container(
width: double.infinity,
height: 66.0.h(),
decoration: BoxDecoration(
color: AppColors.green0,
borderRadius: BorderRadius.circular(4),
border: Border.all(color: AppColors.green10),
),
alignment: Alignment.center,
child: Row(
children: [
SizedBox(width: 16.0.w()),
Container(
width: 32.0.w(),
height: 32.0.w(),
decoration: BoxDecoration(
shape: BoxShape.circle,
border: Border.all(
color: AppColors.green30,
width: 2.0.w(),
),
),
alignment: Alignment.center,
child: Icon(
Icons.check,
color: AppColors.green30,
size: 16.0,
),
),
SizedBox(width: 12.0.w()),
Column(
mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Text(
TenderDetailsStrings.meetingTime,
style: TextStyle(
fontSize: 14.0.sp(),
fontWeight: FontWeight.w500,
color: AppColors.grey80,
),
),
SizedBox(height: 8.0.h()),
Row(
children: [
SvgPicture.asset(AssetsManager.clock),
SizedBox(width: 4.0.w()),
Text(
'Sat 2025-06-14',
style: TextStyle(
fontSize: 14.0.sp(),
fontWeight: FontWeight.w400,
color: AppColors.grey60,
),
),
SizedBox(width: 12.0.w()),
SvgPicture.asset(AssetsManager.calendar),
SizedBox(width: 4.0.w()),
Text(
'12:00',
style: TextStyle(
fontSize: 14.0.sp(),
fontWeight: FontWeight.w400,
color: AppColors.grey60,
),
),
],
),
],
),
],
),
),
SizedBox(height: 24.0.h()),
BaseButton(
isEnabled: true,
width: double.infinity,
height: 56.0.h(),
onPressed: () {
AppToast.success(
context,
TenderDetailsStrings.meetingTimeSuccessfullySet,
);
const CompletionOfDocumentsRouteData().push(context);
},
textColor: AppColors.primaryColor,
backgroundColor: AppColors.primary20,
text: TenderDetailsStrings.confirmAndClose,
),
SizedBox(height: 24.0.h()),
],
),
),
],
);
}
}
@@ -0,0 +1,205 @@
import 'package:flutter/material.dart';
import 'package:flutter_svg/svg.dart';
import 'package:go_router/go_router.dart';
import 'package:provider/provider.dart';
import 'package:tm_app/core/utils/size_config.dart';
import '../../../core/constants/assets.dart';
import '../../../core/routes/app_routes.dart';
import '../../../core/theme/colors.dart';
import '../../../core/utils/app_toast.dart';
import '../../../view_models/auth_view_model.dart';
import '../../shared/base_button.dart';
import '../strings/tender_details_strings.dart';
class MeetingTimeSuccessfulRegisteredDialog extends StatelessWidget {
const MeetingTimeSuccessfulRegisteredDialog({super.key});
@override
Widget build(BuildContext context) {
final userRole = context.watch<AuthViewModel>().userRole;
return Dialog(
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(16),
side: BorderSide.none,
),
insetPadding: const EdgeInsets.symmetric(horizontal: 150),
child: Wrap(
children: [
Container(
width: 550,
padding: EdgeInsets.symmetric(
horizontal: 24.0.w(),
vertical: 24.0.h(),
),
decoration: BoxDecoration(
color: AppColors.backgroundColor,
borderRadius: BorderRadius.circular(16),
),
alignment: Alignment.center,
child: Column(
children: [
Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
Text(
TenderDetailsStrings.meetingTime,
style: TextStyle(
fontSize: 20.0.sp(),
fontWeight: FontWeight.w600,
color: AppColors.grey70,
),
),
InkWell(
onTap: () {
context.pop();
},
splashColor: Colors.transparent,
child: Container(
width: 24.0.w(),
height: 24.0.w(),
decoration: BoxDecoration(
shape: BoxShape.circle,
border: Border.all(
color: AppColors.grey60,
width: 2.0,
),
),
alignment: Alignment.center,
child: Icon(
Icons.close,
color: AppColors.grey60,
size: 16.0,
),
),
),
],
),
SizedBox(height: 16.0.h()),
Divider(color: AppColors.grey20),
SizedBox(height: 24.0.h()),
Container(
width: 64.0.w(),
height: 64.0.w(),
decoration: BoxDecoration(
shape: BoxShape.circle,
color: AppColors.green30,
),
alignment: Alignment.center,
child: Icon(Icons.check, color: AppColors.white, size: 32.0),
),
SizedBox(height: 40.0.h()),
Text(
TenderDetailsStrings.requestSuccessfullyRegistered,
textAlign: TextAlign.center,
style: TextStyle(
fontSize: 22.0.sp(),
fontWeight: FontWeight.w500,
color: AppColors.grey80,
),
),
SizedBox(height: 40.0.h()),
Container(
width: double.infinity,
height: 66.0.h(),
decoration: BoxDecoration(
color: AppColors.green0,
borderRadius: BorderRadius.circular(4),
border: Border.all(color: AppColors.green10),
),
alignment: Alignment.center,
child: Row(
children: [
SizedBox(width: 16.0.w()),
Container(
width: 32.0.w(),
height: 32.0.w(),
decoration: BoxDecoration(
shape: BoxShape.circle,
border: Border.all(
color: AppColors.green30,
width: 2.0.w(),
),
),
alignment: Alignment.center,
child: Icon(
Icons.check,
color: AppColors.green30,
size: 16.0,
),
),
SizedBox(width: 12.0.w()),
Column(
mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Text(
TenderDetailsStrings.meetingTime,
style: TextStyle(
fontSize: 14.0.sp(),
fontWeight: FontWeight.w500,
color: AppColors.grey80,
),
),
SizedBox(height: 8.0.h()),
Row(
children: [
SvgPicture.asset(AssetsManager.clock),
SizedBox(width: 4.0.w()),
Text(
'Sat 2025-06-14',
style: TextStyle(
fontSize: 14.0.sp(),
fontWeight: FontWeight.w400,
color: AppColors.grey60,
),
),
SizedBox(width: 12.0.w()),
SvgPicture.asset(AssetsManager.calendar),
SizedBox(width: 4.0.w()),
Text(
'12:00',
style: TextStyle(
fontSize: 14.0.sp(),
fontWeight: FontWeight.w400,
color: AppColors.grey60,
),
),
],
),
],
),
],
),
),
SizedBox(height: 24.0.h()),
BaseButton(
isEnabled: true,
width: double.infinity,
height: 56.0.h(),
onPressed: () {
context.pop();
AppToast.success(
context,
TenderDetailsStrings.meetingTimeSuccessfullySet,
);
userRole == Role.admin
? const CompletionOfDocumentsRouteData().push(context)
: const FinalCompletionOfDocumentsRouteData().push(
context,
);
},
textColor: AppColors.primaryColor,
backgroundColor: AppColors.primary20,
text: TenderDetailsStrings.confirmAndClose,
),
SizedBox(height: 24.0.h()),
],
),
),
],
),
);
}
}
@@ -88,11 +88,11 @@ class _TenderDetailActionsState extends State<TenderDetailActions> {
builder: (_) { builder: (_) {
return MeetingTimeBottomSheet( return MeetingTimeBottomSheet(
onConfirm: (value) { onConfirm: (value) {
AppToast.success( // AppToast.success(
context, // context,
TenderDetailsStrings // TenderDetailsStrings
.meetingTimeSuccessfullySet, // .meetingTimeSuccessfullySet,
); // );
}, },
); );
}, },
@@ -225,13 +225,7 @@ class _TenderDetailActionsState extends State<TenderDetailActions> {
context: context, context: context,
builder: (context) { builder: (context) {
return MeetingTimeDialog( return MeetingTimeDialog(
onConfirm: (value) { onConfirm: (value) {},
AppToast.success(
context,
TenderDetailsStrings
.meetingTimeSuccessfullySet,
);
},
); );
}, },
); );
@@ -27,7 +27,7 @@ class _SelectSubmissionBottomSheetState
Container( Container(
width: double.infinity, width: double.infinity,
// height: 272.0.h(), // height: 272.0.h(),
padding: EdgeInsets.fromLTRB(24.0.w(), 12.0.h(), 24.0.w(), 33.0.h()), padding: EdgeInsets.fromLTRB(24.0.w(), 24.0.h(), 24.0.w(), 33.0.h()),
decoration: BoxDecoration( decoration: BoxDecoration(
color: AppColors.backgroundColor, color: AppColors.backgroundColor,
borderRadius: const BorderRadius.only( borderRadius: const BorderRadius.only(
@@ -37,23 +37,41 @@ class _SelectSubmissionBottomSheetState
), ),
child: Column( child: Column(
children: [ children: [
Align( Row(
alignment: AlignmentDirectional.centerStart, mainAxisAlignment: MainAxisAlignment.spaceBetween,
child: IconButton( children: [
onPressed: () { Text(
context.pop(); CommonStrings.selectSubmission,
}, style: TextStyle(
icon: const Icon(Icons.close), fontSize: 20.0.sp(),
), fontWeight: FontWeight.w600,
), color: AppColors.grey70,
Text( ),
CommonStrings.selectSubmission, ),
style: TextStyle( InkWell(
fontSize: 20.0.sp(), onTap: () {
fontWeight: FontWeight.w600, context.pop();
color: AppColors.grey70, },
), splashColor: Colors.transparent,
child: Container(
width: 24.0.w(),
height: 24.0.w(),
decoration: BoxDecoration(
shape: BoxShape.circle,
border: Border.all(color: AppColors.grey60, width: 2.0),
),
alignment: Alignment.center,
child: Icon(
Icons.close,
color: AppColors.grey60,
size: 16.0,
),
),
),
],
), ),
SizedBox(height: 16.0.h()),
Divider(color: AppColors.grey20),
SizedBox(height: 8.0.h()), SizedBox(height: 8.0.h()),
_submissionType( _submissionType(
title: CommonStrings.selfApply, title: CommonStrings.selfApply,
+35 -60
View File
@@ -33,15 +33,43 @@ class _SelectSubmissionDialogState extends State<SelectSubmissionDialog> {
borderRadius: BorderRadius.circular(16), borderRadius: BorderRadius.circular(16),
), ),
child: Column( child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [ children: [
Text( Row(
CommonStrings.selectSubmission, mainAxisAlignment: MainAxisAlignment.spaceBetween,
style: TextStyle( children: [
fontSize: 20.0.sp(), Text(
fontWeight: FontWeight.w600, CommonStrings.selectSubmission,
color: AppColors.grey70, style: TextStyle(
), fontSize: 20.0.sp(),
fontWeight: FontWeight.w600,
color: AppColors.grey70,
),
),
InkWell(
onTap: () {
context.pop();
},
splashColor: Colors.transparent,
child: Container(
width: 24.0.w(),
height: 24.0.w(),
decoration: BoxDecoration(
shape: BoxShape.circle,
border: Border.all(color: AppColors.grey60, width: 2.0),
),
alignment: Alignment.center,
child: Icon(
Icons.close,
color: AppColors.grey60,
size: 16.0,
),
),
),
],
), ),
SizedBox(height: 16.0.h()),
Divider(color: AppColors.grey20),
SizedBox(height: 8.0.h()), SizedBox(height: 8.0.h()),
_submissionType( _submissionType(
title: CommonStrings.selfApply, title: CommonStrings.selfApply,
@@ -68,59 +96,6 @@ class _SelectSubmissionDialogState extends State<SelectSubmissionDialog> {
child: Row( child: Row(
children: [ children: [
const Spacer(), const Spacer(),
// InkWell(
// onTap: () {
// context.pop();
// },
// child: Container(
// width: 150,
// height: 56.0,
// decoration: BoxDecoration(
// color: AppColors.red10,
// borderRadius: BorderRadius.circular(100),
// ),
// alignment: Alignment.center,
// child: Text(
// CommonStrings.cancel,
// style: TextStyle(
// fontSize: 14.0.sp(),
// fontWeight: FontWeight.w500,
// color: AppColors.red20,
// ),
// ),
// ),
// ),
InkWell(
highlightColor: Colors.transparent,
splashColor: Colors.transparent,
onTap: () {
context.pop();
},
child: Container(
width: 150,
height: 56.0,
decoration: BoxDecoration(
color: Colors.transparent,
borderRadius: BorderRadius.circular(100),
border: Border.all(
color: AppColors.errorColor,
width: 2.0,
),
),
alignment: Alignment.center,
child: Text(
CommonStrings.cancel,
style: TextStyle(
fontSize: 14.0.sp(),
fontWeight: FontWeight.w500,
color: AppColors.errorColor,
),
),
),
),
SizedBox(width: 10.0.w()),
InkWell( InkWell(
onTap: () { onTap: () {
widget.onConfirm(type); widget.onConfirm(type);