import 'package:hydrated_bloc/hydrated_bloc.dart';

import 'package:minehunter/config/menu.dart';

class BottomNavCubit extends HydratedCubit<int> {
  BottomNavCubit() : super(0);

  void updateIndex(int index) {
    if (isIndexAllowed(index)) {
      emit(index);
    } else {
      goToHomePage();
    }
  }

  bool isIndexAllowed(int index) {
    return (index >= 0) && (index < Menu.itemsCount);
  }

  void goToHomePage() => emit(0);

  @override
  int fromJson(Map<String, dynamic> json) {
    return 0;
  }

  @override
  Map<String, dynamic>? toJson(int state) {
    return <String, int>{'pageIndex': state};
  }
}