in hot-reload-runtime-jvm/src/main/kotlinUI/org/jetbrains/compose/hotReloadUI/ErrorNotificationOverlayEffect.kt [66:123]
override fun effectOverlay(state: ReloadState) {
var failure by remember { mutableStateOf<ReloadState.Failed?>(null) }
if (state is ReloadState.Failed) {
failure = state
}
var visible by remember(state) { mutableStateOf(state is ReloadState.Failed) }
Box(modifier = Modifier.fillMaxWidth().height(IntrinsicSize.Max)) {
AnimatedVisibility(
visible = visible,
enter = fadeIn(tween(1000, easing = LinearEasing)),
exit = fadeOut(tween(1000, easing = LinearEasing)),
) {
}
AnimatedVisibility(
visible = visible,
enter = EnterTransition.None,
exit = ExitTransition.None,
) {
Box(
modifier = Modifier
.animateEnterExit(
enter = fadeIn(tween(statusColorFadeDuration.milliseconds, easing = LinearEasing)),
exit = fadeOut(tween(statusColorFadeDuration.milliseconds, easing = LinearEasing)),
)
.background(
Brush.verticalGradient(
colors = listOf(
surface.copy(alpha = 0.3f),
surface.copy(alpha = 0f)
)
)
)
.fillMaxSize()
)
Box(
modifier = Modifier.fillMaxWidth()
.animateEnterExit(
enter = slideInVertically(initialOffsetY = { -it }),
exit = slideOutVertically(targetOffsetY = { -it })
)
.padding(12.dp),
contentAlignment = Alignment.TopCenter
) {
ErrorNotification(
failure ?: return@Box,
onClick = { visible = false }
)
}
}
}
}