fix: add validation form data id card

This commit is contained in:
Dian Bayu Nugroho 2024-02-26 14:00:19 +07:00
parent 27ba55314b
commit f84fe1017d
2 changed files with 93 additions and 63 deletions

View File

@ -176,7 +176,9 @@ class SubmitDataIdCard extends StatelessWidget {
return SingleChildScrollView( return SingleChildScrollView(
child: Consumer<SubmissionDataViewModel>( child: Consumer<SubmissionDataViewModel>(
builder: (context, provider, child) { builder: (context, provider, child) {
return Column( return Form(
key: provider.formKeySubmitIdCard,
child: Column(
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start,
children: [ children: [
const TextCaption( const TextCaption(
@ -184,14 +186,35 @@ class SubmitDataIdCard extends StatelessWidget {
TextFormView( TextFormView(
name: 'NIK', name: 'NIK',
keyboardType: TextInputType.number, keyboardType: TextInputType.number,
validator: (value) {
if (value!.isEmpty) {
return 'Field must be filled';
}
return null;
},
),
TextFormView(
name: 'Full Name',
validator: (value) {
if (value!.isEmpty) {
return 'Field must be filled';
}
return null;
},
), ),
TextFormView(name: 'Full Name'),
DatePickerView( DatePickerView(
name: 'Birth Date', name: 'Birth Date',
ctrl: provider.ctrlBirthDate, ctrl: provider.ctrlBirthDate,
maxDate: DateTime.now(), maxDate: DateTime.now(),
isMultipleSelection: false, isMultipleSelection: false,
enabled: true), enabled: true,
validatorDate: (value) {
if (value!.isEmpty) {
return 'Field must be filled';
}
return null;
},
),
photoDocument(provider), photoDocument(provider),
Container( Container(
width: SizeConfig.width, width: SizeConfig.width,
@ -241,14 +264,19 @@ class SubmitDataIdCard extends StatelessWidget {
ButtonView( ButtonView(
name: 'Next', name: 'Next',
onPressed: () async { onPressed: () async {
if (provider.formKeySubmitIdCard.currentState!
.validate()) {
await provider.next(context).then((value) { await provider.next(context).then((value) {
if (value) { if (value) {
routePush(context, page: const SubmissionParent()); routePush(context,
page: const SubmissionParent());
} }
}); });
}
}, },
) )
], ],
),
); );
}), }),
); );

View File

@ -14,6 +14,8 @@ class SubmissionDataViewModel extends ChangeNotifier {
bool _isEmailVerify = false; bool _isEmailVerify = false;
bool get isEmailVerify => _isEmailVerify; bool get isEmailVerify => _isEmailVerify;
var formKeyPersonalData = GlobalKey<FormState>(); var formKeyPersonalData = GlobalKey<FormState>();
var formKeySubmitEmail = GlobalKey<FormState>();
var formKeySubmitIdCard = GlobalKey<FormState>();
TextEditingController ctrlOccupation = TextEditingController(); TextEditingController ctrlOccupation = TextEditingController();
TextEditingController ctrlIncome = TextEditingController(); TextEditingController ctrlIncome = TextEditingController();
TextEditingController ctrlMarital = TextEditingController(); TextEditingController ctrlMarital = TextEditingController();