fix: resolve all compilation errors (weight import, asStateFlow, getCookies->get, CoroutineScope import, JsonPrimitive form values, ExperimentalMaterial3Api)
This commit is contained in:
parent
7b881747d3
commit
b80d607d51
@ -1,7 +1,19 @@
|
|||||||
package com.bricks.mp.core
|
package com.bricks.mp.core
|
||||||
|
|
||||||
import androidx.compose.foundation.*
|
import androidx.compose.foundation.*
|
||||||
import androidx.compose.foundation.layout.*
|
import androidx.compose.foundation.layout.Arrangement
|
||||||
|
import androidx.compose.foundation.layout.Box
|
||||||
|
import androidx.compose.foundation.layout.BoxWithConstraints
|
||||||
|
import androidx.compose.foundation.layout.Column
|
||||||
|
import androidx.compose.foundation.layout.Row
|
||||||
|
import androidx.compose.foundation.layout.Spacer
|
||||||
|
import androidx.compose.foundation.layout.fillMaxSize
|
||||||
|
import androidx.compose.foundation.layout.fillMaxWidth
|
||||||
|
import androidx.compose.foundation.layout.height
|
||||||
|
import androidx.compose.foundation.layout.padding
|
||||||
|
import androidx.compose.foundation.layout.size
|
||||||
|
import androidx.compose.foundation.layout.width
|
||||||
|
import androidx.compose.foundation.layout.weight
|
||||||
import androidx.compose.foundation.rememberScrollState
|
import androidx.compose.foundation.rememberScrollState
|
||||||
import androidx.compose.foundation.verticalScroll
|
import androidx.compose.foundation.verticalScroll
|
||||||
import androidx.compose.foundation.horizontalScroll
|
import androidx.compose.foundation.horizontalScroll
|
||||||
@ -38,7 +50,9 @@ fun RenderWidget(
|
|||||||
// 布局
|
// 布局
|
||||||
"HBox", "FHBox" -> RenderHBox(resolvedWidget, actionDispatcher)
|
"HBox", "FHBox" -> RenderHBox(resolvedWidget, actionDispatcher)
|
||||||
"VBox", "FVBox" -> RenderVBox(resolvedWidget, actionDispatcher)
|
"VBox", "FVBox" -> RenderVBox(resolvedWidget, actionDispatcher)
|
||||||
"Filler", "HFiller" -> Spacer(modifier = Modifier.weight(1f))
|
"Filler", "HFiller" -> {
|
||||||
|
Spacer(modifier = Modifier.weight(1f))
|
||||||
|
}
|
||||||
"VFiller" -> Spacer(modifier = Modifier.height(
|
"VFiller" -> Spacer(modifier = Modifier.height(
|
||||||
WidgetOptions.getString(resolvedWidget.options, "height", "16").toFloatOrNull()?.dp ?: 16.dp
|
WidgetOptions.getString(resolvedWidget.options, "height", "16").toFloatOrNull()?.dp ?: 16.dp
|
||||||
))
|
))
|
||||||
@ -316,7 +330,7 @@ private fun RenderFormWidget(widget: BricksWidget, actionDispatcher: ActionDispa
|
|||||||
val updatedBind = bind.copy(
|
val updatedBind = bind.copy(
|
||||||
options = bind.options + mapOf(
|
options = bind.options + mapOf(
|
||||||
"formdata" to kotlinx.serialization.json.buildJsonObject {
|
"formdata" to kotlinx.serialization.json.buildJsonObject {
|
||||||
formValues.forEach { (k, v) -> put(k, v) }
|
formValues.forEach { (k, v) -> put(k, kotlinx.serialization.json.JsonPrimitive(v)) }
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|||||||
@ -8,6 +8,7 @@ import io.ktor.client.plugins.cookies.*
|
|||||||
import io.ktor.client.request.*
|
import io.ktor.client.request.*
|
||||||
import io.ktor.client.statement.*
|
import io.ktor.client.statement.*
|
||||||
import io.ktor.http.*
|
import io.ktor.http.*
|
||||||
|
import kotlinx.coroutines.flow.asStateFlow
|
||||||
import kotlinx.coroutines.sync.Mutex
|
import kotlinx.coroutines.sync.Mutex
|
||||||
import kotlinx.coroutines.sync.withLock
|
import kotlinx.coroutines.sync.withLock
|
||||||
import kotlinx.serialization.json.*
|
import kotlinx.serialization.json.*
|
||||||
@ -40,10 +41,10 @@ class SageClient {
|
|||||||
|
|
||||||
// 登录状态
|
// 登录状态
|
||||||
private val _isLoggedIn = kotlinx.coroutines.flow.MutableStateFlow(false)
|
private val _isLoggedIn = kotlinx.coroutines.flow.MutableStateFlow(false)
|
||||||
val isLoggedIn = _isLoggedIn.asStateFlow()
|
val isLoggedIn: kotlinx.coroutines.flow.StateFlow<Boolean> = _isLoggedIn
|
||||||
|
|
||||||
private val _loginError = kotlinx.coroutines.flow.MutableStateFlow<String?>(null)
|
private val _loginError = kotlinx.coroutines.flow.MutableStateFlow<String?>(null)
|
||||||
val loginError = _loginError.asStateFlow()
|
val loginError: kotlinx.coroutines.flow.StateFlow<String?> = _loginError
|
||||||
|
|
||||||
private val mutex = Mutex()
|
private val mutex = Mutex()
|
||||||
|
|
||||||
@ -82,7 +83,7 @@ class SageClient {
|
|||||||
|
|
||||||
if (widgetType == "Message" || widgetType == "UiMessage") {
|
if (widgetType == "Message" || widgetType == "UiMessage") {
|
||||||
// 检查是否有 session cookie
|
// 检查是否有 session cookie
|
||||||
val cookies = cookieStorage.getCookies(URLBuilder(baseUrl).build())
|
val cookies = cookieStorage.get(URLBuilder(baseUrl).build())
|
||||||
if (cookies.isNotEmpty()) {
|
if (cookies.isNotEmpty()) {
|
||||||
println("[Sage] Login successful, got ${cookies.size} cookies")
|
println("[Sage] Login successful, got ${cookies.size} cookies")
|
||||||
_isLoggedIn.value = true
|
_isLoggedIn.value = true
|
||||||
@ -197,7 +198,7 @@ class SageClient {
|
|||||||
suspend fun logout() = mutex.withLock {
|
suspend fun logout() = mutex.withLock {
|
||||||
try {
|
try {
|
||||||
// 清除 cookies
|
// 清除 cookies
|
||||||
cookieStorage.getCookies(URLBuilder(baseUrl).build())
|
cookieStorage.get(URLBuilder(baseUrl).build())
|
||||||
_isLoggedIn.value = false
|
_isLoggedIn.value = false
|
||||||
println("[Sage] Logged out")
|
println("[Sage] Logged out")
|
||||||
} catch (e: Exception) {
|
} catch (e: Exception) {
|
||||||
|
|||||||
@ -25,8 +25,8 @@ import com.bricks.mp.core.BricksWidget
|
|||||||
import com.bricks.mp.core.RenderWidget
|
import com.bricks.mp.core.RenderWidget
|
||||||
import com.bricks.mp.actions.ActionDispatcher
|
import com.bricks.mp.actions.ActionDispatcher
|
||||||
import com.bricks.mp.sage.SageClient
|
import com.bricks.mp.sage.SageClient
|
||||||
|
import kotlinx.coroutines.CoroutineScope
|
||||||
import kotlinx.coroutines.Dispatchers
|
import kotlinx.coroutines.Dispatchers
|
||||||
import kotlinx.coroutines.IO
|
|
||||||
import kotlinx.coroutines.launch
|
import kotlinx.coroutines.launch
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -274,6 +274,7 @@ fun LoginScreen(
|
|||||||
/**
|
/**
|
||||||
* 主应用界面
|
* 主应用界面
|
||||||
*/
|
*/
|
||||||
|
@OptIn(androidx.compose.material3.ExperimentalMaterial3Api::class)
|
||||||
@Composable
|
@Composable
|
||||||
fun MainAppScreen(
|
fun MainAppScreen(
|
||||||
rootWidget: BricksWidget,
|
rootWidget: BricksWidget,
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user