import 'package:flutter/material.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:wow_english/common/extension/string_extension.dart'; import 'package:wow_english/common/widgets/textfield_customer_widget.dart'; import 'package:wow_english/pages/shop/exchane/widegts/exchange_result_dialog.dart'; import 'package:wow_english/route/route.dart'; import 'package:wow_english/utils/toast_util.dart'; import 'bloc/exchange_lesson_bloc.dart'; class ExchangeLessonPage extends StatelessWidget { const ExchangeLessonPage({super.key}); @override Widget build(BuildContext context) { return BlocProvider( create: (context) => ExchangeLessonBloc(), child: _ExchangeLessonPage(), ); } } class _ExchangeLessonPage extends StatelessWidget { @override Widget build(BuildContext context) { return BlocListener( listener: (context, state) { if (state is CheckCodeResultState) { showDialog( context: context, barrierDismissible: !state.result, builder: (context){ return ExChangeResultDialog( resultType:state.result, onTap:(){ } ); }); } }, child: _exchangeLessonPageView(), ); } Widget _exchangeLessonPageView() => BlocBuilder(builder: (context, state) { final bloc = BlocProvider.of(context); return Scaffold( resizeToAvoidBottomInset: false, body: Container( color: Colors.white, child: Column( mainAxisAlignment: MainAxisAlignment.center, children: [ 10.5.verticalSpace, Padding( padding: EdgeInsets.symmetric(horizontal: 15.w), child: Row( mainAxisAlignment: MainAxisAlignment.spaceBetween, crossAxisAlignment: CrossAxisAlignment.start, children: [ IconButton( icon: Image.asset( 'back_around'.assetPng, width: 40, height: 40, ), color: Colors.white, onPressed: () { Navigator.pop(context); }, ), Image.asset( 'wow_ex_lesson'.assetPng, width: 139.w, height: 81.h, ), SizedBox.fromSize(size: const Size(40.0, 40.0)) ], ), ), Expanded( child: Padding( padding: EdgeInsets.symmetric(horizontal: 135.w), child: Column( mainAxisAlignment: MainAxisAlignment.center, children: [ TextFieldCustomerWidget( height: 55.h, hitText: '请输入兑换码', bgImageName: 'Input_layer_up', textInputType: TextInputType.emailAddress, controller: bloc.codeNumberController, onChangeValue: (String value) { bloc.add(CodeNumberChangeEvent()); }, ), 21.5.verticalSpace, GestureDetector( onTap: () { if (bloc.checkCode) { bloc.add(CheckCodeEvent()); } }, child: Container( decoration: BoxDecoration( image: DecorationImage( image: AssetImage(bloc.checkCode ? 'ex_sure'.assetPng : 'ex_dis'.assetPng), fit: BoxFit.fill), ), padding: EdgeInsets.symmetric(horizontal: 27.w, vertical: 14.h), child: Text( '兑换', style: TextStyle(fontSize: 16.sp, color: Colors.white), ), ), ) ], ), ), ), Image.asset( 'bottom_grass'.assetPng, ), ], ), ), ); }); }