fun PartnersScreen()

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) }
                    )
                }
            }
        }
    }
}