import 'package:enaklo_pos/core/components/custom_modal_dialog.dart'; import 'package:enaklo_pos/core/constants/colors.dart'; import 'package:enaklo_pos/core/extensions/build_context_ext.dart'; import 'package:enaklo_pos/core/extensions/int_ext.dart'; import 'package:enaklo_pos/data/models/response/product_response_model.dart'; import 'package:enaklo_pos/presentation/home/bloc/checkout/checkout_bloc.dart'; import 'package:flutter/material.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; class VariantDialog extends StatelessWidget { final Product product; const VariantDialog({super.key, required this.product}); @override Widget build(BuildContext context) { return CustomModalDialog( title: 'Pilih Varian', subtitle: 'Silahkan pilih varian yang sesuai', minWidth: context.deviceWidth * 0.4, contentPadding: EdgeInsets.all(16), child: Wrap( spacing: 12, runSpacing: 12, children: product.variants!.map((variant) { return GestureDetector( onTap: () { // Aksi saat varian dipilih context.pop(); context.read().add( CheckoutEvent.addItem(product, variant), ); }, child: Container( width: (context.deviceWidth * 0.4 - 12 - 32) / 2 - 6, // 2 per row padding: const EdgeInsets.all(12), decoration: BoxDecoration( border: Border.all(color: Colors.grey.shade300), borderRadius: BorderRadius.circular(12), color: Colors.white, ), child: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ Text( variant.name ?? "", style: const TextStyle( fontWeight: FontWeight.bold, ), ), const SizedBox(height: 4), Text( (variant.priceModifier ?? 0).currencyFormatRpV2, style: TextStyle( color: AppColors.black, ), ), ], ), ), ); }).toList(), ), ); } }