Professional Documents
Culture Documents
dart';
import 'package:firebase_auth/firebase_auth.dart';
import 'package:flutter/material.dart';
import 'package:flutter_music1/core/models/user.dart';
import 'package:flutter_music1/core/routes/constants.dart';
import
'package:flutter_music1/core/sevices/firebase_messaging/firebase_messaging.dart';
import 'package:flutter_music1/core/utility/validator.dart';
import 'package:google_fonts/google_fonts.dart';
import '../../../widgets/shared/custum_colors.dart';
import '../../../widgets/shared/form_auth.dart';
import '../../../widgets/shared/snackbarMessaging.dart';
@override
Widget build(BuildContext context) {
return Scaffold(
backgroundColor: Colors.grey[200],
body: Center(
child: SingleChildScrollView(
child: Column(
children: [
Padding(
padding: const EdgeInsets.symmetric(vertical: 25),
child: Icon(
color: Colors.brown.shade800,
Icons.verified_user_rounded,
size: 100,
),
),
Text(
'Register',
style: GoogleFonts.bebasNeue(fontSize: 40,color:
Colors.brown.shade800,),
),
const SizedBox(
height: 20,
),
Form(
key: formKey,
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
CustomAuthFormField(
icon: const Icon(Icons.person),
controller: _nameController,
hint: "full name",
validate: "other",
validator: (String) {}, /* obscureText: false*/
),
CustomAuthFormField(
icon: const Icon(Icons.email),
controller: _emailController,
hint: "email",
validate: "email",
),
obscureText: _isSecurePassword,
),
),
Padding(
padding: const EdgeInsets.symmetric(horizontal: 20,
vertical: 10),
child: TextFormField(
controller: _confirmPasswordController,
validator: "matchPassword" != null
? "matchPassword" == "email"
? (value) => Validator.validateEmail(
value: _confirmPasswordController.text)
: "matchPassword" == "password"
? (value) => Validator.validatePassword(
_confirmPasswordController.text)
: "matchPassword" == "matchPassword"
? (value) =>
Validator.validatePasswordMatch(
_confirmPasswordController
.text,
_passwordController.text)
: (value) => Validator.validateField(
value: _confirmPasswordController
.text)
: null,
decoration: InputDecoration(
errorStyle: const TextStyle(
color: Colors.deepOrange,
),
prefixIcon: const Icon(
Icons.lock,
),
suffixIcon: toggleconfirmPassword(),
hintText: "confirm password",
enabledBorder: OutlineInputBorder(
borderSide: const BorderSide(color: Colors.white),
borderRadius: BorderRadius.circular(10),
),
focusedBorder: OutlineInputBorder(
borderSide:
const BorderSide(color: Colors.orangeAccent),
borderRadius: BorderRadius.circular(12),
),
prefixIconColor: MaterialStateColor.resolveWith(
(states) =>
states.contains(MaterialState.focused)
? Colors.orangeAccent
: Colors.black54),
suffixIconColor: MaterialStateColor.resolveWith(
(states) =>
states.contains(MaterialState.focused)
? Colors.orangeAccent
: Colors.black54),
filled: true,
errorBorder: OutlineInputBorder(
borderRadius: BorderRadius.circular(8.0),
borderSide: const BorderSide(
color: Colors.red,
width: 1,
),
),
focusedErrorBorder: OutlineInputBorder(
borderRadius: BorderRadius.circular(8.0),
borderSide: const BorderSide(
color: Colors.orangeAccent,
width: 1,
),
),
),
obscureText: _isSecureconfirmPassword,
),
)
]),
),
// dropDownMenuProfileType(),
_isProcessing
? Padding(
padding: const EdgeInsets.all(8.0),
child: Center(
child: CircularProgressIndicator(
valueColor: AlwaysStoppedAnimation<Color>(
CustomColors.firebaseOrange,
),
),
),
)
: Padding(
padding:const EdgeInsets.symmetric(horizontal: 20, vertical: 20),
child: GestureDetector(
Widget toggleconfirmPassword() {
return IconButton(
onPressed: () {
setState(() {
_isSecureconfirmPassword = !_isSecureconfirmPassword;
});
},
icon: _isSecureconfirmPassword
? const Icon(Icons.visibility_off)
: const Icon(Icons.visibility)
);
}
Widget togglePassword() {
return IconButton(
onPressed: () {
setState(() {
_isSecurePassword = !_isSecurePassword;
});
},
icon: _isSecurePassword
? const Icon(Icons.visibility_off)
: const Icon(Icons.visibility)
);
}