Skip to content
Snippets Groups Projects
settings_cubit.dart 1.11 KiB
Newer Older
import 'package:equatable/equatable.dart';
import 'package:flutter/material.dart';
import 'package:hydrated_bloc/hydrated_bloc.dart';

part 'settings_state.dart';

class SettingsCubit extends HydratedCubit<SettingsState> {
  SettingsCubit() : super(const SettingsState());

  String getUsername() {
    return state.username ?? '';
  }

  String getSecurityToken() {
    return state.securityToken ?? '';
  }

  void setValues({
    String? username,
    String? securityToken,
  }) {
    emit(SettingsState(
      username: username != null ? username : state.username,
      securityToken: securityToken != null ? securityToken : state.securityToken,
    ));
  }

  @override
  SettingsState? fromJson(Map<String, dynamic> json) {
    String username = json['username'] as String;
    String securityToken = json['securityToken'] as String;

    return SettingsState(
      username: username,
      securityToken: securityToken,
    );
  }

  @override
  Map<String, String>? toJson(SettingsState state) {
    return <String, String>{
      'username': state.username ?? '',
      'securityToken': state.securityToken ?? '',
    };
  }
}