feat(android): "Change server URL" link on Login (parity map: Auth)

Ports flutter_client/lib/auth/login_screen.dart:86-89 — a TextButton
under the Sign-in button that routes to the ServerUrl screen, so a
wrong server URL is recoverable pre-login without reinstalling or
signing out from Settings. Disabled while a submit is in flight.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-05-28 08:15:44 -04:00
parent f62e72b2f2
commit 903a7961e3
@@ -14,6 +14,7 @@ import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.OutlinedTextField
import androidx.compose.material3.Surface
import androidx.compose.material3.Text
import androidx.compose.material3.TextButton
import androidx.compose.runtime.Composable
import androidx.compose.runtime.LaunchedEffect
import androidx.compose.runtime.getValue
@@ -28,6 +29,7 @@ import androidx.lifecycle.compose.collectAsStateWithLifecycle
import androidx.navigation.NavHostController
import com.fabledsword.minstrel.nav.Home
import com.fabledsword.minstrel.nav.Login
import com.fabledsword.minstrel.nav.ServerUrl
@Composable
fun LoginScreen(
@@ -55,6 +57,7 @@ fun LoginScreen(
onUsernameChange = viewModel::setUsername,
onPasswordChange = viewModel::setPassword,
onSubmit = viewModel::submit,
onChangeServerUrl = { navController.navigate(ServerUrl) },
)
}
}
@@ -65,6 +68,7 @@ private fun LoginForm(
onUsernameChange: (String) -> Unit,
onPasswordChange: (String) -> Unit,
onSubmit: () -> Unit,
onChangeServerUrl: () -> Unit,
) {
Column(
modifier = Modifier
@@ -112,6 +116,12 @@ private fun LoginForm(
)
}
SubmitButton(state = state, onSubmit = onSubmit)
TextButton(
onClick = onChangeServerUrl,
enabled = !state.isSubmitting,
) {
Text("Change server URL")
}
}
}