Untitled
unknown
dart
a year ago
8.7 kB
12
Indexable
import 'package:flutter/material.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:get/get.dart';
import 'package:takamol_user/app/app_ui.dart';
import 'package:takamol_user/app/modules/hospitality/model/location_model.dart';
import 'package:takamol_user/app/modules/hospitality/restaurant/cart/controllers/cart_controller.dart';
import 'package:takamol_user/app/server/models/restaurants_orders_items.dart';
import 'package:takamol_user/app/widgets/takamol/main_taxt.dart';
import 'package:takamol_user/app/widgets/takamol/takamol_button.dart';
import 'package:takamol_user/main.dart';
import 'package:takamol_user/resources/assets_generated.dart';
import 'package:takamol_user/resources/assets_svg_generated.dart';
import 'package:takamol_user/resources/strings_generated.dart';
class OrderDetailsPopup extends GetView<CartController> {
final List<RestaurantOrderItem> restaurantOrderItems;
final int restaurantOrderId;
final LocationModel? orderLocation;
const OrderDetailsPopup({
required this.restaurantOrderItems,
required this.restaurantOrderId,
required this.orderLocation,
super.key,
});
@override
Widget build(BuildContext context) {
return Column(
crossAxisAlignment: CrossAxisAlignment.center,
children: [
Container(
decoration: BoxDecoration(
color: appColors.whiteColor,
boxShadow: [
BoxShadow(
color: Colors.black.withOpacity(0.03),
offset: const Offset(0, 4),
spreadRadius: 10,
blurRadius: 10,
),
],
borderRadius: BorderRadius.circular(14)),
child: Column(
crossAxisAlignment: CrossAxisAlignment.center,
children: [
SizedBox(height: 10.h),
Container(
padding: const EdgeInsets.all(20),
decoration: const BoxDecoration(
shape: BoxShape.circle,
border: Border(
top: BorderSide(color: Color(0xff2CCBB3), width: 0.5),
right: BorderSide(color: Color(0xff2CCBB3), width: 0.5),
left: BorderSide(color: Color(0xff2CCBB3), width: 0.5),
),
),
child: AppSVGAssets.getWidget(
'assets/svgs/icons/check_circle.svg',
),
),
Align(
alignment: Alignment.center,
child: MainText(
text: AppStrings.orderSentSuccessfully,
fontWeight: FontWeight.w600,
).paddingSymmetric(vertical: 20.h),
),
SizedBox(height: 10.h),
Container(
width: Get.width,
margin: EdgeInsets.all(15.h),
padding:
EdgeInsets.symmetric(vertical: 16.h, horizontal: 10.w),
decoration: BoxDecoration(
color: Theme.of(context).colorScheme.secondary,
borderRadius: BorderRadius.circular(14)),
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
MainText(
text: AppStrings.orderDetails,
fontWeight: FontWeight.w600,
),
MainText(
text: '#${restaurantOrderId.toString()}',
fontWeight: FontWeight.w600,
),
],
)),
ListView.builder(
shrinkWrap: true,
physics: const NeverScrollableScrollPhysics(),
itemCount: restaurantOrderItems.length,
itemBuilder: (context, index) {
return ListTile(
leading: ClipRRect(
borderRadius: BorderRadius.circular(15),
child: restaurantOrderItems[index].item!.image == null
? const Image(
image: AppAssets.coffee,
)
: Image.network(
restaurantOrderItems[index].item!.image!,
),
),
trailing: Container(
decoration: BoxDecoration(
color: appColors.takamolColor.withOpacity(0.05),
shape: BoxShape.circle),
padding: const EdgeInsets.all(12),
child: MainText(
text: restaurantOrderItems[index].count.toString(),
fontWeight: FontWeight.w600,
),
),
title: MainText(
text: restaurantOrderItems[index].item?.name ?? ''),
subtitle: Row(
children: [
if (restaurantOrderItems[index].itemSize != null) ...[
MainText(
text: AppStrings.size,
color: appColors.takamolFont2,
),
const SizedBox(width: 4),
MainText(
text: controller.getSize(
restaurantOrderItems[index].itemSize!),
),
],
if (restaurantOrderItems[index].item?.allowSugar ==
true) ...[
if (restaurantOrderItems[index].itemSize != null)
MainText(
text: " - ",
color: appColors.takamolFont2,
),
const SizedBox(width: 4),
MainText(
text: AppStrings.sugar,
color: appColors.takamolFont2,
),
const SizedBox(width: 4),
MainText(
text: restaurantOrderItems[index]
.sugarSpoons
.toString(),
),
],
],
).paddingOnly(top: 6));
},
),
SizedBox(height: 15.h)
],
),
),
SizedBox(height: 20.h),
Container(
decoration: BoxDecoration(
color: appColors.whiteColor,
borderRadius: BorderRadius.circular(22.r),
boxShadow: [
BoxShadow(
color: Colors.black.withOpacity(0.03),
offset: const Offset(0, 4),
spreadRadius: 10,
blurRadius: 10,
),
],
),
padding: EdgeInsets.symmetric(horizontal: 10.w, vertical: 10.h),
child: Container(
padding: EdgeInsets.symmetric(horizontal: 4.w, vertical: 2.h),
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(22.r),
border: Border.all(
color: appColors.borderGreyColor,
),
),
child: ListTile(
leading: CircleAvatar(
backgroundColor: Theme.of(context).colorScheme.secondary,
child: Icon(
Icons.location_on_outlined,
color: appColors.mediumGreyColor,
)),
title: Text(
orderLocation?.locationId == 1 ? 'مكتبي' : 'غرفة الاجتماعات',
style: Theme.of(context).textTheme.labelSmall,
),
subtitle: Text(
orderLocation?.locationSubTitle ?? '',
style: Theme.of(context)
.textTheme
.titleSmall
?.copyWith(fontWeight: FontWeight.w400),
),
),
),
),
SizedBox(height: 20.h),
],
);
}
}Editor is loading...
Leave a Comment