lesson_bloc.dart 787 Bytes

import 'package:flutter/cupertino.dart';
import 'package:flutter_bloc/flutter_bloc.dart';

part 'lesson_event.dart';
part 'lesson_state.dart';

class LessonBloc extends Bloc<LessonEvent, LessonState> {

  final int pageIndex;

  final PageController pageController;

  int _currentPageIndex = 0;

  int get currentPageIndex => _currentPageIndex;

  LessonBloc(this.pageIndex,this.pageController) : super(LessonInitial()) {
    _currentPageIndex = pageIndex;
    on<PageViewChangeIndexEvent>(_pageIndexChange);
  }

  void _pageIndexChange(PageViewChangeIndexEvent event,Emitter<LessonState> emitter) async {
    _currentPageIndex = event.index;
    emitter(PageIndexChangeState());
  }

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