Skip to content

Instantly share code, notes, and snippets.

View alperefesahin's full-sized avatar
😄

Alper Efe Şahin alperefesahin

😄
View GitHub Profile
dependencies:
flow_builder: ^0.0.6
flutter_bloc: ^7.3.0
freezed_annotation: ^1.1.0
dev_dependencies:
freezed: ^1.1.1
build_runner: ^2.1.7
part of 'auth_cubit.dart';
class AuthState extends Equatable {
const AuthState({required this.isSignedIn});
final bool isSignedIn;
@override
List<Object> get props => [isSignedIn];
}
part of 'auth_cubit.dart';
@freezed
class AuthState with _$AuthState {
const factory AuthState.initial({required bool isSignedIn}) = _Initial;
}
part of 'auth_cubit.dart';
@freezed
class AuthState with _$AuthState {
const factory AuthState.initial({required bool isSignedIn}) = _Initial;
}
// coverage:ignore-file
// GENERATED CODE - DO NOT MODIFY BY HAND
// ignore_for_file: type=lint
// ignore_for_file: unused_element, deprecated_member_use, deprecated_member_use_from_same_package, use_function_type_syntax_for_parameters, unnecessary_const, avoid_init_to_null, invalid_override_different_default_values_named, prefer_expression_function_bodies, annotate_overrides, invalid_annotation_target
part of 'auth_cubit.dart';
// **************************************************************************
// FreezedGenerator
// **************************************************************************
part of 'login_cubit.dart';
@freezed
class LoginState with _$LoginState {
const factory LoginState.initial(
{@Default(Email.pure()) Email email,
@Default(Password.pure()) Password password,
@Default(FormzStatus) FormzStatus status,
@Default('') String exceptionError}) = _Initial;
}
part of 'login_cubit.dart';
class LoginState extends Equatable {
const LoginState({
this.email = const Email.pure(),
this.password = const Password.pure(),
this.status = FormzStatus.pure,
this.exceptionError = "",
});
part of 'sign_up_cubit.dart';
@freezed
class SignUpState with _$SignUpState {
const factory SignUpState.initial() = _Initial;
}
class AuthCubit extends Cubit<AuthState> {
AuthCubit() : super(const AuthState.initial(isSignedIn: false)) {
FirebaseAuth.instance.authStateChanges().listen((User? user) {
if (user == null) {
return emit(state.copyWith(isSignedIn: false));
} else {
emit(state.copyWith(isSignedIn: true));
}
});
}
class LandingPage extends StatelessWidget {
const LandingPage({Key? key}) : super(key: key);
@override
Widget build(BuildContext context) {
return FlowBuilder<AuthState>(
state: context.select((AuthCubit cubit) => cubit.state),
onGeneratePages: (authState, pages) {
if (authState.isSignedIn) {
return [HomePage.page()];