package com.craigvg.lichun_android.ui.screens.home.components import androidx.compose.foundation.background import androidx.compose.foundation.layout.* import androidx.compose.foundation.shape.CircleShape import androidx.compose.foundation.shape.RoundedCornerShape import androidx.compose.material.icons.Icons import androidx.compose.material.icons.filled.Email import androidx.compose.material.icons.filled.People import androidx.compose.material.icons.filled.Settings import androidx.compose.material3.* 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.craigvg.lichun_android.R import com.craigvg.lichun_android.ui.theme.AppColors import com.craigvg.lichun_android.ui.theme.AppSpacing import com.craigvg.lichun_android.ui.theme.AppTypography /** * Date, season, time display header card * Ported from iOS StatusHeaderCard.swift */ @Composable fun StatusHeaderCard( date: String, time: String, season: String, seasonEmoji: String, name: String, isConnected: Boolean, onCharacters: () -> Unit = {}, onMessages: () -> Unit = {}, onSettings: () -> Unit = {} ) { Card( modifier = Modifier.fillMaxWidth(), shape = RoundedCornerShape(AppSpacing.cornerRadius), colors = CardDefaults.cardColors(containerColor = AppColors.surfaceElevated) ) { Row( modifier = Modifier .fillMaxWidth() .padding(AppSpacing.md), horizontalArrangement = Arrangement.SpaceBetween, verticalAlignment = Alignment.CenterVertically ) { Column { Text( text = name.ifEmpty { stringResource(R.string.create_your_character) }, style = AppTypography.headline, color = AppColors.primaryText ) Spacer(modifier = Modifier.height(4.dp)) Row(verticalAlignment = Alignment.CenterVertically) { Text( text = "$seasonEmoji $season", style = AppTypography.caption, color = AppColors.secondaryText ) Text( text = " • $date • $time", style = AppTypography.caption, color = AppColors.secondaryText ) } } Row( verticalAlignment = Alignment.CenterVertically, horizontalArrangement = Arrangement.spacedBy(8.dp) ) { Box( modifier = Modifier .size(12.dp) .clip(CircleShape) .background(if (isConnected) AppColors.success else AppColors.error) ) IconButton( onClick = onCharacters, modifier = Modifier.size(32.dp) ) { Icon( imageVector = Icons.Default.People, contentDescription = "Characters", tint = AppColors.secondaryText, modifier = Modifier.size(22.dp) ) } IconButton( onClick = onMessages, modifier = Modifier.size(32.dp) ) { Icon( imageVector = Icons.Default.Email, contentDescription = "Messages", tint = AppColors.secondaryText, modifier = Modifier.size(22.dp) ) } IconButton( onClick = onSettings, modifier = Modifier.size(32.dp) ) { Icon( imageVector = Icons.Default.Settings, contentDescription = stringResource(R.string.settings), tint = AppColors.secondaryText, modifier = Modifier.size(22.dp) ) } } } } }