package com.suno.android.ui.screens.create import androidx.compose.foundation.background import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.pager.HorizontalPager import androidx.compose.foundation.pager.rememberPagerState import androidx.compose.runtime.Composable import androidx.compose.runtime.LaunchedEffect import androidx.compose.runtime.snapshotFlow import androidx.compose.ui.Modifier import androidx.hilt.navigation.compose.hiltViewModel import com.suno.android.common_ui.theme.ExtendedTheme import com.suno.android.ui.screens.create.CreateModeSelectionScreenVM.CreateMode import com.suno.android.ui.screens.create.text.CreateTextScreen @Composable fun CreateModeSelectionScreen( vm: CreateModeSelectionScreenVM, starterPrompt: String?, onCreateMode: () -> Unit, onUpsellRedirect: () -> Unit, ) { val pagerState = rememberPagerState( initialPage = 0, pageCount = { 1 }, ) LaunchedEffect(pagerState) { snapshotFlow { pagerState.currentPage }.collect { page -> when (page) { 0 -> vm.setCreateMode(CreateMode.TEXT) 1 -> vm.setCreateMode(CreateMode.CAMERA) 2 -> vm.setCreateMode(CreateMode.AUDIO) } } } Column( Modifier.background( ExtendedTheme.colors.backgroundPrimary, ), ) { HorizontalPager( modifier = Modifier .fillMaxWidth() .weight(1f), state = pagerState, beyondViewportPageCount = 2, ) { currentPageIndex -> when (currentPageIndex) { 0 -> { CreateTextScreen( vm = hiltViewModel(), onGenerationResponse = { onCreateMode.invoke() }, onUpsellClicked = { onUpsellRedirect.invoke() }, starterPrompt = starterPrompt, ) } } } } }