import '/backend/api_requests/api_calls.dart'; import '/components/alert_box_custom_widget.dart'; import '/components/appbar_widget.dart'; import '/components/nav_bar1_widget.dart'; import '/components/new_member_widget.dart'; import '/components/update_member_widget.dart'; import '/flutterlib/flutter_theme.dart'; import '/flutterlib/flutter_util.dart'; import '/flutterlib/flutter_widgets.dart'; import '/flutterlib/custom_functions.dart' as functions; import 'package:aligned_dialog/aligned_dialog.dart'; import 'package:flutter/material.dart'; import 'package:flutter/scheduler.dart'; import 'package:flutter/services.dart'; import 'package:flutter_svg/flutter_svg.dart'; import 'package:google_fonts/google_fonts.dart'; import 'package:provider/provider.dart'; import 'dashboard_model.dart'; export 'dashboard_model.dart'; class DashboardWidget extends StatefulWidget { const DashboardWidget({Key? key}) : super(key: key); @override _DashboardWidgetState createState() => _DashboardWidgetState(); } class _DashboardWidgetState extends State { late DashboardModel _model; final scaffoldKey = GlobalKey(); @override void initState() { super.initState(); _model = createModel(context, () => DashboardModel()); // On page load action. SchedulerBinding.instance.addPostFrameCallback((_) async { _model.apiResult19 = await NumstationGroup.checkRoleHasPermissionCall.call( token: FFAppState().token, roleId: FFAppState().roleID, permissionId: 19, ); if ((_model.apiResult19?.succeeded ?? true)) { setState(() { _model.checkPermission19 = getJsonField( (_model.apiResult19?.jsonBody ?? ''), r'''$.success''', ); }); } }); _model.companyEnFocusNode ??= FocusNode(); _model.companyCnFocusNode ??= FocusNode(); _model.officeAddEnFocusNode ??= FocusNode(); _model.officeAddCnFocusNode ??= FocusNode(); _model.bRnoFocusNode ??= FocusNode(); } @override void dispose() { _model.dispose(); super.dispose(); } @override Widget build(BuildContext context) { if (isiOS) { SystemChrome.setSystemUIOverlayStyle( SystemUiOverlayStyle( statusBarBrightness: Theme.of(context).brightness, systemStatusBarContrastEnforced: true, ), ); } context.watch(); return GestureDetector( onTap: () => _model.unfocusNode.canRequestFocus ? FocusScope.of(context).requestFocus(_model.unfocusNode) : FocusScope.of(context).unfocus(), child: Scaffold( key: scaffoldKey, backgroundColor: Color(0xFFEBEBE4), drawer: Container( width: 180.0, child: Drawer( elevation: 16.0, child: Container( width: 100.0, height: 100.0, decoration: BoxDecoration( color: Color(0xFF009B9A), ), child: Column( mainAxisSize: MainAxisSize.max, children: [ Padding( padding: EdgeInsetsDirectional.fromSTEB(0.0, 80.0, 0.0, 0.0), child: Row( mainAxisSize: MainAxisSize.max, children: [ Container( width: 180.0, height: 61.0, decoration: BoxDecoration( color: Color(0xFF009B9A), ), child: InkWell( splashColor: Colors.transparent, focusColor: Colors.transparent, hoverColor: Colors.transparent, highlightColor: Colors.transparent, onTap: () async { context.pushNamed('account'); }, child: Row( mainAxisSize: MainAxisSize.max, mainAxisAlignment: MainAxisAlignment.start, children: [ Padding( padding: EdgeInsetsDirectional.fromSTEB( 15.0, 8.0, 0.0, 0.0), child: Container( width: 40.0, height: 40.0, decoration: BoxDecoration( color: FlutterTheme.of(context) .secondaryBackground, shape: BoxShape.circle, ), child: Align( alignment: AlignmentDirectional(0.0, 0.0), child: ClipRRect( borderRadius: BorderRadius.circular(8.0), child: SvgPicture.asset( 'assets/images/company.svg', width: 30.0, height: 30.0, fit: BoxFit.contain, ), ), ), ), ), Padding( padding: EdgeInsetsDirectional.fromSTEB( 8.0, 8.0, 0.0, 0.0), child: Text( FFLocalizations.of(context).getText( 'wvqwe2k3' /* ABC Ltd */, ), style: FlutterTheme.of(context) .bodyMedium .override( fontFamily: 'Readex Pro', color: Colors.white, fontSize: 16.0, ), ), ), ], ), ), ), ], ), ), Container( width: 180.0, height: 61.0, decoration: BoxDecoration( color: Color(0xFF009B9A), ), child: InkWell( splashColor: Colors.transparent, focusColor: Colors.transparent, hoverColor: Colors.transparent, highlightColor: Colors.transparent, onTap: () async { context.pushNamed('account1'); }, child: Row( mainAxisSize: MainAxisSize.max, mainAxisAlignment: MainAxisAlignment.start, children: [ ClipRRect( borderRadius: BorderRadius.circular(8.0), child: SvgPicture.asset( 'assets/images/Group_2640.svg', width: 0.0, height: 0.0, fit: BoxFit.contain, ), ), Align( alignment: AlignmentDirectional(0.0, 0.0), child: Padding( padding: EdgeInsetsDirectional.fromSTEB( 5.0, 0.0, 0.0, 0.0), child: ClipRRect( borderRadius: BorderRadius.circular(8.0), child: Image.asset( 'assets/images/account.png', width: 50.0, height: 50.0, fit: BoxFit.cover, ), ), ), ), Padding( padding: EdgeInsetsDirectional.fromSTEB( 8.0, 0.0, 0.0, 0.0), child: Text( FFLocalizations.of(context).getText( 'xicpgkfa' /* Account */, ), style: FlutterTheme.of(context) .bodyMedium .override( fontFamily: 'Readex Pro', color: Colors.white, fontSize: 16.0, ), ), ), ], ), ), ), Container( width: 180.0, height: 61.0, decoration: BoxDecoration( color: Color(0xFF009B9A), ), child: InkWell( splashColor: Colors.transparent, focusColor: Colors.transparent, hoverColor: Colors.transparent, highlightColor: Colors.transparent, onTap: () async { context.pushNamed('tnc'); }, child: Row( mainAxisSize: MainAxisSize.max, mainAxisAlignment: MainAxisAlignment.start, children: [ ClipRRect( borderRadius: BorderRadius.circular(8.0), child: SvgPicture.asset( 'assets/images/document.svg', width: 0.0, height: 0.0, fit: BoxFit.contain, ), ), Align( alignment: AlignmentDirectional(0.0, 0.0), child: Padding( padding: EdgeInsetsDirectional.fromSTEB( 16.0, 0.0, 0.0, 0.0), child: ClipRRect( borderRadius: BorderRadius.circular(8.0), child: SvgPicture.asset( 'assets/images/tnc.svg', width: 30.0, height: 30.0, fit: BoxFit.cover, ), ), ), ), Padding( padding: EdgeInsetsDirectional.fromSTEB( 17.0, 0.0, 0.0, 0.0), child: Text( FFLocalizations.of(context).getText( 'ygpwwn63' /* T&C */, ), style: FlutterTheme.of(context) .bodyMedium .override( fontFamily: 'Readex Pro', color: Colors.white, fontSize: 16.0, ), ), ), ClipRRect( borderRadius: BorderRadius.circular(8.0), child: SvgPicture.asset( 'assets/images/Group_2640.svg', width: 0.0, height: 0.0, fit: BoxFit.fitHeight, ), ), ], ), ), ), Container( width: 180.0, height: 61.0, decoration: BoxDecoration( color: Color(0xFF009B9A), ), child: InkWell( splashColor: Colors.transparent, focusColor: Colors.transparent, hoverColor: Colors.transparent, highlightColor: Colors.transparent, onTap: () async { context.pushNamed('policy'); }, child: Row( mainAxisSize: MainAxisSize.max, mainAxisAlignment: MainAxisAlignment.start, children: [ ClipRRect( borderRadius: BorderRadius.circular(8.0), child: SvgPicture.asset( 'assets/images/Group_2640.svg', width: 0.0, height: 0.0, fit: BoxFit.contain, ), ), Align( alignment: AlignmentDirectional(0.0, 0.0), child: Padding( padding: EdgeInsetsDirectional.fromSTEB( 16.0, 0.0, 0.0, 0.0), child: ClipRRect( borderRadius: BorderRadius.circular(8.0), child: SvgPicture.asset( 'assets/images/pp.svg', width: 30.0, height: 30.0, fit: BoxFit.cover, ), ), ), ), Padding( padding: EdgeInsetsDirectional.fromSTEB( 16.0, 0.0, 0.0, 0.0), child: Text( FFLocalizations.of(context).getText( 'ok5mbgyz' /* Privacy Policy */ , ), style: FlutterTheme.of(context) .bodyMedium .override( fontFamily: 'Readex Pro', color: Colors.white, fontSize: 16.0, ), ), ), ], ), ), ), Container( width: 180.0, height: 61.0, decoration: BoxDecoration( color: Color(0xFF009B9A), ), child: InkWell( splashColor: Colors.transparent, focusColor: Colors.transparent, hoverColor: Colors.transparent, highlightColor: Colors.transparent, onTap: () async { context.pushNamed('language'); }, child: Row( mainAxisSize: MainAxisSize.max, mainAxisAlignment: MainAxisAlignment.start, children: [ ClipRRect( borderRadius: BorderRadius.circular(8.0), child: SvgPicture.asset( 'assets/images/Group_2640.svg', width: 0.0, height: 0.0, fit: BoxFit.contain, ), ), Align( alignment: AlignmentDirectional(0.0, 0.0), child: Padding( padding: EdgeInsetsDirectional.fromSTEB( 16.0, 0.0, 0.0, 0.0), child: ClipRRect( borderRadius: BorderRadius.circular(8.0), child: SvgPicture.asset( 'assets/images/language.svg', width: 30.0, height: 30.0, fit: BoxFit.contain, ), ), ), ), Padding( padding: EdgeInsetsDirectional.fromSTEB( 15.0, 0.0, 0.0, 0.0), child: Text( FFLocalizations.of(context).getText( 'j2t66mhq' /* Languages */, ), style: FlutterTheme.of(context) .bodyMedium .override( fontFamily: 'Readex Pro', color: Colors.white, fontSize: 16.0, ), ), ), ], ), ), ), Container( width: 180.0, height: 61.0, decoration: BoxDecoration( color: Color(0xFF009B9A), ), child: InkWell( splashColor: Colors.transparent, focusColor: Colors.transparent, hoverColor: Colors.transparent, highlightColor: Colors.transparent, onTap: () async { context.pushNamed('setting'); }, child: Row( mainAxisSize: MainAxisSize.max, mainAxisAlignment: MainAxisAlignment.start, children: [ ClipRRect( borderRadius: BorderRadius.circular(8.0), child: SvgPicture.asset( 'assets/images/Group_2640.svg', width: 0.0, height: 0.0, fit: BoxFit.contain, ), ), Align( alignment: AlignmentDirectional(0.0, 0.0), child: Padding( padding: EdgeInsetsDirectional.fromSTEB( 16.0, 0.0, 0.0, 0.0), child: ClipRRect( borderRadius: BorderRadius.circular(8.0), child: SvgPicture.asset( 'assets/images/setting-2.svg', width: 30.0, height: 30.0, fit: BoxFit.contain, ), ), ), ), Padding( padding: EdgeInsetsDirectional.fromSTEB( 15.0, 0.0, 0.0, 0.0), child: Text( FFLocalizations.of(context).getText( 'c5q61d3t' /* Settings */, ), style: FlutterTheme.of(context) .bodyMedium .override( fontFamily: 'Readex Pro', color: Colors.white, fontSize: 16.0, ), ), ), ], ), ), ), ], ), ), ), ), appBar: PreferredSize( preferredSize: Size.fromHeight(0.0), child: AppBar( backgroundColor: Color(0xFFE7E36B), automaticallyImplyLeading: false, title: Text( FFLocalizations.of(context).getText( 'atnwqmfx' /* Page Title */, ), style: FlutterTheme.of(context).headlineMedium.override( fontFamily: 'Outfit', color: Colors.white, fontSize: 22.0, ), ), actions: [], centerTitle: false, elevation: 0.0, ), ), body: SafeArea( top: true, child: Stack( children: [ FutureBuilder( future: NumstationGroup.getCompanyDetailsCall.call( token: FFAppState().token, ), builder: (context, snapshot) { // Customize what your widget looks like when it's loading. if (!snapshot.hasData) { return Center( child: SizedBox( width: 50.0, height: 50.0, child: CircularProgressIndicator( valueColor: AlwaysStoppedAnimation( FlutterTheme.of(context).info, ), ), ), ); } final columnGetCompanyDetailsResponse = snapshot.data!; return SingleChildScrollView( child: Column( mainAxisSize: MainAxisSize.max, children: [ Padding( padding: EdgeInsetsDirectional.fromSTEB( 0.0, 16.0, 0.0, 150.0), child: SingleChildScrollView( child: Column( mainAxisSize: MainAxisSize.max, mainAxisAlignment: MainAxisAlignment.center, children: [ Align( alignment: AlignmentDirectional(0.0, 1.0), child: Padding( padding: EdgeInsetsDirectional.fromSTEB( 0.0, 100.0, 0.0, 8.0), child: Text( FFLocalizations.of(context).getText( 'dylii6mm' /* General Information */, ), style: FlutterTheme.of(context) .bodyMedium .override( fontFamily: 'Readex Pro', color: Color(0xFF364257), fontSize: 24.0, ), ), ), ), Align( alignment: AlignmentDirectional(0.0, 0.0), child: Padding( padding: EdgeInsetsDirectional.fromSTEB( 0.0, 8.0, 0.0, 28.0), child: Container( width: () { if (MediaQuery.sizeOf(context).width < 428.0) { return 338.0; } else if (MediaQuery.sizeOf(context) .width >= 428.0) { return 358.0; } else { return 348.0; } }(), decoration: BoxDecoration( color: FlutterTheme.of(context) .secondaryBackground, boxShadow: [ BoxShadow( blurRadius: 4.0, color: Color(0x33000000), offset: Offset(0.0, 2.0), ) ], borderRadius: BorderRadius.circular(8.0), ), child: Column( mainAxisSize: MainAxisSize.max, children: [ Row( mainAxisSize: MainAxisSize.max, mainAxisAlignment: MainAxisAlignment.center, children: [ Align( alignment: AlignmentDirectional( 0.0, 0.0), child: Padding( padding: EdgeInsetsDirectional .fromSTEB( 0.0, 19.0, 0.0, 0.0), child: Text( FFLocalizations.of(context) .getText( 'dz1z7sn0' /* Company registration informati... */, ), style: FlutterTheme.of( context) .bodyMedium .override( fontFamily: 'Roboto', color: Color(0xFF009B9A), fontSize: 20.0, fontWeight: FontWeight.w500, ), ), ), ), ], ), Padding( padding: EdgeInsetsDirectional.fromSTEB( 0.0, 20.0, 0.0, 12.0), child: Row( mainAxisSize: MainAxisSize.max, children: [ Padding( padding: EdgeInsetsDirectional .fromSTEB( 16.0, 0.0, 0.0, 0.0), child: Text( FFLocalizations.of(context) .getText( '5y954u1t' /* Company name(English) */, ), style: FlutterTheme.of( context) .bodyMedium .override( fontFamily: 'Roboto', color: Colors.black, fontSize: 16.0, fontWeight: FontWeight.w500, ), ), ), ], ), ), Row( mainAxisSize: MainAxisSize.max, children: [ Expanded( child: Padding( padding: EdgeInsetsDirectional .fromSTEB( 8.0, 0.0, 8.0, 0.0), child: Container( width: 326.0, child: TextFormField( controller: _model .companyEnController ??= TextEditingController( text: getJsonField( columnGetCompanyDetailsResponse .jsonBody, r'''$.data.company.name_english''', ).toString(), ), focusNode: _model .companyEnFocusNode, readOnly: _model .checkPermission19 != true, obscureText: false, decoration: InputDecoration( labelStyle: FlutterTheme.of( context) .labelMedium, hintStyle: FlutterTheme.of( context) .labelMedium, enabledBorder: OutlineInputBorder( borderSide: BorderSide( color: Color( 0x00000000), width: 2.0, ), borderRadius: BorderRadius .circular( 23.8), ), focusedBorder: OutlineInputBorder( borderSide: BorderSide( color: FlutterTheme .of(context) .primary, width: 2.0, ), borderRadius: BorderRadius .circular( 23.8), ), errorBorder: OutlineInputBorder( borderSide: BorderSide( color: FlutterTheme .of(context) .error, width: 2.0, ), borderRadius: BorderRadius .circular( 23.8), ), focusedErrorBorder: OutlineInputBorder( borderSide: BorderSide( color: FlutterTheme .of(context) .error, width: 2.0, ), borderRadius: BorderRadius .circular( 23.8), ), filled: true, fillColor: Color(0xFF6D7581), ), style: FlutterTheme.of( context) .bodyMedium .override( fontFamily: 'Readex Pro', fontSize: 16.0, ), validator: _model .companyEnControllerValidator .asValidator(context), ), ), ), ), ], ), Padding( padding: EdgeInsetsDirectional.fromSTEB( 0.0, 20.0, 0.0, 12.0), child: Row( mainAxisSize: MainAxisSize.max, children: [ Padding( padding: EdgeInsetsDirectional .fromSTEB( 16.0, 0.0, 0.0, 0.0), child: Text( FFLocalizations.of(context) .getText( '67062bi7' /* Company name(Chinese) */, ), style: FlutterTheme.of( context) .bodyMedium .override( fontFamily: 'Roboto', color: Colors.black, fontSize: 16.0, fontWeight: FontWeight.w500, ), ), ), ], ), ), Row( mainAxisSize: MainAxisSize.max, children: [ Expanded( child: Padding( padding: EdgeInsetsDirectional .fromSTEB( 8.0, 0.0, 8.0, 0.0), child: Container( width: 326.0, child: TextFormField( controller: _model .companyCnController ??= TextEditingController( text: getJsonField( columnGetCompanyDetailsResponse .jsonBody, r'''$.data.company.name_chinese''', ).toString(), ), focusNode: _model .companyCnFocusNode, readOnly: _model .checkPermission19 != true, obscureText: false, decoration: InputDecoration( labelStyle: FlutterTheme.of( context) .labelMedium, hintStyle: FlutterTheme.of( context) .labelMedium, enabledBorder: OutlineInputBorder( borderSide: BorderSide( color: Color( 0x00000000), width: 2.0, ), borderRadius: BorderRadius .circular( 23.8), ), focusedBorder: OutlineInputBorder( borderSide: BorderSide( color: FlutterTheme .of(context) .primary, width: 2.0, ), borderRadius: BorderRadius .circular( 23.8), ), errorBorder: OutlineInputBorder( borderSide: BorderSide( color: FlutterTheme .of(context) .error, width: 2.0, ), borderRadius: BorderRadius .circular( 23.8), ), focusedErrorBorder: OutlineInputBorder( borderSide: BorderSide( color: FlutterTheme .of(context) .error, width: 2.0, ), borderRadius: BorderRadius .circular( 23.8), ), filled: true, fillColor: Color(0xFF6D7581), ), style: FlutterTheme.of( context) .bodyMedium .override( fontFamily: 'Readex Pro', fontSize: 16.0, ), validator: _model .companyCnControllerValidator .asValidator(context), ), ), ), ), ], ), Padding( padding: EdgeInsetsDirectional.fromSTEB( 0.0, 20.0, 0.0, 12.0), child: Row( mainAxisSize: MainAxisSize.max, children: [ Padding( padding: EdgeInsetsDirectional .fromSTEB( 16.0, 0.0, 0.0, 0.0), child: Text( FFLocalizations.of(context) .getText( 'mrkkzmmi' /* Registered office address(Engl... */, ), style: FlutterTheme.of( context) .bodyMedium .override( fontFamily: 'Roboto', color: Colors.black, fontSize: 16.0, fontWeight: FontWeight.w500, ), ), ), ], ), ), Row( mainAxisSize: MainAxisSize.max, children: [ Expanded( child: Padding( padding: EdgeInsetsDirectional .fromSTEB( 8.0, 0.0, 8.0, 0.0), child: Container( width: 326.0, child: TextFormField( controller: _model .officeAddEnController ??= TextEditingController( text: getJsonField( columnGetCompanyDetailsResponse .jsonBody, r'''$.data.company.registered_office_address_english''', ).toString(), ), focusNode: _model .officeAddEnFocusNode, readOnly: _model .checkPermission19 != true, obscureText: false, decoration: InputDecoration( labelStyle: FlutterTheme.of( context) .labelMedium, hintStyle: FlutterTheme.of( context) .labelMedium, enabledBorder: OutlineInputBorder( borderSide: BorderSide( color: Color( 0x00000000), width: 2.0, ), borderRadius: BorderRadius .circular( 23.8), ), focusedBorder: OutlineInputBorder( borderSide: BorderSide( color: FlutterTheme .of(context) .primary, width: 2.0, ), borderRadius: BorderRadius .circular( 23.8), ), errorBorder: OutlineInputBorder( borderSide: BorderSide( color: FlutterTheme .of(context) .error, width: 2.0, ), borderRadius: BorderRadius .circular( 23.8), ), focusedErrorBorder: OutlineInputBorder( borderSide: BorderSide( color: FlutterTheme .of(context) .error, width: 2.0, ), borderRadius: BorderRadius .circular( 23.8), ), filled: true, fillColor: Color(0xFF6D7581), ), style: FlutterTheme.of( context) .bodyMedium .override( fontFamily: 'Readex Pro', fontSize: 16.0, ), validator: _model .officeAddEnControllerValidator .asValidator(context), ), ), ), ), ], ), Padding( padding: EdgeInsetsDirectional.fromSTEB( 0.0, 20.0, 0.0, 12.0), child: Row( mainAxisSize: MainAxisSize.max, children: [ Padding( padding: EdgeInsetsDirectional .fromSTEB( 16.0, 0.0, 0.0, 0.0), child: Text( FFLocalizations.of(context) .getText( 'd5nvmj4k' /* Registered office address(Chin... */, ), style: FlutterTheme.of( context) .bodyMedium .override( fontFamily: 'Roboto', color: Colors.black, fontSize: 16.0, fontWeight: FontWeight.w500, ), ), ), ], ), ), Row( mainAxisSize: MainAxisSize.max, children: [ Expanded( child: Padding( padding: EdgeInsetsDirectional .fromSTEB( 8.0, 0.0, 8.0, 0.0), child: Container( width: 326.0, child: TextFormField( controller: _model .officeAddCnController ??= TextEditingController( text: getJsonField( columnGetCompanyDetailsResponse .jsonBody, r'''$.data.company.registered_office_address_chinese''', ).toString(), ), focusNode: _model .officeAddCnFocusNode, readOnly: _model .checkPermission19 != true, obscureText: false, decoration: InputDecoration( labelStyle: FlutterTheme.of( context) .labelMedium, hintStyle: FlutterTheme.of( context) .labelMedium, enabledBorder: OutlineInputBorder( borderSide: BorderSide( color: Color( 0x00000000), width: 2.0, ), borderRadius: BorderRadius .circular( 23.8), ), focusedBorder: OutlineInputBorder( borderSide: BorderSide( color: FlutterTheme .of(context) .primary, width: 2.0, ), borderRadius: BorderRadius .circular( 23.8), ), errorBorder: OutlineInputBorder( borderSide: BorderSide( color: FlutterTheme .of(context) .error, width: 2.0, ), borderRadius: BorderRadius .circular( 23.8), ), focusedErrorBorder: OutlineInputBorder( borderSide: BorderSide( color: FlutterTheme .of(context) .error, width: 2.0, ), borderRadius: BorderRadius .circular( 23.8), ), filled: true, fillColor: Color(0xFF6D7581), ), style: FlutterTheme.of( context) .bodyMedium .override( fontFamily: 'Readex Pro', fontSize: 16.0, ), validator: _model .officeAddCnControllerValidator .asValidator(context), ), ), ), ), ], ), Padding( padding: EdgeInsetsDirectional.fromSTEB( 0.0, 20.0, 0.0, 12.0), child: Row( mainAxisSize: MainAxisSize.max, children: [ Padding( padding: EdgeInsetsDirectional .fromSTEB( 16.0, 0.0, 0.0, 0.0), child: Text( FFLocalizations.of(context) .getText( '6fpayl5j' /* BR number */, ), style: FlutterTheme.of( context) .bodyMedium .override( fontFamily: 'Roboto', color: Colors.black, fontSize: 16.0, fontWeight: FontWeight.w500, ), ), ), ], ), ), Padding( padding: EdgeInsetsDirectional.fromSTEB( 0.0, 0.0, 0.0, 20.0), child: Row( mainAxisSize: MainAxisSize.max, children: [ Expanded( child: Padding( padding: EdgeInsetsDirectional .fromSTEB(8.0, 0.0, 8.0, 0.0), child: Container( width: 326.0, child: TextFormField( controller: _model .bRnoController ??= TextEditingController( text: getJsonField( columnGetCompanyDetailsResponse .jsonBody, r'''$.data.company.br_number''', ).toString(), ), focusNode: _model .bRnoFocusNode, readOnly: _model .checkPermission19 != true, obscureText: false, decoration: InputDecoration( labelStyle: FlutterTheme.of( context) .labelMedium, hintStyle: FlutterTheme.of( context) .labelMedium, enabledBorder: OutlineInputBorder( borderSide: BorderSide( color: Color( 0x00000000), width: 2.0, ), borderRadius: BorderRadius .circular( 23.8), ), focusedBorder: OutlineInputBorder( borderSide: BorderSide( color: FlutterTheme .of(context) .primary, width: 2.0, ), borderRadius: BorderRadius .circular( 23.8), ), errorBorder: OutlineInputBorder( borderSide: BorderSide( color: FlutterTheme .of(context) .error, width: 2.0, ), borderRadius: BorderRadius .circular( 23.8), ), focusedErrorBorder: OutlineInputBorder( borderSide: BorderSide( color: FlutterTheme .of(context) .error, width: 2.0, ), borderRadius: BorderRadius .circular( 23.8), ), filled: true, fillColor: Color(0xFF6D7581), ), style: FlutterTheme .of(context) .bodyMedium .override( fontFamily: 'Readex Pro', fontSize: 16.0, ), keyboardType: TextInputType .number, validator: _model .bRnoControllerValidator .asValidator( context), ), ), ), ), ], ), ), if (_model.checkPermission19 == true) Builder( builder: (context) => Padding( padding: EdgeInsetsDirectional .fromSTEB( 0.0, 0.0, 0.0, 20.0), child: FFButtonWidget( onPressed: () async { _model.updateCompany = await NumstationGroup .updateCompanyDetailsCall .call( token: FFAppState().token, nameEnglish: _model .companyEnController .text, nameChinese: _model .companyCnController .text, registeredOfficeAddressEnglish: _model .officeAddEnController .text, registeredOfficeAddressChinese: _model .officeAddCnController .text, brNumber: int.tryParse( _model.bRnoController .text), ); if ((_model.updateCompany ?.succeeded ?? true)) { await showAlignedDialog( context: context, isGlobal: true, avoidOverflow: false, targetAnchor: AlignmentDirectional( 0.0, 0.0) .resolve( Directionality.of( context)), followerAnchor: AlignmentDirectional( 0.0, 0.0) .resolve( Directionality.of( context)), builder: (dialogContext) { return Material( color: Colors .transparent, child: GestureDetector( onTap: () => _model .unfocusNode .canRequestFocus ? FocusScope.of( context) .requestFocus( _model .unfocusNode) : FocusScope.of( context) .unfocus(), child: AlertBoxCustomWidget( text: 'All changes have been changed!', ), ), ); }, ).then((value) => setState(() {})); } else { await showDialog( context: context, builder: (alertDialogContext) { return AlertDialog( content: Text('Failed'), actions: [ TextButton( onPressed: () => Navigator.pop( alertDialogContext), child: Text('Ok'), ), ], ); }, ); } context .pushNamed('dashboard'); setState(() {}); }, text: FFLocalizations.of( context) .getText( 'hgvp05n2' /* Save */, ), options: FFButtonOptions( width: 326.0, height: 50.0, padding: EdgeInsets.all(0.0), iconPadding: EdgeInsetsDirectional .fromSTEB(0.0, 0.0, 0.0, 0.0), color: Color(0xFF009B9A), textStyle: FlutterTheme .of(context) .titleSmall .override( fontFamily: 'Roboto', color: Colors.white, fontSize: 20.0, ), elevation: 3.0, borderSide: BorderSide( color: Colors.transparent, width: 1.0, ), borderRadius: BorderRadius.circular( 40.0), ), ), ), ), ], ), ), ), ), Padding( padding: EdgeInsetsDirectional.fromSTEB( 0.0, 0.0, 0.0, 28.0), child: Container( width: 358.0, decoration: BoxDecoration( color: Color(0xFFF4F7FA), boxShadow: [ BoxShadow( blurRadius: 4.0, color: Color(0x33000000), offset: Offset(0.0, 2.0), ) ], borderRadius: BorderRadius.circular(8.0), ), child: SingleChildScrollView( child: Column( mainAxisSize: MainAxisSize.max, children: [ Column( mainAxisSize: MainAxisSize.max, children: [ Padding( padding: EdgeInsetsDirectional .fromSTEB( 10.0, 0.0, 0.0, 0.0), child: Row( mainAxisSize: MainAxisSize.max, mainAxisAlignment: MainAxisAlignment.start, children: [ Align( alignment: AlignmentDirectional( 0.0, 0.0), child: Padding( padding: EdgeInsetsDirectional .fromSTEB( 0.0, 19.0, 0.0, 19.0), child: Text( FFLocalizations.of( context) .getText( 'zl9e4meh' /* Company members */, ), style: FlutterTheme .of(context) .bodyMedium .override( fontFamily: 'Roboto', color: Color( 0xFF009B9A), fontSize: 20.0, fontWeight: FontWeight .w500, ), ), ), ), ], ), ), Builder( builder: (context) { final companyMembers = getJsonField( columnGetCompanyDetailsResponse .jsonBody, r'''$.data.company_members[:]''', ).toList(); return ListView.builder( padding: EdgeInsets.zero, shrinkWrap: true, scrollDirection: Axis.vertical, itemCount: companyMembers.length, itemBuilder: (context, companyMembersIndex) { final companyMembersItem = companyMembers[ companyMembersIndex]; return Container( decoration: BoxDecoration(), child: Column( mainAxisSize: MainAxisSize.max, children: [ InkWell( splashColor: Colors .transparent, focusColor: Colors .transparent, hoverColor: Colors .transparent, highlightColor: Colors .transparent, onTap: () async { setState(() { _model.memberID = getJsonField( companyMembersItem, r'''$.id''', ); }); }, child: ListTile( title: Text( 'Member ${getJsonField( companyMembersItem, r'''$.id''', ).toString()} - ${functions.convertToUpperCase(getJsonField( companyMembersItem, r'''$.title''', ).toString())} ${getJsonField( companyMembersItem, r'''$.name_english''', ).toString()}', style: FlutterTheme.of( context) .bodyMedium .override( fontFamily: 'Roboto', color: Color( 0xFF009B9A), fontSize: 20.0, fontWeight: FontWeight.w500, ), ), trailing: Icon( Icons.edit, color: FlutterTheme.of( context) .secondaryText, size: 20.0, ), tileColor: FlutterTheme.of( context) .secondaryBackground, dense: false, ), ), if (_model .memberID == getJsonField( companyMembersItem, r'''$.id''', )) Align( alignment: AlignmentDirectional( 0.0, 0.0), child: UpdateMemberWidget( key: Key( 'Key97g_${companyMembersIndex}_of_${companyMembers.length}'), memberData: companyMembersItem, companyID: getJsonField( columnGetCompanyDetailsResponse .jsonBody, r'''$.data.company.id''', ), ), ), ], ), ); }, ); }, ), Padding( padding: EdgeInsetsDirectional .fromSTEB( 0.0, 20.0, 0.0, 20.0), child: FFButtonWidget( onPressed: () async { setState(() { _model.showNewMemberForm = true; }); setState(() { FFAppState().memberID = 0; }); }, text: FFLocalizations.of( context) .getText( 'vd56ozw9' /* New member */, ), options: FFButtonOptions( width: 326.0, height: 50.0, padding: EdgeInsets.all(0.0), iconPadding: EdgeInsetsDirectional .fromSTEB(0.0, 0.0, 0.0, 0.0), color: Color(0xFF009B9A), textStyle: FlutterTheme .of(context) .titleSmall .override( fontFamily: 'Roboto', color: Colors.white, fontSize: 20.0, ), elevation: 3.0, borderSide: BorderSide( color: Colors.transparent, width: 1.0, ), borderRadius: BorderRadius.circular( 40.0), ), ), ), if (_model.showNewMemberForm == true) wrapWithModel( model: _model.newMemberModel, updateCallback: () => setState(() {}), child: NewMemberWidget( companyID: getJsonField( columnGetCompanyDetailsResponse .jsonBody, r'''$.data.company.id''', ), ), ), ], ), ], ), ), ), ), ], ), ), ), ], ), ); }, ), Align( alignment: AlignmentDirectional(0.0, 1.0), child: wrapWithModel( model: _model.navBar1Model, updateCallback: () => setState(() {}), child: NavBar1Widget(), ), ), Align( alignment: AlignmentDirectional(0.0, -1.0), child: wrapWithModel( model: _model.appbarModel, updateCallback: () => setState(() {}), child: AppbarWidget(), ), ), Align( alignment: AlignmentDirectional(1.07, -0.97), child: Padding( padding: EdgeInsetsDirectional.fromSTEB(0.0, 550.0, 30.0, 0.0), child: InkWell( splashColor: Colors.transparent, focusColor: Colors.transparent, hoverColor: Colors.transparent, highlightColor: Colors.transparent, onTap: () async { context.pushNamed('chatbox'); }, child: Container( width: 71.0, height: 71.0, decoration: BoxDecoration( gradient: LinearGradient( colors: [Color(0xFFE7E63B), Color(0xFFC6E6D7)], stops: [0.0, 1.0], begin: AlignmentDirectional(-1.0, 0.0), end: AlignmentDirectional(1.0, 0), ), shape: BoxShape.circle, ), child: ClipRRect( borderRadius: BorderRadius.circular(8.0), child: SvgPicture.asset( 'assets/images/message-2.svg', width: 100.0, height: 100.0, fit: BoxFit.none, ), ), ), ), ), ), ], ), ), ), ); } }