Skip to content

Commit f534ef4

Browse files
committed
Feat: 회원탈퇴 MVI 모델 정의
1 parent d6bcec7 commit f534ef4

3 files changed

Lines changed: 40 additions & 0 deletions

File tree

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
package com.threegap.bitnagil.presentation.withdrawal.model
2+
3+
import com.threegap.bitnagil.presentation.common.mviviewmodel.MviIntent
4+
5+
sealed class WithdrawalIntent : MviIntent {
6+
data object OnTermsToggle : WithdrawalIntent()
7+
data object OnBackClick : WithdrawalIntent()
8+
data object ShowSuccessDialog : WithdrawalIntent()
9+
data object OnSuccessDialogConfirm : WithdrawalIntent()
10+
data class UpdateLoading(val isLoading: Boolean) : WithdrawalIntent()
11+
data class OnReasonSelected(val reason: WithdrawalReason?) : WithdrawalIntent()
12+
data class OnCustomReasonChanged(val text: String) : WithdrawalIntent()
13+
}
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
package com.threegap.bitnagil.presentation.withdrawal.model
2+
3+
import com.threegap.bitnagil.presentation.common.mviviewmodel.MviSideEffect
4+
5+
sealed interface WithdrawalSideEffect : MviSideEffect {
6+
data object NavigateToBack : WithdrawalSideEffect
7+
data object NavigateToLogin : WithdrawalSideEffect
8+
}
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
package com.threegap.bitnagil.presentation.withdrawal.model
2+
3+
import com.threegap.bitnagil.presentation.common.mviviewmodel.MviState
4+
import kotlinx.parcelize.Parcelize
5+
6+
@Parcelize
7+
data class WithdrawalState(
8+
val isLoading: Boolean = false,
9+
val isTermsChecked: Boolean = false,
10+
val selectedReason: WithdrawalReason? = null,
11+
val customReasonText: String = "",
12+
val showSuccessDialog: Boolean = false,
13+
) : MviState {
14+
val isWithdrawalEnabled: Boolean
15+
get() = isTermsChecked && (selectedReason != null || customReasonText.isNotBlank())
16+
17+
val finalWithdrawalReason: String
18+
get() = selectedReason?.displayText ?: customReasonText
19+
}

0 commit comments

Comments
 (0)