|
|
@ -8,9 +8,14 @@ import androidx.compose.material3.MaterialTheme
|
|
|
|
import androidx.compose.material3.Surface
|
|
|
|
import androidx.compose.material3.Surface
|
|
|
|
import androidx.compose.runtime.Composable
|
|
|
|
import androidx.compose.runtime.Composable
|
|
|
|
import androidx.compose.runtime.MutableState
|
|
|
|
import androidx.compose.runtime.MutableState
|
|
|
|
|
|
|
|
import androidx.compose.runtime.getValue
|
|
|
|
import androidx.compose.runtime.mutableStateOf
|
|
|
|
import androidx.compose.runtime.mutableStateOf
|
|
|
|
import androidx.compose.runtime.remember
|
|
|
|
import androidx.compose.runtime.remember
|
|
|
|
|
|
|
|
import androidx.compose.runtime.setValue
|
|
|
|
import androidx.compose.ui.Modifier
|
|
|
|
import androidx.compose.ui.Modifier
|
|
|
|
|
|
|
|
import androidx.navigation.compose.NavHost
|
|
|
|
|
|
|
|
import androidx.navigation.compose.composable
|
|
|
|
|
|
|
|
import androidx.navigation.compose.rememberNavController
|
|
|
|
import com.google.gson.Gson
|
|
|
|
import com.google.gson.Gson
|
|
|
|
import com.iqball.app.api.EitherBodyConverter
|
|
|
|
import com.iqball.app.api.EitherBodyConverter
|
|
|
|
import com.iqball.app.api.EitherCallAdapterFactory
|
|
|
|
import com.iqball.app.api.EitherCallAdapterFactory
|
|
|
@ -63,22 +68,35 @@ class MainActivity : ComponentActivity() {
|
|
|
|
|
|
|
|
|
|
|
|
@Composable
|
|
|
|
@Composable
|
|
|
|
fun App(service: IQBallService, sessionState: MutableState<Session>) {
|
|
|
|
fun App(service: IQBallService, sessionState: MutableState<Session>) {
|
|
|
|
|
|
|
|
val navController = rememberNavController()
|
|
|
|
|
|
|
|
|
|
|
|
val registerPage: @Composable () -> Unit = {
|
|
|
|
NavHost(navController = navController, startDestination = "login") {
|
|
|
|
RegisterPage(service = service, onRegisterSuccess = { auth ->
|
|
|
|
composable("login") {
|
|
|
|
sessionState.value = DataSession(auth)
|
|
|
|
LoginPage(
|
|
|
|
})
|
|
|
|
service = service,
|
|
|
|
}
|
|
|
|
onLoginSuccess = { auth ->
|
|
|
|
|
|
|
|
sessionState.value = DataSession(auth)
|
|
|
|
val loginPage: @Composable () -> Unit = {
|
|
|
|
navController.navigate("home")
|
|
|
|
LoginPage(service = service, onLoginSuccess = { auth ->
|
|
|
|
},
|
|
|
|
sessionState.value = DataSession(auth)
|
|
|
|
onNavigateToRegister = {
|
|
|
|
})
|
|
|
|
navController.navigate("register")
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
)
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
composable("register") {
|
|
|
|
|
|
|
|
RegisterPage(
|
|
|
|
|
|
|
|
service = service,
|
|
|
|
|
|
|
|
onRegisterSuccess = { auth ->
|
|
|
|
|
|
|
|
sessionState.value = DataSession(auth)
|
|
|
|
|
|
|
|
navController.navigate("home")
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
onNavigateToLogin = {
|
|
|
|
|
|
|
|
navController.navigate("login")
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
)
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
composable("home") {
|
|
|
|
|
|
|
|
HomePage(service = service, session = sessionState.value)
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
val homePage : @Composable () -> Unit = { HomePage(service, sessionState.value) }
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//registerPage()
|
|
|
|
|
|
|
|
val currentPage = remember(sessionState.value.auth) { if (sessionState.value.auth == null) loginPage else homePage }
|
|
|
|
|
|
|
|
currentPage()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|