init method

Implementation

@override
Future<ProfileNameViewState> init() async {
  final profile = await doFetchProfile();

  final fullName =
      '${profile.firstName ?? ''} ${profile.lastName ?? ''}'.trim();
  final email = profile.email ?? '';

  if (fullName.isEmpty && email.isEmpty) {
    ftu = true;
  }
  nameController.text = fullName;
  emailController.text = email;

  final viewState = ProfileNameViewState(userId: profile.id ?? '');

  final referralCode = await appDataStore.getAttributedReferrerID();

  referralCodeController.text = referralCode;

  if (fullName.isNotEmpty && email.isEmail) {
    globalUserState().updateState(
      (userState) => userState.copyWith(
        firstName: profile.firstName,
        lastName: profile.lastName,
        email: profile.email,
      ),
    );

    await Future.delayed(
      const Duration(seconds: 1),
      () {
        onAfterProfileSaved(isNewUser: false, referralCodeApplied: false);
      },
    );
  }

  return viewState;
}