when<T> method

T when<T>({
  1. required T success(
    1. KAuthUser user
    ),
  2. required T cancelled(),
  3. required T failure(
    1. String? code,
    2. String? message
    ),
})

성공/실패/취소에 따라 다른 값 반환

result.when(
  success: (user) => navigateToHome(user),
  cancelled: () => showToast('로그인을 취소했습니다'),
  failure: (code, message) => showError(message),
);

Implementation

T when<T>({
  required T Function(KAuthUser user) success,
  required T Function() cancelled,
  required T Function(String? code, String? message) failure,
}) {
  if (this.success && user != null) {
    return success(user!);
  }
  if (errorCode == 'USER_CANCELLED') {
    return cancelled();
  }
  return failure(errorCode, errorMessage);
}