emit method

Future<AuthResponse<T>> emit(
  1. AuthResponse<T> data, {
  2. Object? args,
  3. String? id,
  4. bool notifiable = true,
})
inherited

Implementation

Future<AuthResponse<T>> emit(
  AuthResponse<T> data, {
  Object? args,
  String? id,
  bool notifiable = true,
}) async {
  if (_disposed) return data;

  _args = args;
  _id = id;

  if (data.isLoading) {
    if (notifiable) _emitLoading(true);
    return data;
  }

  if (notifiable) _emitLoading(false);

  if (data.hasStatus) {
    _emitStatus(data);
    if (data.status == AuthStatus.unauthenticated) {
      _emitUser(null);
    } else if (data.data != null) {
      _emitUser(data.data);
    }
  } else if (data.data != null) {
    _emitUser(data.data);
  }

  if (notifiable) {
    if (data.isError) {
      _emitError(data);
    } else {
      _clearError();
    }
    if (data.isMessage) _emitMessage(data);
  }

  return data;
}