fix: optimize status bar color handling in ProfilePhotoPicker for better performance

This commit is contained in:
k1ngsterr1
2026-02-02 16:44:28 +05:00
parent 0c5abd976e
commit eb69d67ea5

View File

@@ -183,24 +183,24 @@ fun ProfilePhotoPicker(
// 🎨 Затемнение статус бара когда галерея открыта // 🎨 Затемнение статус бара когда галерея открыта
val view = LocalView.current val view = LocalView.current
DisposableEffect(shouldShow, scrimAlpha) { val window = remember { (view.context as? android.app.Activity)?.window }
if (shouldShow && !view.isInEditMode) { val originalStatusBarColor = remember { window?.statusBarColor ?: 0 }
val window = (view.context as? android.app.Activity)?.window
val originalStatusBarColor = window?.statusBarColor ?: 0
// Затемняем статус бар // Обновляем цвет статус бара при изменении scrimAlpha
LaunchedEffect(scrimAlpha) {
if (window != null && !view.isInEditMode) {
val scrimColor = android.graphics.Color.argb( val scrimColor = android.graphics.Color.argb(
(scrimAlpha * 255).toInt().coerceIn(0, 255), (scrimAlpha * 255).toInt().coerceIn(0, 255),
0, 0, 0 0, 0, 0
) )
window?.statusBarColor = scrimColor window.statusBarColor = scrimColor
onDispose {
// Восстанавливаем оригинальный цвет
window?.statusBarColor = originalStatusBarColor
} }
} else { }
onDispose { }
// Восстанавливаем оригинальный цвет при закрытии
DisposableEffect(Unit) {
onDispose {
window?.statusBarColor = originalStatusBarColor
} }
} }