From b70c60a9505499b40e91093f496176be80b0020e Mon Sep 17 00:00:00 2001 From: kckagancan <118129306+kckagancan@users.noreply.github.com> Date: Tue, 12 May 2026 13:03:08 +0300 Subject: [PATCH] fix(android): navigate after edited help request submission --- .../requesthelp/presentation/RequestHelpScreen.kt | 10 ++++++---- .../src/main/java/com/neph/navigation/AppNavGraph.kt | 10 +++++++--- 2 files changed, 13 insertions(+), 7 deletions(-) diff --git a/android/app/src/main/java/com/neph/features/requesthelp/presentation/RequestHelpScreen.kt b/android/app/src/main/java/com/neph/features/requesthelp/presentation/RequestHelpScreen.kt index 5927637b..050de41e 100644 --- a/android/app/src/main/java/com/neph/features/requesthelp/presentation/RequestHelpScreen.kt +++ b/android/app/src/main/java/com/neph/features/requesthelp/presentation/RequestHelpScreen.kt @@ -934,8 +934,10 @@ fun RequestHelpScreen( loading = true scope.launch { try { + val editLocalId = activeDraftLocalId.takeIf { it.isNotBlank() } + val existingDraft = editLocalId?.let { RequestHelpRepository.getLocalHelpRequest(it) } if (isLoggedIn) { - val hasActiveRequest = activeDraftLocalId.isBlank() && RequestHelpRepository.hasActiveHelpRequest(sessionToken) + val hasActiveRequest = existingDraft == null && RequestHelpRepository.hasActiveHelpRequest(sessionToken) if (hasActiveRequest) { errorMessage = "You can only have one active help request at a time." return@launch @@ -948,10 +950,10 @@ fun RequestHelpScreen( } val submission = buildSubmission(formState, availableLocationData) - val result = if (activeDraftLocalId.isNotBlank()) { + val result = if (editLocalId != null && existingDraft != null) { RequestHelpRepository.updateHelpRequest( token = sessionToken, - localId = activeDraftLocalId, + localId = editLocalId, submission = submission, preserveExistingCoordinates = !formState.locationWasManuallyChanged ) @@ -961,7 +963,7 @@ fun RequestHelpScreen( submission = submission ) } - activeDraftLocalId = result.requestId + activeDraftLocalId = if (existingDraft != null) "" else result.requestId infoMessage = "Help request saved on this device and queued for sync." if (isSendOnboardingTarget) { completeRequestHelpOnboardingStep(MobileOnboardingStepId.REQUEST_HELP_SEND) diff --git a/android/app/src/main/java/com/neph/navigation/AppNavGraph.kt b/android/app/src/main/java/com/neph/navigation/AppNavGraph.kt index 9681625d..22b1e390 100644 --- a/android/app/src/main/java/com/neph/navigation/AppNavGraph.kt +++ b/android/app/src/main/java/com/neph/navigation/AppNavGraph.kt @@ -502,9 +502,13 @@ fun AppNavGraph( navigateToLogin() }, onNavigateToMyHelpRequests = { - val popped = navController.popBackStack(Routes.MyHelpRequests.route, inclusive = false) - if (!popped) { - navigateToDrawerRoute(Routes.MyHelpRequests.route) + navController.navigate(Routes.MyHelpRequests.route) { + popUpTo(Routes.Home.route) { + inclusive = false + saveState = false + } + launchSingleTop = true + restoreState = false } }, mobileOnboardingStepId = mobileOnboardingStepId,