auth to server-V4

This commit is contained in:
Eric85710 2026-04-27 19:17:25 +08:00
parent eeba3524fa
commit 299e4c2d1d
5 changed files with 30 additions and 7 deletions

View file

@ -26,6 +26,8 @@ class MainActivity : ComponentActivity() {
installSplashScreen() installSplashScreen()
setContent { setContent {
//theme mode data
val currentAppTheme by themeViewModel.currentTheme.collectAsState() val currentAppTheme by themeViewModel.currentTheme.collectAsState()
Login_V3Theme(appTheme = currentAppTheme) { Login_V3Theme(appTheme = currentAppTheme) {

View file

@ -1,5 +1,6 @@
package com.example.login_v3.auth.reg package com.example.login_v3.auth.reg
import androidx.compose.foundation.background
import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.Spacer import androidx.compose.foundation.layout.Spacer
@ -27,7 +28,9 @@ import androidx.compose.ui.unit.dp
import androidx.hilt.navigation.compose.hiltViewModel import androidx.hilt.navigation.compose.hiltViewModel
@Composable @Composable
fun RegisterScreen(viewModel: RegisterViewModel = hiltViewModel()) { fun RegisterScreen(
viewModel: RegisterViewModel = hiltViewModel()
) {
// 監聽狀態 // 監聽狀態
val uiState by viewModel.uiState.collectAsState() val uiState by viewModel.uiState.collectAsState()
@ -48,9 +51,21 @@ fun RegisterScreen(viewModel: RegisterViewModel = hiltViewModel()) {
Spacer(modifier = Modifier.height(16.dp)) Spacer(modifier = Modifier.height(16.dp))
OutlinedTextField(value = displayName, onValueChange = { displayName = it }, label = { Text("顯示名稱") }) OutlinedTextField(
OutlinedTextField(value = email, onValueChange = { email = it }, label = { Text("電子信箱") }) value = displayName,
OutlinedTextField(value = username, onValueChange = { username = it }, label = { Text("帳號") }) onValueChange = { displayName = it },
label = { Text("顯示名稱") }
)
OutlinedTextField(
value = email,
onValueChange = { email = it },
label = { Text("電子信箱") }
)
OutlinedTextField(
value = username,
onValueChange = { username = it },
label = { Text("帳號") }
)
OutlinedTextField( OutlinedTextField(
value = password, value = password,
onValueChange = { password = it }, onValueChange = { password = it },
@ -65,7 +80,9 @@ fun RegisterScreen(viewModel: RegisterViewModel = hiltViewModel()) {
} else { } else {
Button( Button(
onClick = { viewModel.handleRegister(displayName, email, password, username) }, onClick = { viewModel.handleRegister(displayName, email, password, username) },
modifier = Modifier.fillMaxWidth() modifier = Modifier
.fillMaxWidth()
.background(color = Color.Gray)
) { ) {
Text("註冊") Text("註冊")
} }

View file

@ -1,5 +1,7 @@
package com.example.login_v3.data.api.api_class package com.example.login_v3.data.api.api_class
import com.squareup.moshi.JsonClass
data class LoginRequest( data class LoginRequest(
val username: String, val username: String,
val password: String val password: String
@ -10,6 +12,7 @@ data class LoginResponse(
val userId: String val userId: String
) )
@JsonClass(generateAdapter = true)
data class RegisterRequest( data class RegisterRequest(
val display_name: String, val display_name: String,
val email: String, val email: String,

View file

@ -24,7 +24,7 @@ enum class AppScreen {
} }
class AppViewModel : ViewModel() { class AppViewModel : ViewModel() {
private val _currentScreen = MutableStateFlow<AppScreen>(AppScreen.ScreensTab) private val _currentScreen = MutableStateFlow<AppScreen>(AppScreen.PreReg)
val currentScreen: StateFlow<AppScreen> = _currentScreen val currentScreen: StateFlow<AppScreen> = _currentScreen
fun goTo(screen: AppScreen) { fun goTo(screen: AppScreen) {

View file

@ -8,6 +8,7 @@ import androidx.compose.runtime.getValue
import androidx.lifecycle.viewmodel.compose.viewModel import androidx.lifecycle.viewmodel.compose.viewModel
import com.example.login_v3.auth.login.LoginScreen import com.example.login_v3.auth.login.LoginScreen
import com.example.login_v3.auth.Login_or_Reg_page import com.example.login_v3.auth.Login_or_Reg_page
import com.example.login_v3.auth.reg.RegisterScreen
import com.example.login_v3.auth.reg.Register_Screen import com.example.login_v3.auth.reg.Register_Screen
import com.example.login_v3.home.HomeScreen import com.example.login_v3.home.HomeScreen
@ -35,7 +36,7 @@ fun AppNavGraph(
BackHandler { BackHandler {
appViewModel.goTo(AppScreen.PreReg) appViewModel.goTo(AppScreen.PreReg)
} }
Register_Screen(paddingValues = paddingValues) RegisterScreen()
} }
AppScreen.Home -> HomeScreen( AppScreen.Home -> HomeScreen(