I am trying to make a project app and for my loginpage I liked flutter flow finwallet LoginPage I use flutter flow to visuailze my apps ui design and I very liked the LoginPage and view code when I copy code to my project its giving me to much errors I updated pubspec.yaml file and deleted LoginPage models changed FlutterFlowTheme to Theme.of(context).primaryColor
I tried to understand with vscode ai and chatgpt but It doesn't fix and automated error fixing is useless too because I am a beginner I do not know how to fix too.
import '/auth/firebase_auth/auth_util.dart';
import '/flutter_flow/flutter_flow_theme.dart';
import '/flutter_flow/flutter_flow_util.dart';
import '/flutter_flow/flutter_flow_widgets.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
class LoginPageWidget extends StatefulWidget {
const LoginPageWidget({super.key});
@override
State<LoginPageWidget> createState() => _LoginPageWidgetState();
}
class _LoginPageWidgetState extends State<LoginPageWidget> {
final TextEditingController emailAddressLoginController = TextEditingController();
final TextEditingController passwordLoginController = TextEditingController();
final FocusNode emailAddressLoginFocusNode = FocusNode();
final FocusNode passwordLoginFocusNode = FocusNode();
bool passwordLoginVisibility = false;
@override
Widget build(BuildContext context) {
throw UnimplementedError();
}
}
@override
Widget build(BuildContext context) {
if (isiOS) {
SystemChrome.setSystemUIOverlayStyle(
SystemUiOverlayStyle(
statusBarBrightness: Theme.of(context).brightness,
systemStatusBarContrastEnforced: true,
),
);
}
return Scaffold(
key: scaffoldKey,
backgroundColor: Theme.of(context).primaryColor,
body: Column(
mainAxisSize: MainAxisSize.max,
children: [
Row(
mainAxisSize: MainAxisSize.max,
children: [
Container(
width: MediaQuery.sizeOf(context).width,
height: MediaQuery.sizeOf(context).height * 1,
decoration: BoxDecoration(
image: DecorationImage(
fit: BoxFit.fitWidth,
image: Image.asset(
'assets/images/[email protected]',
).image,
),
),
child: Padding(
padding: const EdgeInsetsDirectional.fromSTEB(0, 40, 0, 0),
child: Column(
mainAxisSize: MainAxisSize.max,
children: [
Padding(
padding: const EdgeInsetsDirectional.fromSTEB(24, 24, 0, 20),
child: Row(
mainAxisSize: MainAxisSize.max,
mainAxisAlignment: MainAxisAlignment.start,
children: [
if (Theme.of(context).brightness == Brightness.dark)
Image.asset(
'assets/images/finWallet_logo_landscape.png',
width: 175,
height: 60,
fit: BoxFit.fitWidth,
),
if (!(Theme.of(context).brightness ==
Brightness.dark))
Image.asset(
'assets/images/[email protected]',
width: 170,
height: 60,
fit: BoxFit.fitWidth,
),
],
),
),
Padding(
padding: const EdgeInsetsDirectional.fromSTEB(24, 0, 24, 0),
child: SingleChildScrollView(
child: Column(
mainAxisSize: MainAxisSize.max,
children: [
Row(
mainAxisSize: MainAxisSize.max,
children: [
Text(
FFLocalizations.of(context).getText(
'o07j3mgv' /* Welcome back */,
),
style: Theme.of(context).primaryColor
.displaySmall,
),
],
),
Padding(
padding:
const EdgeInsetsDirectional.fromSTEB(0, 12, 0, 0),
child: Row(
mainAxisSize: MainAxisSize.max,
children: [
Text(
FFLocalizations.of(context).getText(
'fzxvw3mu' /* Login to access your account b... */,
),
style: Theme.of(context).primaryColor
.titleMedium,
),
],
),
),
Padding(
padding:
const EdgeInsetsDirectional.fromSTEB(0, 20, 0, 0),
child: TextFormField(
controller:
_model.emailAddressLoginController,
focusNode: _model.emailAddressLoginFocusNode,
obscureText: false,
decoration: InputDecoration(
labelText:
FFLocalizations.of(context).getText(
'a9j78va9' /* Email Address */,
),
labelStyle:
Theme.of(context).primaryColor.bodySmall,
hintText:
FFLocalizations.of(context).getText(
'i7f18cve' /* Enter your email... */,
),
hintStyle:
Theme.of(context).primaryColor.bodySmall,
enabledBorder: OutlineInputBorder(
borderSide: const BorderSide(
color: Color(0x00000000),
width: 1,
),
borderRadius: BorderRadius.circular(8),
),
focusedBorder: OutlineInputBorder(
borderSide: const BorderSide(
color: Color(0x00000000),
width: 1,
),
borderRadius: BorderRadius.circular(8),
),
errorBorder: OutlineInputBorder(
borderSide: const BorderSide(
color: Color(0x00000000),
width: 1,
),
borderRadius: BorderRadius.circular(8),
),
focusedErrorBorder: OutlineInputBorder(
borderSide: const BorderSide(
color: Color(0x00000000),
width: 1,
),
borderRadius: BorderRadius.circular(8),
),
filled: true,
fillColor: Theme.of(context).primaryColor
.secondaryBackground,
contentPadding:
const EdgeInsetsDirectional.fromSTEB(
20, 24, 20, 24),
),
style:
Theme.of(context).primaryColor.bodyMedium,
validator: _model
.emailAddressLoginControllerValidator
.asValidator(context),
),
),
Padding(
padding:
const EdgeInsetsDirectional.fromSTEB(0, 12, 0, 0),
child: TextFormField(
controller: _model.passwordLoginController,
focusNode: _model.passwordLoginFocusNode,
obscureText: passwordLoginVisibility,
decoration: InputDecoration(
labelText:
FFLocalizations.of(context).getText(
'wztjmbn8' /* Password */,
),
labelStyle:
Theme.of(context).primaryColor.bodySmall,
hintText:
FFLocalizations.of(context).getText(
'lw1jpm1f' /* Enter your password... */,
),
hintStyle:
Theme.of(context).primaryColor.bodySmall,
enabledBorder: OutlineInputBorder(
borderSide: const BorderSide(
color: Color(0x00000000),
width: 1,
),
borderRadius: BorderRadius.circular(8),
),
focusedBorder: OutlineInputBorder(
borderSide: const BorderSide(
color: Color(0x00000000),
width: 1,
),
borderRadius: BorderRadius.circular(8),
),
errorBorder: OutlineInputBorder(
borderSide: const BorderSide(
color: Color(0x00000000),
width: 1,
),
borderRadius: BorderRadius.circular(8),
),
focusedErrorBorder: OutlineInputBorder(
borderSide: const BorderSide(
color: Color(0x00000000),
width: 1,
),
borderRadius: BorderRadius.circular(8),
),
filled: true,
fillColor: Theme.of(context).primaryColor
.secondaryBackground,
contentPadding:
const EdgeInsetsDirectional.fromSTEB(
20, 24, 20, 24),
suffixIcon: InkWell(
onTap: () => setState(
() => _model.passwordLoginVisibility =
!Theme.of(context).primaryColor.passwordLoginVisibility ?? false,
),
focusNode: FocusNode(skipTraversal: true),
child: Icon(
_model.passwordLoginVisibility
? Icons.visibility_outlined
: Icons.visibility_off_outlined,
color: const Color(0x98FFFFFF),
size: 20,
),
),
),
style:
Theme.of(context).primaryColor.bodyMedium,
validator: _model
.passwordLoginControllerValidator
.asValidator(context),
),
),
Row(
mainAxisSize: MainAxisSize.max,
mainAxisAlignment:
MainAxisAlignment.spaceBetween,
children: [
Padding(
padding: const EdgeInsetsDirectional.fromSTEB(
0, 24, 0, 24),
child: FFButtonWidget(
onPressed: () async {
context.pushNamed('forgotPassword');
},
text: FFLocalizations.of(context).getText(
'm2xyjvuf' /* Forgot Password? */,
),
options: FFButtonOptions(
width: 170,
height: 40,
padding: const EdgeInsetsDirectional.fromSTEB(
0, 0, 0, 0),
iconPadding:
const EdgeInsetsDirectional.fromSTEB(
0, 0, 0, 0),
color: const Color(0x001A1F24),
textStyle: Theme.of(context).primaryColor
.bodySmall,
elevation: 0,
borderSide: const BorderSide(
color: Colors.transparent,
width: 1,
),
borderRadius: BorderRadius.circular(8),
),
),
),
FFButtonWidget(
onPressed: () async {
GoRouter.of(context).prepareAuthEvent();
final user =
await authManager.signInWithEmail(
context,
_model.emailAddressLoginController.text,
_model.passwordLoginController.text,
);
if (user == null) {
return;
}
context.goNamedAuth(
'MY_Card', context.mounted);
},
text: FFLocalizations.of(context).getText(
'qbmoi1av' /* Login */,
),
options: FFButtonOptions(
width: 120,
height: 50,
padding: EdgeInsetsDirectional.fromSTEB(
class LoginPageWidget as double extends StatelfulWidget {
@override
Widget build(BuildContext context) {
return Scaffold(
body: Stack(
children: [
Align(
alignment: const AlignmentDirectional(0, 0),
child: Column(
mainAxisSize: MainAxisSize.max,
mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.center,
children: [
Expanded(
child: Stack(
children: [
Align(
alignment: const AlignmentDirectional(0, 0),
child: Container(
width: double.infinity,
height: double.infinity,
decoration: const BoxDecoration(
color: Colors.white, // Replace 'Colors.transparent' with 'Colors.white'
),
child: Column(
mainAxisSize: MainAxisSize.max,
mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.center,
children: [
Row(
mainAxisSize: MainAxisSize.max,
mainAxisAlignment: MainAxisAlignment.center,
children: [
Container(
width: MediaQuery.sizeOf(context).width *
0.8,
height: 44,
decoration: BoxDecoration(
color: Theme.of(context).primaryColor
.primaryBackground,
borderRadius: BorderRadius.circular(8),
),
child: Row(
mainAxisSize: MainAxisSize.max,
mainAxisAlignment:
MainAxisAlignment.center,
children: [
Text(
FFLocalizations.of(context).getText(
'cjqb8ial' /* Don't have an account? */,
),
style: Theme.of(context).primaryColor
.bodyMedium,
),
Padding(
padding:
const EdgeInsetsDirectional.fromSTEB(
24, 0, 4, 0),
child: Text(
FFLocalizations.of(context)
.getText(
'a0iimirx' /* Create */,
),
style:
Theme.of(context).primaryColor
.bodyMedium
.override(
fontFamily: 'Lexend',
color:
FlutterFlowTheme.of(
context)
.primary,
),
),
),
Icon(
Icons.arrow_forward_rounded,
color: Theme.of(context).primaryColor
.primary,
size: 24,
),
],
),
),
],
),
],
),
),
),
],
),
),
],
),
),
],
),
);
}
};