@@ -91,6 +91,7 @@ import androidx.compose.material3.ripple
91
91
import androidx.compose.material3.toShape
92
92
import androidx.compose.runtime.Composable
93
93
import androidx.compose.runtime.LaunchedEffect
94
+ import androidx.compose.runtime.derivedStateOf
94
95
import androidx.compose.runtime.getValue
95
96
import androidx.compose.runtime.mutableStateOf
96
97
import androidx.compose.runtime.remember
@@ -461,16 +462,22 @@ private fun MainCreationPane(
461
462
}
462
463
463
464
PromptType .TEXT .ordinal -> {
464
- TextPrompt (
465
- textFieldState = uiState.descriptionText,
466
- promptGenerationInProgress = uiState.promptGenerationInProgress,
467
- generatedPrompt = uiState.generatedPrompt,
468
- onPromptGenerationPressed = onPromptGenerationPressed,
469
- modifier = Modifier
470
- .fillMaxSize()
471
- .heightIn(min = 200 .dp)
472
- .padding(2 .dp),
473
- )
465
+ val showTextPrompt by remember {
466
+ derivedStateOf { pagerState.currentPage == PromptType .TEXT .ordinal && pagerState.targetPage == pagerState.currentPage }
467
+ }
468
+ // This ensures the TextPrompt only renders when navigation animation completes.
469
+ if (showTextPrompt) {
470
+ TextPrompt (
471
+ textFieldState = uiState.descriptionText,
472
+ promptGenerationInProgress = uiState.promptGenerationInProgress,
473
+ generatedPrompt = uiState.generatedPrompt,
474
+ onPromptGenerationPressed = onPromptGenerationPressed,
475
+ modifier = Modifier
476
+ .fillMaxSize()
477
+ .heightIn(min = 200 .dp)
478
+ .padding(2 .dp),
479
+ )
480
+ }
474
481
}
475
482
}
476
483
}
0 commit comments