diff --git a/shared-ui/src/commonMain/kotlin/co.touchlab.droidcon/ui/FirstRunConferenceSelector.kt b/shared-ui/src/commonMain/kotlin/co.touchlab.droidcon/ui/FirstRunConferenceSelector.kt index f27fb7b1..f219b32b 100644 --- a/shared-ui/src/commonMain/kotlin/co.touchlab.droidcon/ui/FirstRunConferenceSelector.kt +++ b/shared-ui/src/commonMain/kotlin/co.touchlab.droidcon/ui/FirstRunConferenceSelector.kt @@ -1,6 +1,5 @@ package co.touchlab.droidcon.ui -import androidx.compose.foundation.background import androidx.compose.foundation.clickable import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Row @@ -11,6 +10,7 @@ import androidx.compose.foundation.lazy.items import androidx.compose.foundation.shape.RoundedCornerShape import androidx.compose.material3.MaterialTheme import androidx.compose.material3.RadioButton +import androidx.compose.material3.Surface import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.ui.Alignment @@ -27,56 +27,56 @@ fun FirstRunConferenceSelector( selectedConference: Conference? = null, ) { Dialog(onDismissRequest = onDismiss) { - Column( - modifier = Modifier - .fillMaxWidth() - .background( - color = MaterialTheme.colorScheme.surface, - shape = RoundedCornerShape(16.dp), - ) - .padding(16.dp), + Surface( + shape = RoundedCornerShape(16.dp), ) { - Text( - text = "Welcome to Droidcon!", - style = MaterialTheme.typography.headlineSmall, - modifier = Modifier.padding(bottom = 16.dp), - ) + Column( + modifier = Modifier + .fillMaxWidth() + .padding(16.dp), + ) { + Text( + text = "Welcome to Droidcon!", + style = MaterialTheme.typography.headlineSmall, + modifier = Modifier.padding(bottom = 16.dp), + ) - Text( - text = "Please select a conference to get started:", - style = MaterialTheme.typography.bodyMedium, - modifier = Modifier.padding(bottom = 16.dp), - ) + Text( + text = "Please select a conference to get started:", + style = MaterialTheme.typography.bodyMedium, + modifier = Modifier.padding(bottom = 16.dp), + ) - LazyColumn { - items(conferences) { conference -> - val isSelected = conference.id == selectedConference?.id - Row( - modifier = Modifier - .fillMaxWidth() - .clickable { - // Explicitly call selection function - onConferenceSelected(conference) - } - .padding(vertical = 8.dp), - verticalAlignment = Alignment.CenterVertically, - ) { - RadioButton( - selected = isSelected, - onClick = { - // Handle radio button click separately - onConferenceSelected(conference) - }, - ) - Text( - text = if (isSelected) { - "${conference.name} (Selected)" - } else { - conference.name - }, - style = MaterialTheme.typography.bodyLarge, - modifier = Modifier.padding(start = 8.dp), - ) + LazyColumn { + items(conferences) { conference -> + val isSelected = conference.id == selectedConference?.id + Row( + modifier = Modifier + .fillMaxWidth() + .clickable { + // Explicitly call selection function + onConferenceSelected(conference) + } + .padding(vertical = 8.dp), + verticalAlignment = Alignment.CenterVertically, + ) { + RadioButton( + selected = isSelected, + onClick = { + // Handle radio button click separately + onConferenceSelected(conference) + }, + ) + Text( + text = if (isSelected) { + "${conference.name} (Selected)" + } else { + conference.name + }, + style = MaterialTheme.typography.bodyLarge, + modifier = Modifier.padding(start = 8.dp), + ) + } } } } diff --git a/shared-ui/src/commonMain/kotlin/co.touchlab.droidcon/ui/MainComposeView.kt b/shared-ui/src/commonMain/kotlin/co.touchlab.droidcon/ui/MainComposeView.kt index 49231a06..d8dae372 100644 --- a/shared-ui/src/commonMain/kotlin/co.touchlab.droidcon/ui/MainComposeView.kt +++ b/shared-ui/src/commonMain/kotlin/co.touchlab.droidcon/ui/MainComposeView.kt @@ -86,7 +86,9 @@ private fun MainAppBody(waitForLoadedContextModel: WaitForLoadedContextModel, se } if (conferences.size == 1) { - onConferenceSelected(conferences.get(0)) + LaunchedEffect(conferences) { + onConferenceSelected(conferences.first()) + } } else if (conferences.size > 1) { FirstRunConferenceSelector( conferences = conferences,