package com.socialapp.presentation.ui.screens import androidx.compose.foundation.background import androidx.compose.foundation.clickable import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.Spacer import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.size import androidx.compose.foundation.layout.width import androidx.compose.foundation.lazy.LazyColumn import androidx.compose.foundation.shape.CircleShape import androidx.compose.foundation.shape.RoundedCornerShape import androidx.compose.material.icons.Icons import androidx.compose.material.icons.filled.Edit import androidx.compose.material3.Divider import androidx.compose.material3.Icon import androidx.compose.material3.IconButton import androidx.compose.material3.MaterialTheme import androidx.compose.material3.Text 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.text.font.FontWeight import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp import com.socialapp.presentation.ui.theme.AccentMagenta @Composable fun SettingsScreen( onBackClick: () -> Unit = {}, onEditProfileClick: () -> Unit = {}, onLogoutClick: () -> Unit = {} ) { Column( modifier = Modifier .fillMaxSize() .background(MaterialTheme.colorScheme.background) ) { // Header Row( modifier = Modifier .fillMaxWidth() .padding(16.dp), verticalAlignment = Alignment.CenterVertically ) { IconButton(onClick = onBackClick, modifier = Modifier.size(36.dp)) { Icon( imageVector = Icons.Default.Edit, contentDescription = "Back", tint = MaterialTheme.colorScheme.onBackground, modifier = Modifier.size(20.dp) ) } Spacer(modifier = Modifier.width(12.dp)) Text( text = "Settings", fontSize = 20.sp, fontWeight = FontWeight.Bold ) } LazyColumn( modifier = Modifier .fillMaxSize() .padding(horizontal = 12.dp) ) { // Profile & Account Section item { SectionHeader("Profile & Account") } item { SettingCard( title = "Rohim", subtitle = "Personal account", hasChevron = true ) } item { SettingCardWithIcon( icon = "✎", title = "Edit Profile", onClick = onEditProfileClick, hasChevron = true ) } item { SettingCardWithIcon( icon = "@", title = "Username", subtitle = "@rohim.916", hasEditIcon = true ) } item { Spacer(modifier = Modifier.height(8.dp)) SectionHeader("Verification") } item { SettingCardWithIcon( icon = "✓", title = "Account Verification", hasChevron = true ) } item { Spacer(modifier = Modifier.height(8.dp)) SectionHeader("Activity") } item { SettingCardWithIcon( icon = "👁", title = "View Profile", hasChevron = true ) } item { Spacer(modifier = Modifier.height(8.dp)) SectionHeader("Creator") } item { SettingCardWithIcon( icon = "📊", title = "Professional Dashboard", subtitle = "Insights, content analytics & monetization", hasChevron = true ) } item { SettingCardWithIcon( icon = "💰", title = "Social Balance", subtitle = "Recharge, earnings, withdrawals and payment history", hasChevron = true ) } item { Spacer(modifier = Modifier.height(24.dp)) } } } } @Composable private fun SectionHeader(title: String) { Text( text = title, fontSize = 14.sp, color = MaterialTheme.colorScheme.onSurface.copy(alpha = 0.5f), fontWeight = FontWeight.SemiBold, modifier = Modifier.padding(vertical = 12.dp, horizontal = 12.dp) ) } @Composable private fun SettingCard( title: String, subtitle: String? = null, hasChevron: Boolean = false ) { Column( modifier = Modifier .fillMaxWidth() .clip(RoundedCornerShape(16.dp)) .background(MaterialTheme.colorScheme.surface) .clickable { } .padding(16.dp) ) { Row( modifier = Modifier.fillMaxWidth(), verticalAlignment = Alignment.CenterVertically ) { Column(modifier = Modifier.weight(1f)) { Text( text = title, fontSize = 16.sp, fontWeight = FontWeight.SemiBold ) if (subtitle != null) { Spacer(modifier = Modifier.height(4.dp)) Text( text = subtitle, fontSize = 13.sp, color = MaterialTheme.colorScheme.onSurface.copy(alpha = 0.6f) ) } } if (hasChevron) { Icon( imageVector = Icons.Default.Edit, contentDescription = null, modifier = Modifier.size(20.dp), tint = MaterialTheme.colorScheme.onSurface.copy(alpha = 0.4f) ) } } } Spacer(modifier = Modifier.height(12.dp)) } @Composable private fun SettingCardWithIcon( icon: String, title: String, subtitle: String? = null, hasChevron: Boolean = false, hasEditIcon: Boolean = false, onClick: () -> Unit = {} ) { Column( modifier = Modifier .fillMaxWidth() .clip(RoundedCornerShape(16.dp)) .background(MaterialTheme.colorScheme.surface) .clickable { onClick() } .padding(12.dp) ) { Row( modifier = Modifier .fillMaxWidth(), verticalAlignment = Alignment.CenterVertically ) { // Icon Box( modifier = Modifier .size(40.dp) .clip(CircleShape) .background(AccentMagenta.copy(alpha = 0.1f)), contentAlignment = Alignment.Center ) { Text(text = icon, fontSize = 20.sp) } Spacer(modifier = Modifier.width(12.dp)) // Title and Subtitle Column(modifier = Modifier.weight(1f)) { Text( text = title, fontSize = 16.sp, fontWeight = FontWeight.SemiBold ) if (subtitle != null) { Spacer(modifier = Modifier.height(4.dp)) Text( text = subtitle, fontSize = 13.sp, color = MaterialTheme.colorScheme.onSurface.copy(alpha = 0.6f) ) } } // Right Icon if (hasChevron) { Icon( imageVector = Icons.Default.Edit, contentDescription = null, modifier = Modifier.size(20.dp), tint = MaterialTheme.colorScheme.onSurface.copy(alpha = 0.4f) ) } if (hasEditIcon) { Icon( imageVector = Icons.Default.Edit, contentDescription = null, modifier = Modifier.size(18.dp), tint = AccentMagenta ) } } } Spacer(modifier = Modifier.height(12.dp)) }