From e61e3ec7e21f259fe9854ee0c901ca34e680eb7b Mon Sep 17 00:00:00 2001 From: Victor Kropp Date: Thu, 23 Jan 2025 11:45:15 +0100 Subject: [PATCH] implement Speakers screen fixes #242 --- .../composeResources/values/strings.xml | 1 + .../jetbrains/kotlinconf/screens/Speakers.kt | 49 +++++++++++++------ 2 files changed, 35 insertions(+), 15 deletions(-) diff --git a/shared/src/commonMain/composeResources/values/strings.xml b/shared/src/commonMain/composeResources/values/strings.xml index 0ac58a47..8351d572 100644 --- a/shared/src/commonMain/composeResources/values/strings.xml +++ b/shared/src/commonMain/composeResources/values/strings.xml @@ -88,4 +88,5 @@ We will process your data in accordance with the App Privacy Policy. You can adj KotlinConf 2024 Privacy Policy for Visitors Version 1.0 of May 1, 2024 + Speakers diff --git a/shared/src/commonMain/kotlin/org/jetbrains/kotlinconf/screens/Speakers.kt b/shared/src/commonMain/kotlin/org/jetbrains/kotlinconf/screens/Speakers.kt index 7f2cc03f..0d94b529 100644 --- a/shared/src/commonMain/kotlin/org/jetbrains/kotlinconf/screens/Speakers.kt +++ b/shared/src/commonMain/kotlin/org/jetbrains/kotlinconf/screens/Speakers.kt @@ -1,16 +1,25 @@ package org.jetbrains.kotlinconf.screens -import androidx.compose.foundation.Image import androidx.compose.foundation.clickable import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.rememberScrollState +import androidx.compose.foundation.shape.RoundedCornerShape +import androidx.compose.foundation.verticalScroll import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier +import androidx.compose.ui.draw.clip +import androidx.compose.ui.unit.dp import kotlinconfapp.shared.generated.resources.Res -import kotlinconfapp.shared.generated.resources.arrow_left_24 -import org.jetbrains.compose.resources.painterResource +import kotlinconfapp.shared.generated.resources.speakers_title +import org.jetbrains.compose.resources.stringResource import org.jetbrains.kotlinconf.SpeakerId import org.jetbrains.kotlinconf.Speakers -import org.jetbrains.kotlinconf.ui.components.StyledText +import org.jetbrains.kotlinconf.ui.components.Divider +import org.jetbrains.kotlinconf.ui.components.MainHeaderTitleBar +import org.jetbrains.kotlinconf.ui.theme.KotlinConfTheme @Composable fun Speakers( @@ -18,17 +27,27 @@ fun Speakers( onSpeaker: (SpeakerId) -> Unit, onBack: () -> Unit, ) { - Column { - Image( - painterResource(Res.drawable.arrow_left_24), - "back", - modifier = Modifier.clickable { onBack() }) - StyledText("Speakers") - for (speaker in speakers.all) { - StyledText( - speaker.name, - modifier = Modifier.clickable { onSpeaker(speaker.id) } - ) + Column(Modifier.fillMaxSize()) { + MainHeaderTitleBar(stringResource(Res.string.speakers_title)) + Divider(1.dp, KotlinConfTheme.colors.strokePale) + + Column( + Modifier + .verticalScroll(rememberScrollState()) + .fillMaxSize() + ) { + for (speaker in speakers.all) { + org.jetbrains.kotlinconf.ui.components.Speaker( + name = speaker.name, + title = speaker.position, + photoUrl = speaker.photoUrl, + modifier = Modifier + .fillMaxWidth() + .padding(12.dp) + .clip(RoundedCornerShape(8.dp)) + .clickable { onSpeaker(speaker.id) } + ) + } } } }