in shared/src/commonMain/kotlin/org/jetbrains/kotlinconf/screens/PartnersScreen.kt [37:85]
fun PartnersScreen(
onBack: () -> Unit,
onPartnerDetail: (partnerId: PartnerId) -> Unit,
) {
Column(
Modifier.fillMaxSize()
.background(color = KotlinConfTheme.colors.mainBackground)
.padding(topInsetPadding())
) {
MainHeaderTitleBar(
title = stringResource(Res.string.partners_title),
startContent = {
TopMenuButton(
icon = UiRes.drawable.arrow_left_24,
contentDescription = stringResource(UiRes.string.main_header_back),
onClick = onBack,
)
}
)
Divider(thickness = 1.dp, color = KotlinConfTheme.colors.strokePale)
val lazyListState = rememberLazyListState()
ScrollToTopHandler(lazyListState)
LazyColumn(
verticalArrangement = Arrangement.spacedBy(16.dp),
modifier = Modifier.fillMaxSize().padding(horizontal = 12.dp),
contentPadding = PaddingValues(vertical = 12.dp) + bottomInsetPadding(),
state = lazyListState,
) {
for ((level, partners) in PARTNERS) {
stickyHeader {
Text(
text = stringResource(level),
style = KotlinConfTheme.typography.h1,
modifier = Modifier.fillMaxWidth().background(KotlinConfTheme.colors.mainBackground).padding(vertical = 12.dp)
)
}
items(partners) { partner ->
PartnerCard(
name = partner.name,
logo = partner.icon,
onClick = { onPartnerDetail(partner.id) }
)
}
}
}
}
}