diff --git a/app/src/main/java/ru/forbion/f7cloud/mobile/ui/AppScaffold.kt b/app/src/main/java/ru/forbion/f7cloud/mobile/ui/AppScaffold.kt index 148b228..e86d88b 100644 --- a/app/src/main/java/ru/forbion/f7cloud/mobile/ui/AppScaffold.kt +++ b/app/src/main/java/ru/forbion/f7cloud/mobile/ui/AppScaffold.kt @@ -134,6 +134,7 @@ fun AppScaffold( var filesUploadRequest by remember { mutableIntStateOf(0) } var contactsCreateRequest by remember { mutableIntStateOf(0) } var tasksCreateRequest by remember { mutableIntStateOf(0) } + var tasksShowListsRequest by remember { mutableIntStateOf(0) } var supportCreateRequest by remember { mutableIntStateOf(0) } var calendarSettingsRequest by remember { mutableIntStateOf(0) } var talkChatsRequest by remember { mutableIntStateOf(0) } @@ -458,7 +459,10 @@ fun AppScaffold( AppTab.Mail -> mailSidebarOpen = !mailSidebarOpen AppTab.Calendar -> calendarSidebarOpen = !calendarSidebarOpen AppTab.Files -> filesSidebarOpen = !filesSidebarOpen - // Разделы без сайдбара (Карточки/Конференции/Контакты/Задачи/ + // Задачи: стрелка открывает панель списков (закрывает + // открытый список) — как сайдбар в Почте/Файлах. + AppTab.Tasks -> tasksShowListsRequest++ + // Разделы без сайдбара (Карточки/Конференции/Контакты/ // Поддержка): стрелка = «назад» к предыдущему разделу. else -> popTabHistory()?.let { activeTab = it } } @@ -566,6 +570,7 @@ fun AppScaffold( modifier = contentModifier, createRequest = tasksCreateRequest, openListSlug = pendingTasksListSlug, + showListsRequest = tasksShowListsRequest, onOpenListConsumed = { pendingTasksListSlug = null }, onUnauthorized = forceLogout, ) diff --git a/feature/tasks/src/main/java/ru/forbion/f7cloud/feature/tasks/TasksScreen.kt b/feature/tasks/src/main/java/ru/forbion/f7cloud/feature/tasks/TasksScreen.kt index a7d1d74..b91ab71 100644 --- a/feature/tasks/src/main/java/ru/forbion/f7cloud/feature/tasks/TasksScreen.kt +++ b/feature/tasks/src/main/java/ru/forbion/f7cloud/feature/tasks/TasksScreen.kt @@ -31,12 +31,18 @@ fun TasksScreen( modifier: Modifier = Modifier, createRequest: Int = 0, openListSlug: String? = null, + showListsRequest: Int = 0, onOpenListConsumed: () -> Unit = {}, onUnauthorized: () -> Unit = {}, ) { val vm: TasksViewModel = viewModel() val state by vm.state.collectAsState() + // Стрелка «назад» нижней панели на Задачах → показать панель списков (закрыть открытый список). + LaunchedEffect(showListsRequest) { + if (showListsRequest > 0) vm.closeList() + } + LaunchedEffect(session.serverUrl, session.username, session.davUserId) { vm.load(session) }