Skip to content

feat: open team migration on creating channel upgrade [WPB-17057] #3998

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 3 commits into
base: develop
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,7 @@ import com.wire.android.ui.destinations.NewLoginPasswordScreenDestination
import com.wire.android.ui.destinations.NewLoginVerificationCodeScreenDestination
import com.wire.android.ui.home.conversations.ConversationScreen
import com.wire.android.ui.home.newconversation.NewConversationViewModel
import com.wire.android.ui.userprofile.teammigration.TeamMigrationViewModel

@OptIn(ExperimentalMaterialNavigationApi::class, ExperimentalAnimationApi::class)
@Composable
Expand Down Expand Up @@ -105,6 +106,14 @@ fun MainNavHost(
}
SSOUrlConfigHolderImpl(parentEntry.savedStateHandle)
}

// 👇 To tie TeamMigrationViewModel to PersonalToTeamMigrationNavGraph, making it shared between all screens that belong to it
dependency(NavGraphs.personalToTeamMigration) {
val parentEntry = remember(navBackStackEntry) {
navController.getBackStackEntry(NavGraphs.personalToTeamMigration.route)
}
hiltViewModel<TeamMigrationViewModel>(parentEntry)
}
},
manualComposableCallsBuilder = {
/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,20 +20,19 @@ package com.wire.android.ui.home.newconversation.search
import androidx.compose.runtime.Composable
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember
import androidx.compose.ui.platform.LocalContext
import androidx.compose.ui.res.stringResource
import com.wire.android.R
import com.wire.android.navigation.NavigationCommand
import com.wire.android.navigation.Navigator
import com.wire.android.navigation.WireDestination
import com.wire.android.navigation.style.PopUpNavigationAnimation
import com.wire.android.ui.NavGraphs
import com.wire.android.ui.destinations.NewGroupConversationSearchPeopleScreenDestination
import com.wire.android.ui.destinations.OtherUserProfileScreenDestination
import com.wire.android.ui.home.conversations.search.SearchPeopleScreenType
import com.wire.android.ui.home.conversations.search.SearchUsersAndServicesScreen
import com.wire.android.ui.home.newconversation.NewConversationViewModel
import com.wire.android.ui.home.newconversation.common.NewConversationNavGraph
import com.wire.android.util.CustomTabsHelper
import com.wire.kalium.logic.data.id.QualifiedID

@NewConversationNavGraph(start = true)
Expand Down Expand Up @@ -77,14 +76,13 @@ fun NewConversationSearchPeopleScreen(
)

if (showCreateTeamDialog.value) {
val context = LocalContext.current
val createTeamLink = stringResource(R.string.url_wire_create_team)
ChannelNotAvailableDialog(
onDismiss = {
showCreateTeamDialog.value = false
},
onCreateTeam = {
CustomTabsHelper.launchUrl(context, createTeamLink)
showCreateTeamDialog.value = false
navigator.navigate(NavigationCommand(NavGraphs.personalToTeamMigration))
}
)
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,7 @@ import com.wire.android.navigation.NavigationCommand
import com.wire.android.navigation.Navigator
import com.wire.android.navigation.WireDestination
import com.wire.android.navigation.style.PopUpNavigationAnimation
import com.wire.android.ui.NavGraphs
import com.wire.android.ui.common.VisibilityState
import com.wire.android.ui.common.WireDropDown
import com.wire.android.ui.common.avatar.UserStatusIndicator
Expand All @@ -83,7 +84,6 @@ import com.wire.android.ui.destinations.AvatarPickerScreenDestination
import com.wire.android.ui.destinations.MyAccountScreenDestination
import com.wire.android.ui.destinations.NewLoginScreenDestination
import com.wire.android.ui.destinations.SelfQRCodeScreenDestination
import com.wire.android.ui.destinations.TeamMigrationScreenDestination
import com.wire.android.ui.destinations.WelcomeScreenDestination
import com.wire.android.ui.home.conversationslist.common.FolderHeader
import com.wire.android.ui.legalhold.banner.LegalHoldPendingBanner
Expand Down Expand Up @@ -168,7 +168,7 @@ fun SelfUserProfileScreen(
)
},
onCreateAccount = {
navigator.navigate(NavigationCommand(TeamMigrationScreenDestination))
navigator.navigate(NavigationCommand(NavGraphs.personalToTeamMigration))
},
onAccountDetailsClick = { navigator.navigate(NavigationCommand(MyAccountScreenDestination)) },
isUserInCall = viewModelSelf::isUserInCall,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,9 @@
package com.wire.android.ui.userprofile.teammigration

import com.ramcosta.composedestinations.annotation.NavGraph
import com.ramcosta.composedestinations.annotation.RootNavGraph

@RootNavGraph
@NavGraph
annotation class PersonalToTeamMigrationNavGraph(
val start: Boolean = false
Expand Down

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -22,9 +22,7 @@ import com.wire.kalium.logic.feature.user.migration.MigrateFromPersonalToTeamFai

data class TeamMigrationState(
val teamNameTextState: TextFieldState = TextFieldState(),
val shouldShowMigrationLeaveDialog: Boolean = false,
val isMigrating: Boolean = false,
val currentStep: Int = 0,
val username: String = "",
val teamUrl: String = "",
val migrationFailure: MigrateFromPersonalToTeamFailure? = null,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -52,16 +52,7 @@ class TeamMigrationViewModel @Inject constructor(
observeMigrationDotActive()
}

fun showMigrationLeaveDialog() {
teamMigrationState = teamMigrationState.copy(shouldShowMigrationLeaveDialog = true)
}

fun hideMigrationLeaveDialog() {
teamMigrationState = teamMigrationState.copy(shouldShowMigrationLeaveDialog = false)
}

fun setCurrentStep(step: Int) {
teamMigrationState = teamMigrationState.copy(currentStep = step)
sendPersonalTeamCreationFlowStepEvent(step)
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,9 @@ fun BottomLineButtons(
isMigrating: Boolean = false,
isBackButtonVisible: Boolean = true,
backButtonContentDescription: String = stringResource(R.string.personal_to_team_migration_back_button_label),
backButtonText: String = stringResource(R.string.personal_to_team_migration_back_button_label),
onBack: () -> Unit = { },
continueButtonText: String = stringResource(R.string.label_continue),
onContinue: () -> Unit = { }
) {
Column(
Expand All @@ -67,7 +69,7 @@ fun BottomLineButtons(
modifier = Modifier
.fillMaxWidth()
.semantics(true) { contentDescription = backButtonContentDescription },
text = stringResource(R.string.personal_to_team_migration_back_button_label),
text = backButtonText,
onClick = onBack,
state = if (isMigrating) {
WireButtonState.Disabled
Expand All @@ -81,7 +83,7 @@ fun BottomLineButtons(
modifier = Modifier
.fillMaxWidth()
.padding(top = dimensions().spacing6x),
text = stringResource(R.string.label_continue),
text = continueButtonText,
onClick = onContinue,
loading = isMigrating,
state = if (isContinueButtonEnabled && !isMigrating) {
Expand Down
Loading
Loading