package com.suno.android.ui.bottom_sheets.song_actions import androidx.compose.foundation.layout.statusBarsPadding import androidx.compose.material3.ModalBottomSheet import androidx.compose.material3.rememberModalBottomSheetState import androidx.compose.runtime.Composable import androidx.compose.runtime.rememberCoroutineScope import androidx.compose.ui.Modifier import com.suno.android.common_data.mappers.clips.SongListData import com.suno.android.common_data.mappers.hooks.LocalHookData import com.suno.android.common_ui.theme.ExtendedTheme import kotlinx.coroutines.launch @Composable fun SongActionsBottomSheet( song: SongListData, canRemoveFromPlaylist: Boolean, isShowShareVideoGateEnabled: Boolean, songActionBottomSheetConsumerEvents: (SongActionBottomSheetConsumerEvent) -> Unit, hook: LocalHookData? = null, ) { val scope = rememberCoroutineScope() val songActionsSheetState = rememberModalBottomSheetState( skipPartiallyExpanded = true, // Allow partial expansion, ) ModalBottomSheet( onDismissRequest = { scope.launch { songActionsSheetState.hide() songActionBottomSheetConsumerEvents.invoke( SongActionBottomSheetConsumerEvent.DismissSongActionsContainerHost, ) } }, containerColor = ExtendedTheme.colors.backgroundPrimary, sheetState = songActionsSheetState, dragHandle = null, modifier = Modifier.statusBarsPadding(), ) { SongActionsTray( song = song, canRemoveFromPlaylist = canRemoveFromPlaylist, isShowShareVideoGateEnabled = isShowShareVideoGateEnabled, sheetState = songActionsSheetState, songActionBottomSheetConsumerEvents = songActionBottomSheetConsumerEvents, hook = hook, ) } }