feat: customisable message content in placeholder home
This commit is contained in:
parent
7c058d51b7
commit
234855b809
|
|
@ -6,6 +6,9 @@ import androidx.compose.material3.Button
|
||||||
import androidx.compose.material3.MaterialTheme
|
import androidx.compose.material3.MaterialTheme
|
||||||
import androidx.compose.material3.Text
|
import androidx.compose.material3.Text
|
||||||
import androidx.compose.runtime.Composable
|
import androidx.compose.runtime.Composable
|
||||||
|
import androidx.compose.runtime.getValue
|
||||||
|
import androidx.compose.runtime.mutableStateOf
|
||||||
|
import androidx.compose.runtime.setValue
|
||||||
import androidx.compose.ui.Alignment
|
import androidx.compose.ui.Alignment
|
||||||
import androidx.compose.ui.Modifier
|
import androidx.compose.ui.Modifier
|
||||||
import androidx.compose.ui.draw.clip
|
import androidx.compose.ui.draw.clip
|
||||||
|
|
@ -15,13 +18,16 @@ import androidx.compose.ui.unit.dp
|
||||||
import androidx.compose.ui.unit.sp
|
import androidx.compose.ui.unit.sp
|
||||||
import androidx.hilt.navigation.compose.hiltViewModel
|
import androidx.hilt.navigation.compose.hiltViewModel
|
||||||
import androidx.lifecycle.ViewModel
|
import androidx.lifecycle.ViewModel
|
||||||
|
import androidx.lifecycle.viewModelScope
|
||||||
import androidx.navigation.NavController
|
import androidx.navigation.NavController
|
||||||
import chat.revolt.api.REVOLT_FILES
|
import chat.revolt.api.REVOLT_FILES
|
||||||
import chat.revolt.api.RevoltAPI
|
import chat.revolt.api.RevoltAPI
|
||||||
import chat.revolt.components.generic.CollapsibleCard
|
import chat.revolt.components.generic.CollapsibleCard
|
||||||
|
import chat.revolt.components.generic.FormTextField
|
||||||
import chat.revolt.components.generic.RemoteImage
|
import chat.revolt.components.generic.RemoteImage
|
||||||
import chat.revolt.persistence.KVStorage
|
import chat.revolt.persistence.KVStorage
|
||||||
import dagger.hilt.android.lifecycle.HiltViewModel
|
import dagger.hilt.android.lifecycle.HiltViewModel
|
||||||
|
import kotlinx.coroutines.launch
|
||||||
import kotlinx.coroutines.runBlocking
|
import kotlinx.coroutines.runBlocking
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
|
|
||||||
|
|
@ -29,6 +35,14 @@ import javax.inject.Inject
|
||||||
class HomeScreenViewModel @Inject constructor(
|
class HomeScreenViewModel @Inject constructor(
|
||||||
private val kvStorage: KVStorage
|
private val kvStorage: KVStorage
|
||||||
) : ViewModel() {
|
) : ViewModel() {
|
||||||
|
private var _messageContent by mutableStateOf("")
|
||||||
|
val messageContent: String
|
||||||
|
get() = _messageContent
|
||||||
|
|
||||||
|
fun setMessageContent(value: String) {
|
||||||
|
_messageContent = value
|
||||||
|
}
|
||||||
|
|
||||||
fun logout() {
|
fun logout() {
|
||||||
runBlocking {
|
runBlocking {
|
||||||
kvStorage.remove("sessionToken")
|
kvStorage.remove("sessionToken")
|
||||||
|
|
@ -37,10 +51,10 @@ class HomeScreenViewModel @Inject constructor(
|
||||||
}
|
}
|
||||||
|
|
||||||
fun sendMessage() {
|
fun sendMessage() {
|
||||||
runBlocking {
|
viewModelScope.launch {
|
||||||
chat.revolt.api.routes.channel.sendMessage(
|
chat.revolt.api.routes.channel.sendMessage(
|
||||||
"01FD4WDPDDPH5523ASF50ADSSN",
|
"01F7ZSBSFHCAAJQ92ZGTY67HMN",
|
||||||
"this is technically the first message sent from revolt android"
|
messageContent
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -88,8 +102,15 @@ fun HomeScreen(navController: NavController, viewModel: HomeScreenViewModel = hi
|
||||||
}
|
}
|
||||||
|
|
||||||
CollapsibleCard(title = "Send a message") {
|
CollapsibleCard(title = "Send a message") {
|
||||||
Button(onClick = { viewModel.sendMessage() }) {
|
Column() {
|
||||||
Text(text = "Send")
|
FormTextField(
|
||||||
|
value = viewModel.messageContent,
|
||||||
|
label = "Content",
|
||||||
|
onChange = viewModel::setMessageContent
|
||||||
|
)
|
||||||
|
Button(onClick = { viewModel.sendMessage() }) {
|
||||||
|
Text(text = "Send")
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue