80 lines
2.7 KiB
Kotlin
80 lines
2.7 KiB
Kotlin
// src/main/kotlin/ui/StockHeader.kt
|
|||
|
|
package ui
|
||
|
|
|
||
|
|
import androidx.compose.foundation.layout.*
|
||
|
|
import androidx.compose.material.*
|
||
|
|
import androidx.compose.runtime.Composable
|
||
|
|
import androidx.compose.ui.Alignment
|
||
|
|
import androidx.compose.ui.Modifier
|
||
|
|
import androidx.compose.ui.graphics.Color
|
||
|
|
import androidx.compose.ui.text.font.FontWeight
|
||
|
|
import androidx.compose.ui.text.style.TextAlign
|
||
|
|
import androidx.compose.ui.unit.dp
|
||
|
|
import androidx.compose.ui.unit.sp
|
||
|
|
|
||
|
|
@Composable
|
||
|
|
fun StockHeader(
|
||
|
|
name: String,
|
||
|
|
code: String,
|
||
|
|
isDomestic: Boolean,
|
||
|
|
resultMessage: String,
|
||
|
|
isSuccess: Boolean
|
||
|
|
) {
|
||
|
|
Column(modifier = Modifier.fillMaxWidth()) {
|
||
|
|
// [1] 알림 메시지 영역 (주문 성공/실패 시 상단에 표시)
|
||
|
|
if (resultMessage.isNotEmpty()) {
|
||
|
|
Surface(
|
||
|
|
color = if (isSuccess) Color(0xFF4CAF50) else Color(0xFFF44336), // 성공 초록, 실패 빨강
|
||
|
|
modifier = Modifier.fillMaxWidth().padding(bottom = 8.dp),
|
||
|
|
shape = androidx.compose.foundation.shape.RoundedCornerShape(4.dp)
|
||
|
|
) {
|
||
|
|
Text(
|
||
|
|
text = resultMessage,
|
||
|
|
color = Color.White,
|
||
|
|
modifier = Modifier.padding(8.dp),
|
||
|
|
textAlign = TextAlign.Center,
|
||
|
|
fontSize = 12.sp,
|
||
|
|
fontWeight = FontWeight.Bold
|
||
|
|
)
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
// [2] 종목명 및 국가 배지 영역
|
||
|
|
Row(
|
||
|
|
verticalAlignment = Alignment.CenterVertically,
|
||
|
|
modifier = Modifier.padding(vertical = 4.dp)
|
||
|
|
) {
|
||
|
|
// 국가 구분 배지
|
||
|
|
Surface(
|
||
|
|
color = if (isDomestic) Color(0xFFE03E2D) else Color(0xFF0E62CF), // 국내 빨강, 해외 파랑
|
||
|
|
shape = androidx.compose.foundation.shape.RoundedCornerShape(4.dp)
|
||
|
|
) {
|
||
|
|
Text(
|
||
|
|
text = if (isDomestic) "국내" else "해외",
|
||
|
|
color = Color.White,
|
||
|
|
fontSize = 10.sp,
|
||
|
|
fontWeight = FontWeight.Bold,
|
||
|
|
modifier = Modifier.padding(horizontal = 6.dp, vertical = 2.dp)
|
||
|
|
)
|
||
|
|
}
|
||
|
|
|
||
|
|
Spacer(modifier = Modifier.width(8.dp))
|
||
|
|
|
||
|
|
// 종목 이름
|
||
|
|
Text(
|
||
|
|
text = name,
|
||
|
|
style = MaterialTheme.typography.h5,
|
||
|
|
fontWeight = FontWeight.Bold
|
||
|
|
)
|
||
|
|
|
||
|
|
Spacer(modifier = Modifier.width(6.dp))
|
||
|
|
|
||
|
|
// 종목 코드
|
||
|
|
Text(
|
||
|
|
text = "($code)",
|
||
|
|
style = MaterialTheme.typography.body1,
|
||
|
|
color = Color.Gray
|
||
|
|
)
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|