package com.ustadmobile.libuicompose.components import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.material3.DropdownMenuItem import androidx.compose.material3.ExperimentalMaterial3Api import androidx.compose.material3.ExposedDropdownMenuBox import androidx.compose.material3.ExposedDropdownMenuDefaults import androidx.compose.material3.OutlinedTextField import androidx.compose.material3.Text 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 com.ustadmobile.core.MR import com.ustadmobile.core.impl.UstadMobileSystemCommon import dev.icerock.moko.resources.compose.stringResource @OptIn(ExperimentalMaterial3Api::class) @Composable fun UstadSetLanguageDropDown( langList: List, currentLanguage: UstadMobileSystemCommon.UiLanguage, onItemSelected: (UstadMobileSystemCommon.UiLanguage) -> Unit, modifier: Modifier = Modifier, ) { var expanded by remember { mutableStateOf(false) } ExposedDropdownMenuBox( expanded = expanded, onExpandedChange = { expanded = !expanded }, modifier = modifier, ) { OutlinedTextField( modifier = Modifier.menuAnchor().fillMaxWidth(), readOnly = true, value = currentLanguage.langDisplay, onValueChange = { }, label = { stringResource(MR.strings.language) }, trailingIcon = { ExposedDropdownMenuDefaults.TrailingIcon(expanded = expanded) }, ) ExposedDropdownMenu( modifier = Modifier.fillMaxWidth(), expanded = expanded, onDismissRequest = { expanded = false } ) { langList.forEach { uiLanguage -> DropdownMenuItem( modifier = Modifier.fillMaxWidth(), onClick = { expanded = false onItemSelected(uiLanguage) }, text = { Text(text = uiLanguage.langDisplay) } ) } } } }