@@ -3,9 +3,10 @@ package com.ninecraft.booket.feature.record.register
33import androidx.compose.foundation.text.input.clearText
44import androidx.compose.foundation.text.input.rememberTextFieldState
55import androidx.compose.runtime.Composable
6- import androidx.compose.runtime.LaunchedEffect
6+ import androidx.compose.runtime.derivedStateOf
77import androidx.compose.runtime.getValue
88import androidx.compose.runtime.mutableStateOf
9+ import androidx.compose.runtime.remember
910import androidx.compose.runtime.rememberCoroutineScope
1011import androidx.compose.runtime.setValue
1112import com.ninecraft.booket.core.common.utils.handleException
@@ -62,7 +63,21 @@ class RecordRegisterPresenter @AssistedInject constructor(
6263 var isImpressionGuideBottomSheetVisible by rememberRetained { mutableStateOf(false ) }
6364 var isExitDialogVisible by rememberRetained { mutableStateOf(false ) }
6465 var isRecordSavedDialogVisible by rememberRetained { mutableStateOf(false ) }
65- var isNextButtonEnabled by rememberRetained { mutableStateOf(false ) }
66+ val isNextButtonEnabled by remember {
67+ derivedStateOf {
68+ when (currentStep) {
69+ RecordStep .QUOTE -> {
70+ recordPageState.text.isNotEmpty() && recordSentenceState.text.isNotEmpty()
71+ }
72+ RecordStep .EMOTION -> {
73+ selectedEmotion != null
74+ }
75+ RecordStep .IMPRESSION -> {
76+ impressionState.text.isNotEmpty()
77+ }
78+ }
79+ }
80+ }
6681
6782 val ocrNavigator = rememberAnsweringNavigator<OcrScreen .OcrResult >(navigator) { result ->
6883 recordSentenceState.edit {
@@ -104,22 +119,6 @@ class RecordRegisterPresenter @AssistedInject constructor(
104119 }
105120 }
106121
107- fun updateIsNextButtonEnabled () {
108- isNextButtonEnabled = when (currentStep) {
109- RecordStep .QUOTE -> {
110- recordPageState.text.isNotEmpty() && recordSentenceState.text.isNotEmpty()
111- }
112-
113- RecordStep .EMOTION -> {
114- selectedEmotion != null
115- }
116-
117- RecordStep .IMPRESSION -> {
118- impressionState.text.isNotEmpty()
119- }
120- }
121- }
122-
123122 fun handleEvent (event : RecordRegisterUiEvent ) {
124123 when (event) {
125124 is RecordRegisterUiEvent .OnBackButtonClick -> {
@@ -219,16 +218,6 @@ class RecordRegisterPresenter @AssistedInject constructor(
219218 }
220219 }
221220
222- LaunchedEffect (
223- currentStep,
224- recordPageState.text,
225- recordSentenceState.text,
226- selectedEmotion,
227- impressionState.text,
228- ) {
229- updateIsNextButtonEnabled()
230- }
231-
232221 return RecordRegisterUiState (
233222 currentStep = currentStep,
234223 recordPageState = recordPageState,
0 commit comments