auth/wyatt_arch_migration #25
| @ -30,12 +30,12 @@ class App extends StatelessWidget { | ||||
| 
 | ||||
|   static List<FormInput> getNormalEntries() { | ||||
|     return [ | ||||
|       FormInput(formFieldName, const Name.pure(), | ||||
|       FormInput(formFieldName, const Name.pure('Test'), | ||||
|           metadata: const FormInputMetadata<Metadata>(extra: blue)), | ||||
|       FormInput(formFieldEmail, const Email.pure(), | ||||
|           metadata: const FormInputMetadata<Metadata>(extra: blue)), | ||||
|       FormInput(formFieldList, | ||||
|           const ListOption<String>.pure(defaultValue: 'c3')), | ||||
|       FormInput( | ||||
|           formFieldList, const ListOption<String>.pure(choices: ['c1', 'c2', 'c3'],defaultValue: 'c3')), | ||||
|       FormInput(formFieldRadio, const TextString.pure()), | ||||
|       FormInput(formFieldPro, const Boolean.pure(), | ||||
|           metadata: const FormInputMetadata<Metadata>(name: 'business')), | ||||
| @ -54,20 +54,35 @@ class App extends StatelessWidget { | ||||
|   } | ||||
| 
 | ||||
|   static WyattForm getNormalFormData() { | ||||
|     return WyattFormImpl(getNormalEntries()); | ||||
|     return WyattFormImpl(getNormalEntries(), name: formSignUp); | ||||
|   } | ||||
| 
 | ||||
|   static WyattForm getProFormData() { | ||||
|     return WyattFormImpl(getBusinessEntries()); | ||||
|     return WyattFormImpl(getBusinessEntries(), name: formSignUp); | ||||
|   } | ||||
| 
 | ||||
|   @override | ||||
|   Widget build(BuildContext context) { | ||||
|     SimpleCustomFormCubit formCubit = SimpleCustomFormCubit(getNormalFormData()); | ||||
|     FormRepository formRepository = FormRepositoryImpl() | ||||
|       ..registerForm(getNormalFormData()); | ||||
|      | ||||
|     // FormRepository formRepository = FormRepositoryImpl() | ||||
|     //   ..registerForm(WyattFormImpl([ | ||||
|     //     FormInput(formFieldName, const Name.pure('Test'), | ||||
|     //         metadata: const FormInputMetadata<Metadata>(extra: blue)), | ||||
|     //   ], name: formSignUp)); | ||||
| 
 | ||||
|     return BlocProvider<SimpleCustomFormCubit>( | ||||
|       create: (context) => formCubit, | ||||
|       child: const WidgetTree(), | ||||
|     SimpleCustomFormCubit formCubit = SimpleCustomFormCubit( | ||||
|       formRepository, | ||||
|       formSignUp, | ||||
|     ); | ||||
| 
 | ||||
|     return RepositoryProvider<FormRepository>.value( | ||||
|       value: formRepository, | ||||
|       child: BlocProvider<SimpleCustomFormCubit>( | ||||
|         create: (context) => formCubit, | ||||
|         child: const WidgetTree(), | ||||
|       ), | ||||
|     ); | ||||
|   } | ||||
| } | ||||
|  | ||||
| @ -14,6 +14,8 @@ | ||||
| // You should have received a copy of the GNU General Public License | ||||
| // along with this program. If not, see <https://www.gnu.org/licenses/>. | ||||
| 
 | ||||
| const String formSignUp = 'signUp'; | ||||
| 
 | ||||
| const String formFieldName = 'name'; | ||||
| const String formFieldPhone = 'phone'; | ||||
| const String formFieldEmail = 'email'; | ||||
|  | ||||
| @ -36,9 +36,10 @@ Color computeColor(Metadata? meta) { | ||||
| class _NameInput extends StatelessWidget { | ||||
|   @override | ||||
|   Widget build(BuildContext context) { | ||||
|     return InputBuilderMetadata<SimpleCustomFormCubit, Metadata>( | ||||
|     return InputBuilderTextController<SimpleCustomFormCubit, String?, Metadata>( | ||||
|       field: formFieldName, | ||||
|       builder: (context, cubit, state, field, inputValid, metadata) { | ||||
|       builder: | ||||
|           (context, cubit, state, field, inputValid, controller, metadata) { | ||||
|         final meta = state.form.metadataOf<Metadata>(field).extra; | ||||
|         final color = computeColor(meta); | ||||
|         return Row( | ||||
| @ -57,6 +58,7 @@ class _NameInput extends StatelessWidget { | ||||
|             SizedBox( | ||||
|               width: MediaQuery.of(context).size.width - 45, | ||||
|               child: TextField( | ||||
|                 controller: controller, | ||||
|                 onChanged: (value) => | ||||
|                     cubit.dataChanged(field, Name.dirty(value)), | ||||
|                 keyboardType: TextInputType.name, | ||||
|  | ||||
| @ -0,0 +1,57 @@ | ||||
| // Copyright (C) 2022 WYATT GROUP | ||||
| // Please see the AUTHORS file for details. | ||||
| // | ||||
| // This program is free software: you can redistribute it and/or modify | ||||
| // it under the terms of the GNU General Public License as published by | ||||
| // the Free Software Foundation, either version 3 of the License, or | ||||
| // any later version. | ||||
| // | ||||
| // This program is distributed in the hope that it will be useful, | ||||
| // but WITHOUT ANY WARRANTY; without even the implied warranty of | ||||
| // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||||
| // GNU General Public License for more details. | ||||
| // | ||||
| // You should have received a copy of the GNU General Public License | ||||
| // along with this program. If not, see <https://www.gnu.org/licenses/>. | ||||
| 
 | ||||
| import 'package:flutter/material.dart'; | ||||
| import 'package:form_bloc_example/app/metadata.dart'; | ||||
| import 'package:form_bloc_example/constants.dart'; | ||||
| import 'package:form_bloc_example/simple_custom_form_cubit/simple_custom_form_cubit.dart'; | ||||
| import 'package:wyatt_form_bloc/wyatt_form_bloc.dart'; | ||||
| 
 | ||||
| class _NameInput extends StatelessWidget { | ||||
|   @override | ||||
|   Widget build(BuildContext context) { | ||||
|     return InputBuilderTextController<SimpleCustomFormCubit, String?, Metadata>( | ||||
|       field: formFieldName, | ||||
|       builder: | ||||
|           (context, cubit, state, field, inputValid, controller, metadata) { | ||||
|         return TextField( | ||||
|           controller: controller, | ||||
|           onChanged: (value) => cubit.dataChanged(field, Name.dirty(value)), | ||||
|           keyboardType: TextInputType.name, | ||||
|           decoration: InputDecoration( | ||||
|             labelText: 'name', | ||||
|             helperText: '', | ||||
|             errorText: !inputValid ? 'invalid name' : null, | ||||
|           ), | ||||
|         ); | ||||
|       }, | ||||
|     ); | ||||
|   } | ||||
| } | ||||
| 
 | ||||
| class SimpleSignUpForm extends StatelessWidget { | ||||
|   const SimpleSignUpForm({Key? key}) : super(key: key); | ||||
| 
 | ||||
|   @override | ||||
|   Widget build(BuildContext context) { | ||||
|     return Column( | ||||
|       children: [ | ||||
|         _NameInput(), | ||||
|         const SizedBox(height: 8), | ||||
|       ], | ||||
|     ); | ||||
|   } | ||||
| } | ||||
| @ -19,7 +19,7 @@ import 'dart:developer'; | ||||
| import 'package:wyatt_form_bloc/wyatt_form_bloc.dart'; | ||||
| 
 | ||||
| class SimpleCustomFormCubit extends FormDataCubitImpl { | ||||
|   SimpleCustomFormCubit(super.form) : super(); | ||||
|   SimpleCustomFormCubit(super._formRepository, super._formName) : super(); | ||||
| 
 | ||||
|   @override | ||||
|   Future<void> submit() { | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user