diff --git a/app/src/main/java/com/example/login_v3/home/Message/UI/Detail/Message_Component/Attachment_Bar.kt b/app/src/main/java/com/example/login_v3/home/Message/UI/Detail/Message_Component/Attachment_Bar.kt new file mode 100644 index 0000000..2ae3b3f --- /dev/null +++ b/app/src/main/java/com/example/login_v3/home/Message/UI/Detail/Message_Component/Attachment_Bar.kt @@ -0,0 +1,77 @@ +package com.example.login_v3.home.Message.UI.Detail.Message_Component + +import androidx.compose.foundation.background +import androidx.compose.foundation.border +import androidx.compose.foundation.layout.Arrangement +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.fillMaxWidth +import androidx.compose.foundation.layout.navigationBarsPadding +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.shape.RoundedCornerShape +import androidx.compose.material.icons.Icons +import androidx.compose.material.icons.filled.Close +import androidx.compose.material.icons.filled.Image +import androidx.compose.material3.Icon +import androidx.compose.material3.IconButton +import androidx.compose.material3.MaterialTheme +import androidx.compose.runtime.Composable +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.draw.blur +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.unit.dp + +@Composable +fun MessageAttachmentBar( + onImageClick: () -> Unit, + onCancel: () -> Unit +) { + Box( + modifier = Modifier + .fillMaxWidth() + .navigationBarsPadding() + .padding(horizontal = 16.dp, vertical = 8.dp) + ) { + // 毛玻璃背景與邊框 (與 InputBar 一致) + Box(modifier = Modifier.matchParentSize().blur(10.dp)) + Box( + modifier = Modifier + .matchParentSize() + .background(MaterialTheme.colorScheme.primary, RoundedCornerShape(16.dp)) + .border(1.dp, Color.White.copy(alpha = 0.3f), RoundedCornerShape(16.dp)) + ) + + Row( + modifier = Modifier + .fillMaxWidth() + .padding(horizontal = 16.dp, vertical = 12.dp), + verticalAlignment = Alignment.CenterVertically, + horizontalArrangement = Arrangement.spacedBy(24.dp) + ) { + // 圖片選擇按鈕 + IconButton(onClick = onImageClick) { + Column(horizontalAlignment = Alignment.CenterHorizontally) { + Icon( + imageVector = Icons.Default.Image, // 記得引入對應的 Icon + contentDescription = "選擇圖片", + tint = Color.White + ) + } + } + + Spacer(modifier = Modifier.weight(1f)) + + // 關閉/返回輸入框按鈕 + IconButton(onClick = onCancel) { + Icon( + imageVector = Icons.Default.Close, + contentDescription = "返回輸入", + tint = Color.White.copy(alpha = 0.7f) + ) + } + } + } +} \ No newline at end of file diff --git a/app/src/main/java/com/example/login_v3/home/Message/UI/Detail/Message_Messaging.kt b/app/src/main/java/com/example/login_v3/home/Message/UI/Detail/Message_Messaging.kt index 06d1857..74e5476 100644 --- a/app/src/main/java/com/example/login_v3/home/Message/UI/Detail/Message_Messaging.kt +++ b/app/src/main/java/com/example/login_v3/home/Message/UI/Detail/Message_Messaging.kt @@ -95,8 +95,8 @@ sealed interface BottomBarState { object Input : BottomBarState // 預設:輸入框 data class ActionMenu(val message: Message) : BottomBarState // 長按:動作選單 data class EmojiMenu(val message: Message) : BottomBarState // 單擊:Emoji 工具列 + object AttachmentMenu : BottomBarState // 🎯 新增:附件選單 } - @OptIn(ExperimentalMaterial3Api::class) @Composable fun MessageMessaging(