auth/wyatt_arch_migration #25
| @ -30,12 +30,12 @@ class App extends StatelessWidget { | |||||||
| 
 | 
 | ||||||
|   static List<FormInput> getNormalEntries() { |   static List<FormInput> getNormalEntries() { | ||||||
|     return [ |     return [ | ||||||
|       FormInput(formFieldName, const Name.pure(), |       FormInput(formFieldName, const Name.pure('Test'), | ||||||
|           metadata: const FormInputMetadata<Metadata>(extra: blue)), |           metadata: const FormInputMetadata<Metadata>(extra: blue)), | ||||||
|       FormInput(formFieldEmail, const Email.pure(), |       FormInput(formFieldEmail, const Email.pure(), | ||||||
|           metadata: const FormInputMetadata<Metadata>(extra: blue)), |           metadata: const FormInputMetadata<Metadata>(extra: blue)), | ||||||
|       FormInput(formFieldList, |       FormInput( | ||||||
|           const ListOption<String>.pure(defaultValue: 'c3')), |           formFieldList, const ListOption<String>.pure(choices: ['c1', 'c2', 'c3'],defaultValue: 'c3')), | ||||||
|       FormInput(formFieldRadio, const TextString.pure()), |       FormInput(formFieldRadio, const TextString.pure()), | ||||||
|       FormInput(formFieldPro, const Boolean.pure(), |       FormInput(formFieldPro, const Boolean.pure(), | ||||||
|           metadata: const FormInputMetadata<Metadata>(name: 'business')), |           metadata: const FormInputMetadata<Metadata>(name: 'business')), | ||||||
| @ -54,20 +54,35 @@ class App extends StatelessWidget { | |||||||
|   } |   } | ||||||
| 
 | 
 | ||||||
|   static WyattForm getNormalFormData() { |   static WyattForm getNormalFormData() { | ||||||
|     return WyattFormImpl(getNormalEntries()); |     return WyattFormImpl(getNormalEntries(), name: formSignUp); | ||||||
|   } |   } | ||||||
| 
 | 
 | ||||||
|   static WyattForm getProFormData() { |   static WyattForm getProFormData() { | ||||||
|     return WyattFormImpl(getBusinessEntries()); |     return WyattFormImpl(getBusinessEntries(), name: formSignUp); | ||||||
|   } |   } | ||||||
| 
 | 
 | ||||||
|   @override |   @override | ||||||
|   Widget build(BuildContext context) { |   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>( |     SimpleCustomFormCubit formCubit = SimpleCustomFormCubit( | ||||||
|       create: (context) => formCubit, |       formRepository, | ||||||
|       child: const WidgetTree(), |       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 | // You should have received a copy of the GNU General Public License | ||||||
| // along with this program. If not, see <https://www.gnu.org/licenses/>. | // along with this program. If not, see <https://www.gnu.org/licenses/>. | ||||||
| 
 | 
 | ||||||
|  | const String formSignUp = 'signUp'; | ||||||
|  | 
 | ||||||
| const String formFieldName = 'name'; | const String formFieldName = 'name'; | ||||||
| const String formFieldPhone = 'phone'; | const String formFieldPhone = 'phone'; | ||||||
| const String formFieldEmail = 'email'; | const String formFieldEmail = 'email'; | ||||||
|  | |||||||
| @ -36,9 +36,10 @@ Color computeColor(Metadata? meta) { | |||||||
| class _NameInput extends StatelessWidget { | class _NameInput extends StatelessWidget { | ||||||
|   @override |   @override | ||||||
|   Widget build(BuildContext context) { |   Widget build(BuildContext context) { | ||||||
|     return InputBuilderMetadata<SimpleCustomFormCubit, Metadata>( |     return InputBuilderTextController<SimpleCustomFormCubit, String?, Metadata>( | ||||||
|       field: formFieldName, |       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 meta = state.form.metadataOf<Metadata>(field).extra; | ||||||
|         final color = computeColor(meta); |         final color = computeColor(meta); | ||||||
|         return Row( |         return Row( | ||||||
| @ -57,6 +58,7 @@ class _NameInput extends StatelessWidget { | |||||||
|             SizedBox( |             SizedBox( | ||||||
|               width: MediaQuery.of(context).size.width - 45, |               width: MediaQuery.of(context).size.width - 45, | ||||||
|               child: TextField( |               child: TextField( | ||||||
|  |                 controller: controller, | ||||||
|                 onChanged: (value) => |                 onChanged: (value) => | ||||||
|                     cubit.dataChanged(field, Name.dirty(value)), |                     cubit.dataChanged(field, Name.dirty(value)), | ||||||
|                 keyboardType: TextInputType.name, |                 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'; | import 'package:wyatt_form_bloc/wyatt_form_bloc.dart'; | ||||||
| 
 | 
 | ||||||
| class SimpleCustomFormCubit extends FormDataCubitImpl { | class SimpleCustomFormCubit extends FormDataCubitImpl { | ||||||
|   SimpleCustomFormCubit(super.form) : super(); |   SimpleCustomFormCubit(super._formRepository, super._formName) : super(); | ||||||
| 
 | 
 | ||||||
|   @override |   @override | ||||||
|   Future<void> submit() { |   Future<void> submit() { | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user