import 'package:common/localization/l10n_utils.dart';
import 'package:concierge/presentation/app/cart_cubit.dart';
import 'package:concierge/presentation/theme/app_colors.dart';
import 'package:flutter/material.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:gap/gap.dart';
class DeliveryMethodPicker extends StatelessWidget {
const DeliveryMethodPicker({super.key});
@override
Widget build(BuildContext context) {
final cartCubit = context.watch<CartCubit>();
final deliveryPrice = cartCubit.state.selectedArea?.deliveryPrice;
return Row(
children: [
Expanded(
child: buildButton(
context,
isSelected: cartCubit.state.isDelivery,
onClick: () {
cartCubit.updateDelivery(true);
},
text: "${context.strings.delivery} | $deliveryPrice kr.",
),
),
const Gap(8),
Expanded(
child: buildButton(
context,
isSelected: !cartCubit.state.isDelivery,
onClick: () {
cartCubit.updateDelivery(false);
},
text: context.strings.pickup,
),
),
],
);
}
Widget buildButton(
BuildContext context, {
required bool isSelected,
required VoidCallback onClick,
required String text,
}) {
final Color bgColor;
final BorderSide? border;
final Color textColor;
if (isSelected) {
bgColor = AppColors.sandColor;
textColor = Colors.white;
border = null;
} else {
bgColor = Colors.white;
textColor = Colors.black;
border = BorderSide(color: Colors.grey.shade300, width: 1);
}
return TextButton(
style: ButtonStyle(
backgroundColor: WidgetStatePropertyAll(bgColor),
side: WidgetStatePropertyAll(border),
),
onPressed: onClick,
child: Text(
text,
style: TextStyle(color: textColor),
),
);
}
}