feat: Refactor code structure and optimize performance across multiple modules

This commit is contained in:
Achintha Isuru
2025-11-17 23:29:28 -05:00
parent 831570f2e0
commit a64cbd9edf
1508 changed files with 105319 additions and 0 deletions

View File

@@ -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,
),
);
});
}
}

View File

@@ -0,0 +1,10 @@
part of 'faq_bloc.dart';
@immutable
sealed class FaqEvent {
const FaqEvent();
}
class InitializeFAQ extends FaqEvent {
const InitializeFAQ();
}

View File

@@ -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,
);
}
}

View File

@@ -0,0 +1,9 @@
import 'package:flutter/foundation.dart';
@immutable
class FaqEntry {
const FaqEntry({required this.question, required this.answer});
final String question;
final String answer;
}

View File

@@ -0,0 +1,5 @@
import 'package:krow/features/profile/faq/domain/entities/faq_entry.dart';
abstract interface class FaqRepository {
Future<List<FaqEntry>> getFaqData();
}