topic_picture_bloc.dart 1.06 KB
import 'package:flutter/cupertino.dart';
import 'package:flutter_bloc/flutter_bloc.dart';

part 'topic_picture_event.dart';
part 'topic_picture_state.dart';

class TopicPictureBloc extends Bloc<TopicPictureEvent, TopicPictureState> {

  final PageController pageController;

  final int modelCount;

  int _currentPage = 0;

  int _selectItem = 0;

  int get currentPage => _currentPage + 1;

  int get selectItem => _selectItem;

  TopicPictureBloc(this.pageController, this.modelCount) : super(TopicPictureInitial()) {
    on<CurrentPageIndexChangeEvent>(_pageControllerChange);
    on<SelectItemEvent>(_selectItemLoad);
  }

  @override
  Future<void> close() {
    pageController.dispose();
    return super.close();
  }

  void _pageControllerChange(CurrentPageIndexChangeEvent event,Emitter<TopicPictureState> emitter) async {
    _currentPage = event.pageIndex;
    emitter(CurrentPageIndexState());
  }

  void _selectItemLoad(SelectItemEvent event,Emitter<TopicPictureState> emitter) async {
    _selectItem = event.selectIndex;
    emitter(SelectItemChangeState());
  }
}