first commit

This commit is contained in:
2026-04-29 12:53:22 +07:00
commit e6a30eddd3
394 changed files with 16408 additions and 0 deletions

View File

@@ -0,0 +1,37 @@
import 'package:dio/dio.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:frontend_eccp_mobile/app/core/services/crashlytics_service.dart';
import 'package:frontend_eccp_mobile/modules/profile/bloc/logout/logout_state.dart';
import 'package:frontend_eccp_mobile/modules/profile/data/repositories/profile_repository.dart';
import 'package:injectable/injectable.dart';
@injectable
class LogoutCubit extends Cubit<LogoutState> {
LogoutCubit(this._repository) : super(LogoutInitial());
final ProfileRepository _repository;
Future<void> logout() async {
emit(LogoutLoading());
try {
final response = await _repository.logout();
if (response.status != 'success') {
emit(LogoutFailure(response.message));
return;
}
emit(LogoutSuccess());
} on DioException catch (e) {
emit(LogoutFailure(e.error?.toString()));
} catch (e, s) {
await CrashlyticsService.recordError(
e,
s,
fatal: true,
reason: 'Logout Unknown Error',
);
emit(const LogoutFailure());
}
}
}

View File

@@ -0,0 +1,25 @@
import 'package:equatable/equatable.dart';
abstract class LogoutState extends Equatable {
const LogoutState();
@override
List<Object?> get props => [];
}
class LogoutInitial extends LogoutState {}
class LogoutLoading extends LogoutState {}
class LogoutSuccess extends LogoutState {}
class LogoutFailure extends LogoutState {
const LogoutFailure([this.message]);
final String? message;
bool get hasMessage => message != null && message!.isNotEmpty;
@override
List<Object?> get props => [message];
}

View File

@@ -0,0 +1 @@

View File

@@ -0,0 +1 @@