import 'package:flutter/material.dart'; import 'package:go_router/go_router.dart'; import 'package:tm_app/core/utils/size_config.dart'; import '../../core/theme/colors.dart'; class SelectSubmissionBottomSheet extends StatefulWidget { const SelectSubmissionBottomSheet({required this.onConfirm, super.key}); final ValueChanged onConfirm; @override State createState() => _SelectSubmissionBottomSheetState(); } class _SelectSubmissionBottomSheetState extends State { int selectedType = 0; String type = 'self-apply'; @override Widget build(BuildContext context) { return Wrap( children: [ Container( width: double.infinity, // height: 272.0.h(), padding: EdgeInsets.fromLTRB(24.0.w(), 24.0.h(), 24.0.w(), 33.0.h()), decoration: BoxDecoration( color: AppColors.backgroundColor, borderRadius: BorderRadius.only( topLeft: Radius.circular(16.0), topRight: Radius.circular(16.0), ), ), child: Column( children: [ Text( 'Select Submission', style: TextStyle( fontSize: 20.0.sp(), fontWeight: FontWeight.w600, color: AppColors.grey70, ), ), SizedBox(height: 8.0.h()), _submissionType( title: 'self-apply', isSelected: type == 'self-apply', onTap: () { selectedType = 0; type = 'self-apply'; setState(() {}); }, ), SizedBox(height: 8.0.h()), _submissionType( title: 'Partnership', isSelected: type == 'partnership', onTap: () { selectedType = 1; type = 'partnership'; setState(() {}); }, ), SizedBox(height: 8.0.h()), InkWell( onTap: () { widget.onConfirm(type); context.pop(); }, child: Container( width: double.infinity, height: 56.0.h(), decoration: BoxDecoration( color: AppColors.primary20, borderRadius: BorderRadius.circular(100), ), alignment: Alignment.center, child: Text( 'Confirm', style: TextStyle( fontSize: 14.0.sp(), fontWeight: FontWeight.w500, color: AppColors.mainBlue, ), ), ), ), ], ), ), ], ); } Widget _submissionType({ required VoidCallback onTap, required String title, required bool isSelected, }) { return InkWell( onTap: onTap, child: SizedBox( width: double.infinity, height: 56.0.h(), child: Row( children: [ Container( width: 20.0.w(), height: 20.0.w(), margin: EdgeInsets.symmetric( horizontal: 10.0.w(), vertical: 10.0.h(), ), padding: EdgeInsets.all(3), decoration: BoxDecoration( shape: BoxShape.circle, border: Border.all( color: isSelected ? AppColors.mainBlue : AppColors.grey70, width: 2.0, ), ), alignment: Alignment.center, child: Container( decoration: BoxDecoration( shape: BoxShape.circle, color: isSelected ? AppColors.mainBlue : Colors.transparent, ), ), ), Text( title, style: TextStyle( fontSize: 16.0.sp(), fontWeight: FontWeight.w400, color: AppColors.grey80, ), ), ], ), ), ); } }