feat(authentication): add full event support
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
// Copyright (C) 2022 WYATT GROUP
|
||||
// Copyright (C) 2023 WYATT GROUP
|
||||
// Please see the AUTHORS file for details.
|
||||
//
|
||||
// This program is free software: you can redistribute it and/or modify
|
||||
@@ -15,41 +15,39 @@
|
||||
// along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
|
||||
import 'dart:async';
|
||||
import 'dart:math';
|
||||
|
||||
import 'package:example_router/core/constants/form_field.dart';
|
||||
import 'package:example_router/core/dependency_injection/get_it.dart';
|
||||
import 'package:example_router/core/routes/router.dart';
|
||||
import 'package:example_router/core/utils/custom_password.dart';
|
||||
import 'package:example_router/core/utils/forms.dart';
|
||||
import 'package:example_router/presentation/features/authentication/authentication_cubit.dart';
|
||||
import 'package:example_router/presentation/features/sign_in/blocs/custom_sign_in_cubit.dart';
|
||||
import 'package:example_router/presentation/features/sign_up/blocs/custom_sign_up_cubit.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_bloc/flutter_bloc.dart';
|
||||
import 'package:go_router/go_router.dart';
|
||||
import 'package:wyatt_architecture/wyatt_architecture.dart';
|
||||
import 'package:wyatt_authentication_bloc/wyatt_authentication_bloc.dart';
|
||||
import 'package:wyatt_form_bloc/wyatt_form_bloc.dart';
|
||||
import 'package:wyatt_type_utils/wyatt_type_utils.dart';
|
||||
|
||||
FutureOrResult<int?> onAccountChanges(
|
||||
AuthenticationRepository<int> repo,
|
||||
AuthChangeEvent? authEvent,
|
||||
) async {
|
||||
final id = Random().nextInt(1000);
|
||||
final token =
|
||||
await repo.getIdentityToken().fold((value) => value, (error) => 'null');
|
||||
// FutureOrResult<int?> onAccountChanges(
|
||||
// AuthenticationRepository<int> repo,
|
||||
// AuthChangeEvent? authEvent,
|
||||
// ) async {
|
||||
// final id = Random().nextInt(1000);
|
||||
// final token =
|
||||
// await repo.getIdentityToken().fold((value) => value, (error) => 'null');
|
||||
|
||||
debugPrint(
|
||||
'onAccountChanges: ${authEvent?.account}, type: ${authEvent.runtimeType}, token: $token, generatedId: $id');
|
||||
return Ok<int, AppException>(id);
|
||||
}
|
||||
// debugPrint(
|
||||
// 'onAccountChanges: ${authEvent?.account}, type: ${authEvent.runtimeType}, token: $token, generatedId: $id');
|
||||
// return Ok<int, AppException>(id);
|
||||
// }
|
||||
|
||||
class App extends StatelessWidget {
|
||||
final AuthenticationRepository<int> authenticationRepository =
|
||||
AuthenticationRepositoryImpl(
|
||||
authenticationCacheDataSource: getIt<AuthenticationCacheDataSource<int>>(),
|
||||
authenticationRemoteDataSource: getIt<AuthenticationRemoteDataSource>(),
|
||||
onAuthChange: onAccountChanges,
|
||||
authenticationRemoteDataSource:
|
||||
getIt<AuthenticationRemoteDataSource<int>>(),
|
||||
customPasswordValidator: const CustomPassword.pure(),
|
||||
extraSignUpInputs: [
|
||||
FormInput(
|
||||
@@ -66,8 +64,7 @@ class App extends StatelessWidget {
|
||||
Widget build(BuildContext context) {
|
||||
AuthenticationState<int>? previous;
|
||||
|
||||
final AuthenticationCubit<int> authenticationCubit =
|
||||
AuthenticationCubit(authenticationRepository: authenticationRepository);
|
||||
final AuthenticationCubit<int> authenticationCubit = ExampleAuthenticationCubit(authenticationRepository: authenticationRepository);
|
||||
|
||||
final GoRouter router = GoRouter(
|
||||
initialLocation: '/',
|
||||
@@ -119,7 +116,7 @@ class App extends StatelessWidget {
|
||||
),
|
||||
),
|
||||
BlocProvider<SignInCubit<int>>(
|
||||
create: (_) => SignInCubit(
|
||||
create: (_) => CustomSignInCubit(
|
||||
authenticationRepository: authenticationRepository,
|
||||
),
|
||||
),
|
||||
|
||||
Reference in New Issue
Block a user