buttonTapHandler method
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!);
});
}
});
}