feat: Refactor code structure and optimize performance across multiple modules
This commit is contained in:
@@ -0,0 +1,37 @@
|
||||
import 'dart:developer';
|
||||
|
||||
|
||||
import 'package:flutter/foundation.dart';
|
||||
import 'package:flutter_bloc/flutter_bloc.dart';
|
||||
import 'package:krow/core/application/di/injectable.dart';
|
||||
import 'package:krow/core/data/enums/state_status.dart';
|
||||
import 'package:krow/features/profile/faq/domain/entities/faq_entry.dart';
|
||||
import 'package:krow/features/profile/faq/domain/faq_repository.dart';
|
||||
|
||||
|
||||
part 'faq_event.dart';
|
||||
|
||||
part 'faq_state.dart';
|
||||
|
||||
class FaqBloc extends Bloc<FaqEvent, FaqState> {
|
||||
FaqBloc() : super(const FaqState()) {
|
||||
on<InitializeFAQ>((event, emit) async {
|
||||
emit(state.copyWith(status: StateStatus.loading));
|
||||
|
||||
List<FaqEntry> entries = [];
|
||||
try {
|
||||
entries = await getIt<FaqRepository>().getFaqData();
|
||||
} catch (except) {
|
||||
log('Error in FaqBloc, on InitializeFAQ', error: except);
|
||||
emit(state.copyWith(status: StateStatus.error));
|
||||
}
|
||||
|
||||
emit(
|
||||
state.copyWith(
|
||||
status: StateStatus.idle,
|
||||
entries: entries,
|
||||
),
|
||||
);
|
||||
});
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
part of 'faq_bloc.dart';
|
||||
|
||||
@immutable
|
||||
sealed class FaqEvent {
|
||||
const FaqEvent();
|
||||
}
|
||||
|
||||
class InitializeFAQ extends FaqEvent {
|
||||
const InitializeFAQ();
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
part of 'faq_bloc.dart';
|
||||
|
||||
@immutable
|
||||
class FaqState {
|
||||
const FaqState({
|
||||
this.status = StateStatus.idle,
|
||||
this.entries = const [],
|
||||
});
|
||||
|
||||
final StateStatus status;
|
||||
final List<FaqEntry> entries;
|
||||
|
||||
FaqState copyWith({
|
||||
StateStatus? status,
|
||||
List<FaqEntry>? entries,
|
||||
}) {
|
||||
return FaqState(
|
||||
status: status ?? this.status,
|
||||
entries: entries ?? this.entries,
|
||||
);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user