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