feat: enhance image viewer navigation with tap animations and controls visibility

This commit is contained in:
2026-02-09 21:14:10 +05:00
parent efdb93d136
commit 3c37a3b0e5
12 changed files with 1620 additions and 376 deletions

View File

@@ -841,14 +841,14 @@ fun MainScreen(
)
}
// 🖼️ Image viewer state — disable swipe-back when photo is fullscreen
var isImageViewerOpen by remember { mutableStateOf(false) }
// 🔒 Lock swipe-back while chat overlays are open (image viewer/editor/media picker/camera).
var isChatSwipeLocked by remember { mutableStateOf(false) }
SwipeBackContainer(
isVisible = selectedUser != null,
onBack = { popChatAndChildren() },
isDarkTheme = isDarkTheme,
swipeEnabled = !isImageViewerOpen
swipeEnabled = !isChatSwipeLocked
) {
selectedUser?.let { currentChatUser ->
// Экран чата
@@ -870,7 +870,7 @@ fun MainScreen(
},
isDarkTheme = isDarkTheme,
avatarRepository = avatarRepository,
onImageViewerChanged = { isOpen -> isImageViewerOpen = isOpen }
onImageViewerChanged = { isLocked -> isChatSwipeLocked = isLocked }
)
}
}
@@ -928,7 +928,9 @@ fun MainScreen(
user = currentOtherUser,
isDarkTheme = isDarkTheme,
onBack = { navStack = navStack.filterNot { it is Screen.OtherProfile } },
avatarRepository = avatarRepository
avatarRepository = avatarRepository,
currentUserPublicKey = accountPublicKey,
currentUserPrivateKey = accountPrivateKey
)
}
}