Files
super-app/app/src/main/java/com/naviapp/configuration/composable/NaviConfigurationScreen.kt
2023-07-11 23:33:55 +05:30

99 lines
3.3 KiB
Kotlin

/*
*
* * Copyright © 2023 by Navi Technologies Limited
* * All rights reserved. Strictly confidential
*
*/
package com.naviapp.configuration.composable
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.Spacer
import androidx.compose.foundation.layout.height
import androidx.compose.foundation.rememberScrollState
import androidx.compose.foundation.verticalScroll
import androidx.compose.runtime.Composable
import androidx.compose.runtime.getValue
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember
import androidx.compose.runtime.setValue
import androidx.compose.ui.Modifier
import androidx.compose.ui.text.input.KeyboardType
import androidx.compose.ui.text.input.TextFieldValue
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.dp
import com.navi.base.utils.EMPTY
@Composable
fun NaviConfigurationScreen(
onDevClick: () -> Unit,
isDevEnabled: Boolean,
onQaClick: () -> Unit,
isQaEnabled: Boolean,
onVersionCodeChange: (versionCode: String) -> Unit,
onBaseUrlChanged: (baseUrl: String) -> Unit,
onBackButtonClick: () -> Unit,
) {
var versionCode by remember { mutableStateOf(TextFieldValue(EMPTY)) }
var baseUrl by remember { mutableStateOf(TextFieldValue(EMPTY)) }
Column {
NaviTopNavigationBar(onBackButtonClick = onBackButtonClick)
Column(modifier = Modifier.verticalScroll(state = rememberScrollState())) {
NaviHeaderView(
titleText = "Navi Configuration",
subtitleText = "Change Environment, Version Code, & Base URL on the fly",
)
Spacer(modifier = Modifier.height(6.dp))
NaviToggleButtonsWithTitle(
titleText = "Environment",
firstButtonTitleText = "DEV",
onFirstButtonClick = onDevClick,
isFirstButtonSelected = isDevEnabled,
secondButtonTitleText = "QA",
onSecondButtonClick = onQaClick,
isSecondButtonSelected = isQaEnabled,
)
NaviTextFieldWithTitleAndButton(
titleText = "Version Code",
placeholderText = "Enter version code here",
keyboardType = KeyboardType.Number,
inputText = versionCode,
onTextValueChanged = { versionCode = it },
buttonText = "Update",
onButtonClick = { onVersionCodeChange(versionCode.text) },
)
NaviTextFieldWithTitleAndButton(
titleText = "Base URL",
placeholderText = "Enter base url here",
keyboardType = KeyboardType.Uri,
inputText = baseUrl,
onTextValueChanged = { baseUrl = it },
buttonText = "Update",
onButtonClick = { onBaseUrlChanged(baseUrl.text) },
)
Spacer(modifier = Modifier.height(12.dp))
}
}
}
@Preview(showSystemUi = true, showBackground = true)
@Composable
private fun NaviConfigurationScreenPreview() {
NaviConfigurationScreen(
onDevClick = {},
isDevEnabled = true,
onQaClick = {},
isQaEnabled = false,
onVersionCodeChange = {},
onBaseUrlChanged = {},
onBackButtonClick = {}
)
}