simple navigation with Voyager

This commit is contained in:
2024-08-05 02:11:03 +03:00
parent bf6b55aab9
commit 471af18f5e
15 changed files with 190 additions and 90 deletions
@@ -1,78 +1,19 @@
package dev.meloda.overseerr
import androidx.compose.foundation.layout.*
import androidx.compose.material3.*
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.material3.Surface
import androidx.compose.runtime.Composable
import androidx.compose.runtime.getValue
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.saveable.rememberSaveable
import androidx.compose.runtime.setValue
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.unit.dp
import dev.meloda.overseerr.model.Platform
import cafe.adriel.voyager.navigator.Navigator
import dev.meloda.overseerr.screens.url.presentation.UrlScreen
import dev.meloda.overseerr.theme.AppTheme
import org.koin.compose.KoinContext
import org.koin.compose.koinInject
@OptIn(ExperimentalMaterial3Api::class)
@Composable
internal fun App() = KoinContext {
val platform: Platform = koinInject()
AppTheme {
var loginValue by rememberSaveable {
mutableStateOf("")
}
var passwordValue by rememberSaveable {
mutableStateOf("")
}
Scaffold(
topBar = {
TopAppBar(
title = {
Text(text = "Log in")
}
)
Text(
text = "Current platform: ${platform.name}",
style = MaterialTheme.typography.displayLarge
)
}
) { padding ->
Column(
modifier = Modifier.fillMaxSize()
.padding(padding),
horizontalAlignment = Alignment.CenterHorizontally
) {
TextField(
modifier = Modifier.fillMaxWidth(0.9f),
value = loginValue,
onValueChange = { newText -> loginValue = newText },
placeholder = { Text(text = "Login") }
)
Spacer(modifier = Modifier.height(16.dp))
TextField(
modifier = Modifier.fillMaxWidth(0.9f),
value = passwordValue,
onValueChange = { newText -> passwordValue = newText },
placeholder = { Text(text = "Password") }
)
Spacer(modifier = Modifier.height(16.dp))
Button(
onClick = {
}
) {
Text(text = "Authorize")
}
}
Surface(modifier = Modifier.fillMaxSize()) {
Navigator(UrlScreen())
}
}
}