add enabled parameter to BasePromptSettingsScreen, ModelSelector, and InspiringSearchField to support disabled states

This commit is contained in:
jonasgaudian
2026-02-13 17:03:10 +01:00
parent f6fb6e77a8
commit 4a014e6206
3 changed files with 15 additions and 6 deletions

View File

@@ -136,7 +136,8 @@ fun InspiringSearchField(
hints : Array<String>, hints : Array<String>,
onValueChange: (String) -> Unit, onValueChange: (String) -> Unit,
minLines: Int = 1, minLines: Int = 1,
maxLines: Int = 1 maxLines: Int = 1,
enabled: Boolean = true
) { ) {
var currentHintIndex by remember { mutableIntStateOf(0) } var currentHintIndex by remember { mutableIntStateOf(0) }
@@ -175,7 +176,8 @@ fun InspiringSearchField(
}, },
singleLine = true, singleLine = true,
minLines = minLines, minLines = minLines,
maxLines = maxLines maxLines = maxLines,
enabled = enabled
) )
} }

View File

@@ -59,7 +59,8 @@ fun BasePromptSettingsScreen(
onPromptChanged: (String) -> Unit, onPromptChanged: (String) -> Unit,
onSaveClicked: () -> Unit, onSaveClicked: () -> Unit,
onModelSelected: (LanguageModel?) -> Unit, onModelSelected: (LanguageModel?) -> Unit,
hints: Array<String> hints: Array<String>,
enabled: Boolean = true
) { ) {
AppCard { AppCard {
Column( Column(
@@ -70,7 +71,8 @@ fun BasePromptSettingsScreen(
Text( Text(
text = description, text = description,
style = MaterialTheme.typography.bodyLarge, style = MaterialTheme.typography.bodyLarge,
modifier = Modifier.padding(vertical = 16.dp) modifier = Modifier.padding(vertical = 16.dp),
color = if (!enabled) MaterialTheme.colorScheme.onSurface.copy(alpha = 0.6f) else MaterialTheme.colorScheme.onSurface
) )
@@ -82,6 +84,7 @@ fun BasePromptSettingsScreen(
minLines = 3, minLines = 3,
maxLines = 5, maxLines = 5,
hints = hints, hints = hints,
enabled = enabled
) )
Row( Row(
@@ -98,12 +101,13 @@ fun BasePromptSettingsScreen(
providers = providers, // Pass providers down providers = providers, // Pass providers down
selectedModel = state.selectedModel, selectedModel = state.selectedModel,
onModelSelected = onModelSelected, onModelSelected = onModelSelected,
enabled = enabled
) )
} }
Spacer(modifier = Modifier.width(16.dp)) Spacer(modifier = Modifier.width(16.dp))
AppButton(onClick = onSaveClicked) { AppButton(onClick = onSaveClicked, enabled = enabled) {
Text(stringResource(id = R.string.label_save)) Text(stringResource(id = R.string.label_save))
} }
} }
@@ -119,7 +123,8 @@ fun ApiModelDropDown(
models: List<LanguageModel>, models: List<LanguageModel>,
providers: List<ApiProvider>, providers: List<ApiProvider>,
selectedModel: LanguageModel?, selectedModel: LanguageModel?,
onModelSelected: (LanguageModel?) -> Unit onModelSelected: (LanguageModel?) -> Unit,
enabled: Boolean = true
) { ) {
LocalContext.current LocalContext.current
var expanded by remember { mutableStateOf(false) } var expanded by remember { mutableStateOf(false) }
@@ -149,6 +154,7 @@ fun ApiModelDropDown(
onClick = { expanded = true }, onClick = { expanded = true },
modifier = Modifier.align(Alignment.Center), modifier = Modifier.align(Alignment.Center),
contentPadding = PaddingValues(horizontal = 12.dp, vertical = 8.dp), contentPadding = PaddingValues(horizontal = 12.dp, vertical = 8.dp),
enabled = enabled
) { ) {
Row( Row(
verticalAlignment = Alignment.CenterVertically, verticalAlignment = Alignment.CenterVertically,

View File

@@ -109,6 +109,7 @@ fun TranslationSettingsScreen(
onSaveClicked = { settingsViewModel.saveCustomPrompt(tempPrompt) }, onSaveClicked = { settingsViewModel.saveCustomPrompt(tempPrompt) },
onModelSelected = { apiViewModel.setTranslationModel(it) }, onModelSelected = { apiViewModel.setTranslationModel(it) },
hints = context.resources.getStringArray(R.array.example_prompts), hints = context.resources.getStringArray(R.array.example_prompts),
//enabled = !useLibre
) )
} }
} }