override fun effectOverlay()

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 }
                    )
                }
            }
        }
    }