feat!(form): migrate to wyatt architecture

This commit is contained in:
2022-11-09 22:35:41 -05:00
parent 79fdd3c837
commit b89ef3de8a
62 changed files with 1387 additions and 818 deletions
@@ -18,7 +18,7 @@ import 'package:flutter/material.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:form_bloc_example/app/metadata.dart';
import 'package:form_bloc_example/constants.dart';
import 'package:form_bloc_example/cubit/custom_form_cubit.dart';
import 'package:form_bloc_example/simple_custom_form_cubit/simple_custom_form_cubit.dart';
import 'package:form_bloc_example/sign_up/sign_up_page.dart';
import 'package:wyatt_form_bloc/wyatt_form_bloc.dart';
@@ -29,41 +29,43 @@ class App extends StatelessWidget {
const App({Key? key}) : super(key: key);
static List<FormInput> getNormalEntries() {
return const [
FormInput(formFieldName, Name.pure(), metadata: FormInputMetadata<Metadata>(extra: blue)),
FormInput(formFieldEmail, Email.pure(), metadata: FormInputMetadata<Metadata>(extra: blue)),
FormInput(formFieldPhone, Phone.pure(), metadata: FormInputMetadata<Metadata>(extra: red)),
FormInput(
formFieldList, ListOption<String>.pure(defaultValue: ['checkbox3'])),
FormInput(formFieldRadio, TextString.pure()),
FormInput(formFieldPro, Boolean.pure(),
metadata: FormInputMetadata<Metadata>(name: 'business')),
FormInput(formFieldHidden, Boolean.pure(),
metadata: FormInputMetadata<Metadata>(export: false, extra: blue)),
return [
FormInput(formFieldName, const Name.pure(),
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(formFieldRadio, const TextString.pure()),
FormInput(formFieldPro, const Boolean.pure(),
metadata: const FormInputMetadata<Metadata>(name: 'business')),
FormInput(formFieldHidden, const Boolean.pure(),
metadata:
const FormInputMetadata<Metadata>(export: false, extra: blue)),
];
}
static List<FormInput> getBusinessEntries() {
const entries = [
FormInput(formFieldSiren, Siren.pure()),
FormInput(formFieldIban, Iban.pure()),
final entries = [
FormInput(formFieldPhone, const Phone.pure(),
metadata: const FormInputMetadata<Metadata>(extra: red)),
];
return getNormalEntries() + entries;
}
static FormData getNormalFormData() {
return FormData(getNormalEntries());
static WyattForm getNormalFormData() {
return WyattFormImpl(getNormalEntries());
}
static FormData getProFormData() {
return FormData(getBusinessEntries());
static WyattForm getProFormData() {
return WyattFormImpl(getBusinessEntries());
}
@override
Widget build(BuildContext context) {
FormDataCubit formCubit = CustomFormCubit(inputs: getNormalFormData());
SimpleCustomFormCubit formCubit = SimpleCustomFormCubit(getNormalFormData());
return BlocProvider(
return BlocProvider<SimpleCustomFormCubit>(
create: (context) => formCubit,
child: const WidgetTree(),
);
@@ -28,7 +28,5 @@ class Metadata {
});
@override
String toString() {
return category.toString();
}
String toString() => 'Metadata(category: $category)';
}