84 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			Dart
		
	
	
	
	
	
			
		
		
	
	
			84 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			Dart
		
	
	
	
	
	
| // 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:flutter_bloc/flutter_bloc.dart';
 | |
| import 'package:form_bloc_example/constants.dart';
 | |
| import 'package:form_bloc_example/cubit/custom_form_cubit.dart';
 | |
| import 'package:form_bloc_example/sign_up/sign_up_page.dart';
 | |
| import 'package:wyatt_form_bloc/wyatt_form_bloc.dart';
 | |
| 
 | |
| class App extends StatelessWidget {
 | |
|   const App({Key? key}) : super(key: key);
 | |
| 
 | |
|   static List<FormEntry> getNormalEntries() {
 | |
|     return const [
 | |
|       FormEntry(formFieldName, Name.pure()),
 | |
|       FormEntry(formFieldEmail, Email.pure()),
 | |
|       FormEntry(formFieldPhone, Phone.pure()),
 | |
|       FormEntry(
 | |
|           formFieldList, ListOption<String>.pure(defaultValue: ['checkbox3'])),
 | |
|       FormEntry(formFieldRadio, TextString.pure()),
 | |
|       FormEntry(formFieldPro, Boolean.pure(), name: 'business'),
 | |
|       FormEntry(formFieldHidden, Boolean.pure(), export: false),
 | |
|     ];
 | |
|   }
 | |
| 
 | |
|   static List<FormEntry> getBusinessEntries() {
 | |
|     const entries = [
 | |
|       FormEntry(formFieldSiren, Siren.pure()),
 | |
|       FormEntry(formFieldIban, Iban.pure()),
 | |
|     ];
 | |
|     return getNormalEntries() + entries;
 | |
|   }
 | |
| 
 | |
|   static FormData getNormalFormData() {
 | |
|     return FormData(getNormalEntries());
 | |
|   }
 | |
| 
 | |
|   static FormData getProFormData() {
 | |
|     return FormData(getBusinessEntries());
 | |
|   }
 | |
| 
 | |
|   @override
 | |
|   Widget build(BuildContext context) {
 | |
|     FormDataCubit _formCubit = CustomFormCubit(entries: getNormalFormData());
 | |
| 
 | |
|     return BlocProvider(
 | |
|       create: (context) => _formCubit,
 | |
|       child: const WidgetTree(),
 | |
|     );
 | |
|   }
 | |
| }
 | |
| 
 | |
| class WidgetTree extends StatelessWidget {
 | |
|   const WidgetTree({Key? key}) : super(key: key);
 | |
| 
 | |
|   @override
 | |
|   Widget build(BuildContext context) {
 | |
|     return MaterialApp(
 | |
|       theme: ThemeData(
 | |
|         primarySwatch: Colors.blue,
 | |
|         buttonTheme: const ButtonThemeData(
 | |
|           buttonColor: Colors.blue,
 | |
|           textTheme: ButtonTextTheme.primary,
 | |
|         ),
 | |
|       ),
 | |
|       home: const SignUpPage(),
 | |
|     );
 | |
|   }
 | |
| }
 |