Add icons to locations drawer

This commit is contained in:
Henry Hiles 2023-12-25 11:44:44 -05:00
parent f5738f73de
commit 841447cdc9

View file

@ -7,16 +7,18 @@ import androidx.compose.foundation.layout.padding
import androidx.compose.material.icons.Icons import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.filled.Add import androidx.compose.material.icons.filled.Add
import androidx.compose.material.icons.filled.Delete import androidx.compose.material.icons.filled.Delete
import androidx.compose.material.icons.filled.LocationOn
import androidx.compose.material3.* import androidx.compose.material3.*
import androidx.compose.runtime.Composable import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier import androidx.compose.ui.Modifier
import androidx.compose.ui.res.stringResource import androidx.compose.ui.res.stringResource
import androidx.compose.ui.text.style.TextOverflow
import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.dp
import cafe.adriel.voyager.navigator.LocalNavigator import cafe.adriel.voyager.navigator.LocalNavigator
import com.henryhiles.qweather.R import com.henryhiles.qweather.R
import com.henryhiles.qweather.presentation.screen.LocationPickerScreen import com.henryhiles.qweather.presentation.screen.LocationPickerScreen
import com.henryhiles.qweather.presentation.screenmodel.LocationPreferenceManager import com.henryhiles.qweather.presentation.screenmodel.LocationPreferenceManager
import org.koin.androidx.compose.get import org.koin.compose.koinInject
@Composable @Composable
fun LocationsDrawer( fun LocationsDrawer(
@ -24,7 +26,7 @@ fun LocationsDrawer(
onClose: () -> Unit, onClose: () -> Unit,
children: @Composable () -> Unit children: @Composable () -> Unit
) { ) {
val locationPreferenceManager: LocationPreferenceManager = get() val locationPreferenceManager: LocationPreferenceManager = koinInject()
val navigator = LocalNavigator.current?.parent val navigator = LocalNavigator.current?.parent
ModalNavigationDrawer( ModalNavigationDrawer(
@ -42,7 +44,15 @@ fun LocationsDrawer(
locations.forEachIndexed { index, data -> locations.forEachIndexed { index, data ->
val selected = index == locationPreferenceManager.selectedIndex val selected = index == locationPreferenceManager.selectedIndex
NavigationDrawerItem( NavigationDrawerItem(
label = { Text(text = data.location) }, label = { Text(text = data.location, overflow = TextOverflow.Ellipsis, maxLines = 1) },
icon = {
Icon(
imageVector = Icons.Default.LocationOn,
contentDescription = stringResource(
id = R.string.location
)
)
},
selected = selected, selected = selected,
onClick = { onClick = {
onClose() onClose()