thank you cdk

This commit is contained in:
callebtc
2025-07-15 18:54:03 +02:00
parent b20029aedd
commit 258e5e2ade
@@ -10,6 +10,8 @@ import androidx.compose.material3.*
import androidx.compose.runtime.* import androidx.compose.runtime.*
import androidx.compose.ui.Alignment import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier import androidx.compose.ui.Modifier
import androidx.compose.ui.focus.FocusRequester
import androidx.compose.ui.focus.focusRequester
import androidx.compose.ui.graphics.Color import androidx.compose.ui.graphics.Color
import androidx.compose.ui.platform.LocalClipboardManager import androidx.compose.ui.platform.LocalClipboardManager
import androidx.compose.ui.text.AnnotatedString import androidx.compose.ui.text.AnnotatedString
@@ -19,6 +21,8 @@ import androidx.compose.ui.text.input.KeyboardType
import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.text.style.TextAlign
import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.sp import androidx.compose.ui.unit.sp
import com.bitchat.android.parsing.CashuTokenParser
import com.bitchat.android.wallet.ui.WalletUtils
import com.bitchat.android.wallet.viewmodel.WalletViewModel import com.bitchat.android.wallet.viewmodel.WalletViewModel
/** /**
@@ -34,8 +38,13 @@ fun SendEcashDialog(
var amount by remember { mutableStateOf("") } var amount by remember { mutableStateOf("") }
var memo by remember { mutableStateOf("") } var memo by remember { mutableStateOf("") }
val clipboardManager = LocalClipboardManager.current val clipboardManager = LocalClipboardManager.current
val focusRequester = remember { FocusRequester() }
if (generatedToken != null) { if (generatedToken != null) {
// Parse token to extract information
val parser = remember { CashuTokenParser() }
val parsedToken = remember(generatedToken) { parser.parseToken(generatedToken) }
// Show generated token // Show generated token
Column( Column(
modifier = Modifier.fillMaxWidth(), modifier = Modifier.fillMaxWidth(),
@@ -65,7 +74,7 @@ fun SendEcashDialog(
Spacer(modifier = Modifier.height(16.dp)) Spacer(modifier = Modifier.height(16.dp))
Text( Text(
text = "CASHU TOKEN CREATED", text = "CASHU TOKEN",
color = Color(0xFF00C851), color = Color(0xFF00C851),
fontSize = 16.sp, fontSize = 16.sp,
fontWeight = FontWeight.Bold, fontWeight = FontWeight.Bold,
@@ -73,9 +82,36 @@ fun SendEcashDialog(
letterSpacing = 1.sp letterSpacing = 1.sp
) )
Spacer(modifier = Modifier.height(16.dp))
// Token amount and mint info
parsedToken?.let { token ->
Column(
horizontalAlignment = Alignment.CenterHorizontally
) {
Text(
text = WalletUtils.formatSats(token.amount),
color = Color.White,
fontSize = 24.sp,
fontWeight = FontWeight.Bold,
fontFamily = FontFamily.Monospace
)
Spacer(modifier = Modifier.height(8.dp))
Text(
text = "From: ${token.mintUrl}",
color = Color(0xFF888888),
fontSize = 12.sp,
fontFamily = FontFamily.Monospace,
textAlign = TextAlign.Center
)
}
}
Spacer(modifier = Modifier.height(24.dp)) Spacer(modifier = Modifier.height(24.dp))
// Token display // Token display (truncated)
Card( Card(
modifier = Modifier.fillMaxWidth(), modifier = Modifier.fillMaxWidth(),
shape = RoundedCornerShape(12.dp), shape = RoundedCornerShape(12.dp),
@@ -83,7 +119,11 @@ fun SendEcashDialog(
) { ) {
SelectionContainer { SelectionContainer {
Text( Text(
text = generatedToken, text = if (generatedToken.length > 50) {
"${generatedToken.take(50)}..."
} else {
generatedToken
},
color = Color.White, color = Color.White,
fontSize = 12.sp, fontSize = 12.sp,
fontFamily = FontFamily.Monospace, fontFamily = FontFamily.Monospace,
@@ -134,6 +174,11 @@ fun SendEcashDialog(
Column( Column(
modifier = Modifier.fillMaxWidth() modifier = Modifier.fillMaxWidth()
) { ) {
// Request focus on the amount input when dialog opens
LaunchedEffect(Unit) {
focusRequester.requestFocus()
}
// Amount input // Amount input
OutlinedTextField( OutlinedTextField(
value = amount, value = amount,
@@ -159,7 +204,8 @@ fun SendEcashDialog(
), ),
modifier = Modifier modifier = Modifier
.fillMaxWidth() .fillMaxWidth()
.padding(bottom = 16.dp), .padding(bottom = 16.dp)
.focusRequester(focusRequester),
shape = RoundedCornerShape(16.dp) shape = RoundedCornerShape(16.dp)
) )