open ai service
This commit is contained in:
21
books_flutter/lib/bloc/library/library_bloc.dart
Normal file
21
books_flutter/lib/bloc/library/library_bloc.dart
Normal file
@@ -0,0 +1,21 @@
|
||||
import 'package:flutter_bloc/flutter_bloc.dart';
|
||||
import 'library_event.dart';
|
||||
import 'library_state.dart';
|
||||
|
||||
class LibraryBloc extends Bloc<LibraryEvent, LibraryState> {
|
||||
LibraryBloc() : super(const LibraryState()) {
|
||||
on<UpdateSearchQuery>(_onUpdateSearchQuery);
|
||||
on<ChangeTab>(_onChangeTab);
|
||||
}
|
||||
|
||||
void _onUpdateSearchQuery(
|
||||
UpdateSearchQuery event,
|
||||
Emitter<LibraryState> emit,
|
||||
) {
|
||||
emit(state.copyWith(searchQuery: event.query));
|
||||
}
|
||||
|
||||
void _onChangeTab(ChangeTab event, Emitter<LibraryState> emit) {
|
||||
emit(state.copyWith(tabIndex: event.tabIndex));
|
||||
}
|
||||
}
|
||||
11
books_flutter/lib/bloc/library/library_event.dart
Normal file
11
books_flutter/lib/bloc/library/library_event.dart
Normal file
@@ -0,0 +1,11 @@
|
||||
sealed class LibraryEvent {}
|
||||
|
||||
class UpdateSearchQuery extends LibraryEvent {
|
||||
final String query;
|
||||
UpdateSearchQuery(this.query);
|
||||
}
|
||||
|
||||
class ChangeTab extends LibraryEvent {
|
||||
final int tabIndex;
|
||||
ChangeTab(this.tabIndex);
|
||||
}
|
||||
13
books_flutter/lib/bloc/library/library_state.dart
Normal file
13
books_flutter/lib/bloc/library/library_state.dart
Normal file
@@ -0,0 +1,13 @@
|
||||
class LibraryState {
|
||||
final String searchQuery;
|
||||
final int tabIndex;
|
||||
|
||||
const LibraryState({this.searchQuery = '', this.tabIndex = 0});
|
||||
|
||||
LibraryState copyWith({String? searchQuery, int? tabIndex}) {
|
||||
return LibraryState(
|
||||
searchQuery: searchQuery ?? this.searchQuery,
|
||||
tabIndex: tabIndex ?? this.tabIndex,
|
||||
);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user