fold<T> method

T fold<T>({
  1. required T onSuccess(
    1. KAuthUser user
    ),
  2. required T onFailure(
    1. KAuthFailure failure
    ),
})

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

final message = result.fold(
  onSuccess: (user) => '환영합니다, ${user.displayName}님!',
  onFailure: (failure) => '로그인 실패: ${failure.message}',
);

// 취소 여부 확인
result.fold(
  onSuccess: (user) => navigateToHome(),
  onFailure: (failure) {
    if (failure.isCancelled) {
      // 취소는 조용히 처리
      return;
    }
    showError(failure.message);
  },
);

Implementation

T fold<T>({
  required T Function(KAuthUser user) onSuccess,
  required T Function(KAuthFailure failure) onFailure,
}) {
  if (success && user != null) {
    return onSuccess(user!);
  }
  return onFailure(failure);
}