// import 'dart:async'; // import 'package:cubit_form/cubit_form.dart'; // import 'package:selfprivacy/logic/api_maps/cloudflare.dart'; // import 'package:selfprivacy/logic/cubit/app_config/app_config_cubit.dart'; // import 'package:selfprivacy/logic/models/cloudflare_domain.dart'; // class DomainFormCubit extends FormCubit { // CloudflareApi apiClient = CloudflareApi(); // DomainFormCubit(this.initializingCubit) { // var regExp = // RegExp(r"^[a-zA-Z0-9][a-zA-Z0-9-]{1,61}[a-zA-Z0-9]\.[a-zA-Z]{2,}"); // domainName = FieldCubit( // initalValue: '', // validations: [ // RequiredStringValidation('required'), // ValidationModel( // (s) => !regExp.hasMatch(s), // 'invalid domain format', // ), // ], // ); // super.setFields([domainName]); // } // @override // FutureOr onSubmit() async { // var domain = CloudFlareDomain( // domainName: domainName.state.value, // zoneId: zoneId, // ); // initializingCubit.setDomain(domain); // } // final AppConfigCubit initializingCubit; // FieldCubit domainName; // String zoneId; // @override // FutureOr asyncValidation() async { // var key = initializingCubit.state.cloudFlareKey; // String zoneId; // try { // zoneId = await apiClient.getZoneId(key, domainName.state.value); // } catch (e) { // addError(e); // } // if (zoneId == null) { // domainName.setError('Domain not in the list'); // return false; // } // this.zoneId = zoneId; // return true; // } // @override // Future close() async { // apiClient.close(); // return super.close(); // } // }