bayu/dev #19

Merged
nugrohob825 merged 9 commits from bayu/dev into dev 2024-03-05 15:27:21 +07:00
Showing only changes of commit 59e046bd92 - Show all commits

View File

@ -15,41 +15,71 @@ import 'package:provider/provider.dart';
class SubmitEmail extends StatelessWidget { class SubmitEmail extends StatelessWidget {
const SubmitEmail({Key? key}) : super(key: key); const SubmitEmail({Key? key}) : super(key: key);
Widget _emailVerify() { Widget _emailVerify(BuildContext context, SubmissionDataViewModel provider) {
return Column( var textTheme = Theme.of(context).textTheme;
children: [ return Padding(
const ImageView(image: PathAssets.imgEmail), padding: const EdgeInsets.all(24.0),
Align( child: Column(
alignment: Alignment.center, crossAxisAlignment: CrossAxisAlignment.start,
child: RichText( children: [
textAlign: TextAlign.center, const TextCaption(title: 'Check your e-mail'),
text: TextSpan(children: [ const ImageView(image: PathAssets.imgEmail),
const TextSpan( Align(
text: alignment: Alignment.center,
'We have sent a verification link to your e-mail. \nPlease check your email for ', child: RichText(
style: TextStyle( textAlign: TextAlign.center,
color: Colors.black, text: TextSpan(children: [
decoration: TextDecoration.none, TextSpan(
text:
'We have sent a verification link to your e-mail. \nPlease check your email for ',
style: textTheme.displayMedium,
), ),
), TextSpan(
TextSpan( recognizer: TapGestureRecognizer()
recognizer: TapGestureRecognizer()..onTap = () {}, ..onTap = () async {
text: 'verification', await provider.next(context).then((value) {
style: const TextStyle( if (value) {
color: Colors.blue, routePush(context, page: const SubmissionParent());
}
});
},
text: 'verification',
style: const TextStyle(
color: Colors.blue,
),
), ),
), TextSpan(
const TextSpan( text: ' to \ncontinue registration.',
text: ' to \ncontinue registration.', style: textTheme.displayMedium,
style: TextStyle(
color: Colors.black,
decoration: TextDecoration.none,
), ),
), ]),
]), ),
), ),
],
),
);
}
showEmailVerify(BuildContext context, SubmissionDataViewModel provider) {
Navigator.pop(context);
showModalBottomSheet(
context: context,
isScrollControlled: true,
enableDrag: false,
shape: const RoundedRectangleBorder(
borderRadius: BorderRadius.vertical(
top: Radius.zero,
), ),
], ),
builder: (context) {
var flutterView = View.of(context);
return Padding(
padding: EdgeInsets.only(
top: MediaQueryData.fromView(flutterView).padding.top,
),
child: _emailVerify(context, provider),
);
},
); );
} }
@ -60,45 +90,41 @@ class SubmitEmail extends StatelessWidget {
builder: (context, child) { builder: (context, child) {
return Consumer<SubmissionDataViewModel>( return Consumer<SubmissionDataViewModel>(
builder: (context, provider, child) { builder: (context, provider, child) {
return SingleChildScrollView( return SizedBox(
child: Column( height: SizeConfig.height * .78,
crossAxisAlignment: CrossAxisAlignment.start, child: Form(
// mainAxisAlignment: MainAxisAlignment.spaceBetween, key: provider.formKeySubmitEmail,
children: [ child: Column(
!provider.isEmailVerify crossAxisAlignment: CrossAxisAlignment.start,
? const TextCaption(title: 'Enter your e-mail') mainAxisAlignment: MainAxisAlignment.spaceAround,
: const TextCaption(title: 'Check your e-mail '), children: [
!provider.isEmailVerify const TextCaption(title: 'Enter your e-mail'),
? TextFormView( TextFormView(
name: 'E-mail Address', name: 'E-mail Address',
hintText: 'Input e-mail address', hintText: 'Input e-mail address',
keyboardType: TextInputType.emailAddress, keyboardType: TextInputType.emailAddress,
validator: (value) { validator: (value) {
if (value!.isEmpty) { if (value!.isEmpty) {
return 'Filled cannot be empty'; return 'Filled cannot be empty';
} else if (!StringUtils.emailValidation(value)) { } else if (!StringUtils.emailValidation(value)) {
return 'Format email wrong'; return 'Format email wrong';
} else { } else {
return null; return null;
}
},
// onTap: () {
// provider.submitEmail();
// },
)
: _emailVerify(),
SizedBox(height: SizeConfig.height * .42),
ButtonView(
name: 'Next',
onPressed: () async {
await provider.next(context).then((value) {
if (value) {
routePush(context, page: const SubmissionParent());
} }
}); },
}, ),
) SizedBox(height: SizeConfig.height * .43),
], ButtonView(
name: 'Next',
onPressed: () async {
if (provider.formKeySubmitEmail.currentState!
.validate()) {
showEmailVerify(context, provider);
}
},
)
],
),
), ),
); );
}); });