buttonTapHandler method

void buttonTapHandler(
  1. BuildContext context,
  2. WidgetRef ref,
  3. UserModel user,
  4. {required bool approve}
)

Implementation

void buttonTapHandler(
  BuildContext context,
  WidgetRef ref,
  UserModel user, {
  required bool approve,
}) {
  yesAbortDialog(
    context: context,
    title: t.generics.areYouSure,
    body: approve ? t.admin.approveMessage : t.admin.denyMessage,
  ).then((result) async {
    if (result == DialogAction.yes) {
      // Check if the user is connected to the internet
      final isConnected = ref.read(isConnectedProvider);
      if (!isConnected) return context.notConnectedDialog();

      final function = approve
          ? ref.read(cloudFunctionServiceProvider).enableUser(user.email!)
          : ref.read(cloudFunctionServiceProvider).deleteUser(user.email!);
      function.then((result) async {
        final success = context.processHttpsCallableResult(result);
        if (!success) return;

        approve
            ? ref.read(userDataProvider.notifier).updateClaims(
                  user.uid!,
                  (claims) => claims.copyWith(approved: true),
                )
            : ref.read(userDataProvider.notifier).deleteUser(user.uid!);
      });
    }
  });
}