/* * Copyright 2022 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * https://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.cbnu.cats.ui.components import androidx.compose.foundation.background import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.padding import androidx.compose.foundation.shape.CircleShape import androidx.compose.material.icons.Icons import androidx.compose.material.icons.filled.StarBorder import androidx.compose.material3.Button import androidx.compose.material3.ButtonDefaults import androidx.compose.material3.Card import androidx.compose.material3.CardDefaults import androidx.compose.material3.ExperimentalMaterial3Api 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.Modifier import androidx.compose.ui.draw.clip import androidx.compose.ui.res.stringResource import androidx.compose.ui.unit.dp import com.cbnu.cats.R import com.cbnu.cats.data.Email @OptIn(ExperimentalMaterial3Api::class) @Composable fun ReplyEmailThreadItem( email: Email, modifier: Modifier = Modifier ) { Card( modifier = modifier.padding(horizontal = 16.dp, vertical = 4.dp), colors = CardDefaults.cardColors( containerColor = MaterialTheme.colorScheme.surfaceContainerHigh ) ) { Column( modifier = Modifier .fillMaxWidth() .padding(20.dp) ) { Row(modifier = Modifier.fillMaxWidth()) { ReplyProfileImage( drawableResource = email.sender.avatar, description = email.sender.fullName, ) Column( modifier = Modifier .weight(1f) .padding(horizontal = 12.dp, vertical = 4.dp), verticalArrangement = Arrangement.Center ) { Text( text = email.sender.firstName, style = MaterialTheme.typography.labelMedium ) Text( text = "20 mins ago", style = MaterialTheme.typography.labelMedium, color = MaterialTheme.colorScheme.outline ) } IconButton( onClick = { /*TODO*/ }, modifier = Modifier .clip(CircleShape) .background(MaterialTheme.colorScheme.surfaceContainer) ) { Icon( imageVector = Icons.Default.StarBorder, contentDescription = "Favorite", tint = MaterialTheme.colorScheme.outline ) } } Text( text = email.subject, style = MaterialTheme.typography.bodyMedium, color = MaterialTheme.colorScheme.outline, modifier = Modifier.padding(top = 12.dp, bottom = 8.dp), ) Text( text = email.body, style = MaterialTheme.typography.bodyLarge, color = MaterialTheme.colorScheme.onSurfaceVariant, ) Row( modifier = Modifier .fillMaxWidth() .padding(top = 20.dp, bottom = 8.dp), horizontalArrangement = Arrangement.spacedBy(12.dp), ) { Button( onClick = { /*TODO*/ }, modifier = Modifier.weight(1f), colors = ButtonDefaults.buttonColors( containerColor = MaterialTheme.colorScheme.surfaceBright ) ) { Text( text = stringResource(id = R.string.reply), color = MaterialTheme.colorScheme.onSurface ) } Button( onClick = { /*TODO*/ }, modifier = Modifier.weight(1f), colors = ButtonDefaults.buttonColors( containerColor = MaterialTheme.colorScheme.surfaceBright ) ) { Text( text = stringResource(id = R.string.reply_all), color = MaterialTheme.colorScheme.onSurface ) } } } } }