import 'package:hub/commons/actions/api_calls.dart'; import 'package:hub/commons/components/templates/exception/widget.dart'; import '/commons/widgets/flutter_flow_theme.dart'; import '/commons/widgets/flutter_flow_util.dart'; import '/commons/widgets/flutter_flow_widgets.dart'; import 'package:flutter/material.dart'; import 'package:google_fonts/google_fonts.dart'; import 'model.dart'; export 'model.dart'; class ForgotPasswordTemplateComponentWidget extends StatefulWidget { const ForgotPasswordTemplateComponentWidget({super.key}); @override State createState() => _ForgotPasswordTemplateComponentWidgetState(); } class _ForgotPasswordTemplateComponentWidgetState extends State { late ForgotPasswordTemplateComponentModel _model; @override void setState(VoidCallback callback) { super.setState(callback); _model.onUpdate(); } @override void initState() { super.initState(); _model = createModel(context, () => ForgotPasswordTemplateComponentModel()); _model.emailAddressTextController ??= TextEditingController(); _model.emailAddressFocusNode ??= FocusNode(); } @override void dispose() { _model.maybeDispose(); super.dispose(); } @override Widget build(BuildContext context) { return Align( alignment: const AlignmentDirectional(0.0, 1.0), child: Container( width: double.infinity, height: 300.0, constraints: const BoxConstraints( maxWidth: 570.0, ), decoration: BoxDecoration( color: FlutterFlowTheme.of(context).primaryBackground, borderRadius: const BorderRadius.only( bottomLeft: Radius.circular(0.0), bottomRight: Radius.circular(0.0), topLeft: Radius.circular(15.0), topRight: Radius.circular(15.0), ), ), child: Column( mainAxisSize: MainAxisSize.max, mainAxisAlignment: MainAxisAlignment.center, crossAxisAlignment: CrossAxisAlignment.start, children: [ // This row exists for when the "app bar" is hidden on desktop, having a way back for the user can work well. if (responsiveVisibility( context: context, phone: false, tablet: false, )) Padding( padding: const EdgeInsetsDirectional.fromSTEB(16.0, 0.0, 16.0, 8.0), child: InkWell( splashColor: Colors.transparent, focusColor: Colors.transparent, hoverColor: Colors.transparent, highlightColor: Colors.transparent, onTap: () async { context.safePop(); }, child: Row( mainAxisSize: MainAxisSize.max, children: [ const Padding( padding: EdgeInsetsDirectional.fromSTEB( 0.0, 12.0, 0.0, 12.0), child: Icon( Icons.arrow_back_rounded, color: Color(0xFF15161E), size: 24.0, ), ), Padding( padding: const EdgeInsetsDirectional.fromSTEB(12.0, 0.0, 0.0, 0.0), child: Text( '', style: FlutterFlowTheme.of(context).bodyMedium.override( fontFamily: 'Plus Jakarta Sans', color: const Color(0xFF15161E), fontSize: 14.0, letterSpacing: 0.0, fontWeight: FontWeight.w500, useGoogleFonts: GoogleFonts.asMap() .containsKey('Plus Jakarta Sans'), ), ), ), ], ), ), ), Padding( padding: const EdgeInsetsDirectional.fromSTEB(16.0, 0.0, 0.0, 0.0), child: Text( FFLocalizations.of(context).getText( 'xxm3ajsy' /* ESQUECEU SUA SENHA? */, ), style: FlutterFlowTheme.of(context).headlineMedium.override( fontFamily: 'Outfit', color: FlutterFlowTheme.of(context).primaryText, fontSize: 24.0, letterSpacing: 0.0, fontWeight: FontWeight.w500, useGoogleFonts: GoogleFonts.asMap().containsKey('Outfit'), ), ), ), Padding( padding: const EdgeInsetsDirectional.fromSTEB(16.0, 4.0, 16.0, 4.0), child: Text( FFLocalizations.of(context).getText( 'wu2f7yzo' /* Não se preucupe nós vamos te a... */, ), style: FlutterFlowTheme.of(context).labelMedium.override( fontFamily: 'Plus Jakarta Sans', color: FlutterFlowTheme.of(context).primaryText, fontSize: 14.0, letterSpacing: 0.0, fontWeight: FontWeight.w500, useGoogleFonts: GoogleFonts.asMap().containsKey('Plus Jakarta Sans'), ), ), ), Padding( padding: const EdgeInsetsDirectional.fromSTEB(16.0, 12.0, 16.0, 0.0), child: SizedBox( width: double.infinity, child: TextFormField( controller: _model.emailAddressTextController, focusNode: _model.emailAddressFocusNode, autofillHints: const [AutofillHints.email], obscureText: false, decoration: InputDecoration( isDense: true, labelText: FFLocalizations.of(context).getText( 'mtz8l7ft' /* Email */, ), labelStyle: FlutterFlowTheme.of(context).labelMedium.override( fontFamily: 'Plus Jakarta Sans', color: FlutterFlowTheme.of(context).accent1, fontSize: 14.0, letterSpacing: 0.0, fontWeight: FontWeight.w500, useGoogleFonts: GoogleFonts.asMap() .containsKey('Plus Jakarta Sans'), ), hintText: FFLocalizations.of(context).getText( 'w7y5wlnv' /* digite o seu email..... */, ), hintStyle: FlutterFlowTheme.of(context).labelMedium.override( fontFamily: 'Plus Jakarta Sans', color: FlutterFlowTheme.of(context).primaryText, fontSize: 14.0, letterSpacing: 0.0, fontWeight: FontWeight.w500, useGoogleFonts: GoogleFonts.asMap() .containsKey('Plus Jakarta Sans'), ), enabledBorder: OutlineInputBorder( borderSide: BorderSide( color: FlutterFlowTheme.of(context).accent1, width: 2.0, ), borderRadius: BorderRadius.circular(12.0), ), focusedBorder: OutlineInputBorder( borderSide: BorderSide( color: FlutterFlowTheme.of(context).accent3, width: 2.0, ), borderRadius: BorderRadius.circular(12.0), ), errorBorder: OutlineInputBorder( borderSide: BorderSide( color: FlutterFlowTheme.of(context).error, width: 2.0, ), borderRadius: BorderRadius.circular(12.0), ), focusedErrorBorder: OutlineInputBorder( borderSide: BorderSide( color: FlutterFlowTheme.of(context).error, width: 2.0, ), borderRadius: BorderRadius.circular(12.0), ), filled: true, fillColor: FlutterFlowTheme.of(context).primaryBackground, contentPadding: const EdgeInsetsDirectional.fromSTEB(24.0, 24.0, 20.0, 24.0), suffixIcon: Icon( Icons.email, color: FlutterFlowTheme.of(context).accent1, size: 22.0, ), ), style: FlutterFlowTheme.of(context).bodyMedium.override( fontFamily: 'Plus Jakarta Sans', color: FlutterFlowTheme.of(context).primaryText, fontSize: 14.0, letterSpacing: 0.0, fontWeight: FontWeight.w500, useGoogleFonts: GoogleFonts.asMap() .containsKey('Plus Jakarta Sans'), ), maxLines: null, keyboardType: TextInputType.emailAddress, cursorColor: const Color(0xFF6F61EF), validator: _model.emailAddressTextControllerValidator .asValidator(context), ), ), ), Align( alignment: const AlignmentDirectional(0.0, 0.0), child: Padding( padding: const EdgeInsetsDirectional.fromSTEB(0.0, 24.0, 0.0, 0.0), child: FFButtonWidget( onPressed: () async { _model.req = await PhpGroup.forgotPasswordCall.call( email: _model.emailAddressTextController.text, ); if (PhpGroup.forgotPasswordCall.error( (_model.req?.jsonBody ?? ''), ) == false) { Navigator.pop(context); } else { await showModalBottomSheet( isScrollControlled: true, backgroundColor: Colors.transparent, enableDrag: false, context: context, builder: (context) { return Padding( padding: MediaQuery.viewInsetsOf(context), child: ThrowExceptionWidget( msg: PhpGroup.forgotPasswordCall.msg( (_model.req?.jsonBody ?? ''), )!, ), ); }, ).then((value) => safeSetState(() {})); } setState(() {}); }, text: FFLocalizations.of(context).getText( '74rnd5bu' /* Enviar */, ), options: FFButtonOptions( width: 270.0, height: 50.0, padding: const EdgeInsetsDirectional.fromSTEB(0.0, 0.0, 0.0, 0.0), iconPadding: const EdgeInsetsDirectional.fromSTEB(0.0, 0.0, 0.0, 0.0), color: const Color(0xFF1AAB5F), textStyle: FlutterFlowTheme.of(context).titleSmall.override( fontFamily: 'Plus Jakarta Sans', color: Colors.white, fontSize: 16.0, letterSpacing: 0.0, fontWeight: FontWeight.w500, useGoogleFonts: GoogleFonts.asMap() .containsKey('Plus Jakarta Sans'), ), elevation: 3.0, borderSide: const BorderSide( color: Colors.transparent, width: 1.0, ), ), showLoadingIndicator: false, ), ), ), ], ), ), ); } }