package com.suno.android.ui.screens.hooks.overlay.capsule import androidx.compose.foundation.clickable import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.padding import androidx.compose.foundation.shape.RoundedCornerShape import androidx.compose.runtime.Composable import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.draw.clip import androidx.compose.ui.res.stringResource import androidx.compose.ui.unit.dp import com.suno.android.common_data.mappers.clips.LocalClipData import com.suno.android.ui.screens.hooks.overlay.capsule.art.SpinningImage import com.suno.android.common_res.R as CommonResR @Composable fun SongCapsule( clip: LocalClipData, isPlaying: Boolean, isClipSaved: Boolean, onAddClipToPlaylistClick: () -> Unit, onSongCapsuleClick: () -> Unit, modifier: Modifier = Modifier, ) { Box( modifier = modifier .clip(RoundedCornerShape(40.dp)) .clickable { onSongCapsuleClick() }, ) { CapsuleBackground( imageUrl = clip.albumImageUrl, modifier = Modifier.matchParentSize(), ) Row( modifier = Modifier.padding(8.dp), horizontalArrangement = Arrangement.spacedBy(8.dp), verticalAlignment = Alignment.CenterVertically, ) { SpinningImage( imageUrl = clip.albumImageUrl, isPlaying = isPlaying, ) SongInfo( title = clip.nowPlayingTitle?.takeIf(String::isNotBlank) ?: stringResource(CommonResR.string.untitled), artist = clip.artistName?.takeIf(String::isNotBlank) ?: "", playCount = clip.playCount?.takeIf { it >= 0 } ?: 0, modifier = Modifier.weight(1f), ) AddClipToPlaylistButton( onClick = onAddClipToPlaylistClick, isClipSaved = isClipSaved, ) } } }