twoFa -> validation naming; fixes for preview for screens (separating view model from ui); some improvements & fixes

This commit is contained in:
2024-07-13 22:45:49 +03:00
parent dfdc48b682
commit 733627f935
98 changed files with 1611 additions and 1637 deletions
+2
View File
@@ -57,4 +57,6 @@ dependencies {
implementation(libs.coil.compose)
implementation(libs.androidx.navigation.compose)
implementation(libs.kotlin.serialization)
debugImplementation(libs.androidx.ui.tooling)
}
@@ -7,7 +7,7 @@ import kotlinx.serialization.Serializable
@Serializable
@Parcelize
data class UserBannedArguments(
val name: String,
val userName: String,
val message: String,
val restoreUrl: String,
val accessToken: String
@@ -0,0 +1,14 @@
package com.meloda.app.fast.userbanned.model
data class UserBannedScreenState(
val userName: String,
val message: String
) {
companion object {
val EMPTY: UserBannedScreenState = UserBannedScreenState(
userName = "",
message = ""
)
}
}
@@ -8,7 +8,7 @@ import androidx.navigation.NavType
import androidx.navigation.compose.composable
import androidx.navigation.toRoute
import com.meloda.app.fast.userbanned.model.UserBannedArguments
import com.meloda.app.fast.userbanned.presentation.UserBannedScreen
import com.meloda.app.fast.userbanned.presentation.UserBannedRoute
import kotlinx.serialization.Serializable
import kotlinx.serialization.encodeToString
import kotlinx.serialization.json.Json
@@ -32,18 +32,16 @@ val UserBannedNavType = object : NavType<UserBannedArguments>(isNullableAllowed
override val name: String = "UserBannedArguments"
}
fun NavGraphBuilder.userBannedRoute(
onBack: () -> Unit
) {
fun NavGraphBuilder.userBannedRoute(onBack: () -> Unit) {
composable<UserBanned>(
typeMap = mapOf(typeOf<UserBannedArguments>() to UserBannedNavType)
) { backStackEntry ->
val arguments: UserBannedArguments = backStackEntry.toRoute()
UserBannedScreen(
UserBannedRoute(
onBack = onBack,
name = arguments.name,
message = arguments.message,
userName = arguments.userName,
message = arguments.message
)
}
}
@@ -14,6 +14,7 @@ import androidx.compose.material3.Scaffold
import androidx.compose.material3.Text
import androidx.compose.material3.TopAppBar
import androidx.compose.runtime.Composable
import androidx.compose.runtime.remember
import androidx.compose.ui.Modifier
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.text.SpanStyle
@@ -22,27 +23,44 @@ import androidx.compose.ui.text.font.FontWeight
import androidx.compose.ui.text.withStyle
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.dp
import com.meloda.app.fast.designsystem.AppTheme
import com.meloda.app.fast.userbanned.model.UserBannedScreenState
import com.meloda.app.fast.designsystem.R as UiR
@Preview
@Composable
fun UserBannedScreenPreview() {
AppTheme {
UserBannedScreen(
onBack = {},
name = "Calvin Harris",
message = "Eto konets"
UserBannedScreen(
screenState = UserBannedScreenState(
userName = "Andre Shultz",
message = "Bruteforce"
)
)
}
@Composable
fun UserBannedRoute(
onBack: () -> Unit,
userName: String,
message: String
) {
val screenState = remember(userName, message) {
UserBannedScreenState(
userName = userName,
message = message
)
}
UserBannedScreen(
screenState = screenState,
onBack = onBack
)
}
@OptIn(ExperimentalMaterial3Api::class)
@Composable
fun UserBannedScreen(
onBack: () -> Unit,
name: String,
message: String,
screenState: UserBannedScreenState = UserBannedScreenState.EMPTY,
onBack: () -> Unit = {},
) {
Scaffold(
topBar = {
@@ -80,7 +98,7 @@ fun UserBannedScreen(
append(": ")
}
append(name)
append(screenState.userName)
}
)
Text(
@@ -89,7 +107,7 @@ fun UserBannedScreen(
append(stringResource(id = UiR.string.blocking_reason_title))
append(": ")
}
append(message)
append(screenState.message)
}
)
}