first commit
This commit is contained in:
46
lib/screens/auth/cubit/auth_cubit.dart
Normal file
46
lib/screens/auth/cubit/auth_cubit.dart
Normal file
@@ -0,0 +1,46 @@
|
||||
import 'package:bloc/bloc.dart';
|
||||
import 'package:freezed_annotation/freezed_annotation.dart';
|
||||
import 'package:remever/common/functions.dart';
|
||||
import 'package:remever/inject.dart';
|
||||
import 'package:remever/router.gr.dart';
|
||||
import 'package:remever/services/auth_interface.dart';
|
||||
|
||||
part 'auth_state.dart';
|
||||
part 'auth_cubit.freezed.dart';
|
||||
|
||||
class AuthCubit extends Cubit<AuthState> {
|
||||
AuthCubit() : super(AuthState.initial());
|
||||
|
||||
final AuthInterface _authInterface = getIt<AuthInterface>();
|
||||
|
||||
Future<void> toInitialState() async {
|
||||
emit(AuthState.initial());
|
||||
}
|
||||
|
||||
Future<void> toEmailState() async {
|
||||
emit(AuthState.email());
|
||||
}
|
||||
|
||||
Future<void> toCodeState(String email, String uuid) async {
|
||||
emit(AuthState.code(email, uuid));
|
||||
}
|
||||
|
||||
/// Авторизация
|
||||
Future<void> login(String email) async {
|
||||
final String? uuid = await _authInterface.login(email);
|
||||
|
||||
if (uuid == null) {
|
||||
return;
|
||||
}
|
||||
|
||||
toCodeState(email, uuid);
|
||||
}
|
||||
|
||||
Future<void> sendCode(String code, String uid) async {
|
||||
final bool res = await _authInterface.sendCode(code, uid);
|
||||
|
||||
if (!res) toInitialState();
|
||||
|
||||
globalRouter.replace(CollectionRoute());
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user