fix(tasks): стрелка нижней панели открывает панель списков задач

Раньше на Задачах стрелка «назад» уводила на предыдущий раздел (Файлы).
Теперь она закрывает открытый список и показывает панель списков задач
(TasksListNavView: Все/Текущие/конкретные списки) — как сайдбар папок
в Почте/Файлах/Календаре. Проброшен showListsRequest → vm.closeList().

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
b-dev-mobile
2026-07-10 07:19:26 +00:00
parent 374e8838e8
commit a5ebcd4d80
2 changed files with 12 additions and 1 deletions
@@ -134,6 +134,7 @@ fun AppScaffold(
var filesUploadRequest by remember { mutableIntStateOf(0) } var filesUploadRequest by remember { mutableIntStateOf(0) }
var contactsCreateRequest by remember { mutableIntStateOf(0) } var contactsCreateRequest by remember { mutableIntStateOf(0) }
var tasksCreateRequest by remember { mutableIntStateOf(0) } var tasksCreateRequest by remember { mutableIntStateOf(0) }
var tasksShowListsRequest by remember { mutableIntStateOf(0) }
var supportCreateRequest by remember { mutableIntStateOf(0) } var supportCreateRequest by remember { mutableIntStateOf(0) }
var calendarSettingsRequest by remember { mutableIntStateOf(0) } var calendarSettingsRequest by remember { mutableIntStateOf(0) }
var talkChatsRequest by remember { mutableIntStateOf(0) } var talkChatsRequest by remember { mutableIntStateOf(0) }
@@ -458,7 +459,10 @@ fun AppScaffold(
AppTab.Mail -> mailSidebarOpen = !mailSidebarOpen AppTab.Mail -> mailSidebarOpen = !mailSidebarOpen
AppTab.Calendar -> calendarSidebarOpen = !calendarSidebarOpen AppTab.Calendar -> calendarSidebarOpen = !calendarSidebarOpen
AppTab.Files -> filesSidebarOpen = !filesSidebarOpen AppTab.Files -> filesSidebarOpen = !filesSidebarOpen
// Разделы без сайдбара (Карточки/Конференции/Контакты/Задачи/ // Задачи: стрелка открывает панель списков (закрывает
// открытый список) — как сайдбар в Почте/Файлах.
AppTab.Tasks -> tasksShowListsRequest++
// Разделы без сайдбара (Карточки/Конференции/Контакты/
// Поддержка): стрелка = «назад» к предыдущему разделу. // Поддержка): стрелка = «назад» к предыдущему разделу.
else -> popTabHistory()?.let { activeTab = it } else -> popTabHistory()?.let { activeTab = it }
} }
@@ -566,6 +570,7 @@ fun AppScaffold(
modifier = contentModifier, modifier = contentModifier,
createRequest = tasksCreateRequest, createRequest = tasksCreateRequest,
openListSlug = pendingTasksListSlug, openListSlug = pendingTasksListSlug,
showListsRequest = tasksShowListsRequest,
onOpenListConsumed = { pendingTasksListSlug = null }, onOpenListConsumed = { pendingTasksListSlug = null },
onUnauthorized = forceLogout, onUnauthorized = forceLogout,
) )
@@ -31,12 +31,18 @@ fun TasksScreen(
modifier: Modifier = Modifier, modifier: Modifier = Modifier,
createRequest: Int = 0, createRequest: Int = 0,
openListSlug: String? = null, openListSlug: String? = null,
showListsRequest: Int = 0,
onOpenListConsumed: () -> Unit = {}, onOpenListConsumed: () -> Unit = {},
onUnauthorized: () -> Unit = {}, onUnauthorized: () -> Unit = {},
) { ) {
val vm: TasksViewModel = viewModel() val vm: TasksViewModel = viewModel()
val state by vm.state.collectAsState() val state by vm.state.collectAsState()
// Стрелка «назад» нижней панели на Задачах → показать панель списков (закрыть открытый список).
LaunchedEffect(showListsRequest) {
if (showListsRequest > 0) vm.closeList()
}
LaunchedEffect(session.serverUrl, session.username, session.davUserId) { LaunchedEffect(session.serverUrl, session.username, session.davUserId) {
vm.load(session) vm.load(session)
} }