Skip to content
Snippets Groups Projects
data_counts_by_hour_cubit.dart 1.16 KiB
Newer Older
Benoît Harrault's avatar
Benoît Harrault committed
import 'package:equatable/equatable.dart';
import 'package:flutter/material.dart';
import 'package:hydrated_bloc/hydrated_bloc.dart';

import 'package:scrobbles/models/counts_by_hour.dart';

part 'data_counts_by_hour_state.dart';

class DataCountsByHourCubit extends HydratedCubit<DataCountsByHourState> {
  DataCountsByHourCubit() : super(const DataCountsByHourState());

  void getData(DataCountsByHourState state) {
    emit(state);
  }

  CountsByHourData? getValue() {
    return state.countsByHour;
  }

  void update(CountsByHourData? countsByHour) {
    if ((countsByHour != null) && (state.countsByHour.toString() != countsByHour.toString())) {
      setValue(countsByHour);
    }
  }

Benoît Harrault's avatar
Benoît Harrault committed
  void setValue(CountsByHourData? countsByHour) {
    emit(DataCountsByHourState(
      countsByHour: countsByHour,
    ));
  }

  @override
  DataCountsByHourState? fromJson(Map<String, dynamic> json) {
    return DataCountsByHourState(
      countsByHour: CountsByHourData.fromJson(json['countsByHour']),
    );
  }

  @override
  Map<String, Object?>? toJson(DataCountsByHourState state) {
    return <String, Object?>{
      'countsByHour': state.countsByHour?.toJson(),
    };
  }
}