fix: optimize status bar color handling in ProfilePhotoPicker for better performance
This commit is contained in:
@@ -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
|
||||
|
||||
onDispose {
|
||||
// Восстанавливаем оригинальный цвет
|
||||
window?.statusBarColor = originalStatusBarColor
|
||||
}
|
||||
} else {
|
||||
onDispose { }
|
||||
window.statusBarColor = scrimColor
|
||||
}
|
||||
}
|
||||
|
||||
// Восстанавливаем оригинальный цвет при закрытии
|
||||
DisposableEffect(Unit) {
|
||||
onDispose {
|
||||
window?.statusBarColor = originalStatusBarColor
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user