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
|
||||
|
||||
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.verticalScroll
|
||||
import androidx.compose.foundation.horizontalScroll
|
||||
@ -38,7 +50,9 @@ fun RenderWidget(
|
||||
// 布局
|
||||
"HBox", "FHBox" -> RenderHBox(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(
|
||||
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(
|
||||
options = bind.options + mapOf(
|
||||
"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.statement.*
|
||||
import io.ktor.http.*
|
||||
import kotlinx.coroutines.flow.asStateFlow
|
||||
import kotlinx.coroutines.sync.Mutex
|
||||
import kotlinx.coroutines.sync.withLock
|
||||
import kotlinx.serialization.json.*
|
||||
@ -40,10 +41,10 @@ class SageClient {
|
||||
|
||||
// 登录状态
|
||||
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)
|
||||
val loginError = _loginError.asStateFlow()
|
||||
val loginError: kotlinx.coroutines.flow.StateFlow<String?> = _loginError
|
||||
|
||||
private val mutex = Mutex()
|
||||
|
||||
@ -82,7 +83,7 @@ class SageClient {
|
||||
|
||||
if (widgetType == "Message" || widgetType == "UiMessage") {
|
||||
// 检查是否有 session cookie
|
||||
val cookies = cookieStorage.getCookies(URLBuilder(baseUrl).build())
|
||||
val cookies = cookieStorage.get(URLBuilder(baseUrl).build())
|
||||
if (cookies.isNotEmpty()) {
|
||||
println("[Sage] Login successful, got ${cookies.size} cookies")
|
||||
_isLoggedIn.value = true
|
||||
@ -197,7 +198,7 @@ class SageClient {
|
||||
suspend fun logout() = mutex.withLock {
|
||||
try {
|
||||
// 清除 cookies
|
||||
cookieStorage.getCookies(URLBuilder(baseUrl).build())
|
||||
cookieStorage.get(URLBuilder(baseUrl).build())
|
||||
_isLoggedIn.value = false
|
||||
println("[Sage] Logged out")
|
||||
} catch (e: Exception) {
|
||||
|
||||
@ -25,8 +25,8 @@ import com.bricks.mp.core.BricksWidget
|
||||
import com.bricks.mp.core.RenderWidget
|
||||
import com.bricks.mp.actions.ActionDispatcher
|
||||
import com.bricks.mp.sage.SageClient
|
||||
import kotlinx.coroutines.CoroutineScope
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
import kotlinx.coroutines.IO
|
||||
import kotlinx.coroutines.launch
|
||||
|
||||
/**
|
||||
@ -274,6 +274,7 @@ fun LoginScreen(
|
||||
/**
|
||||
* 主应用界面
|
||||
*/
|
||||
@OptIn(androidx.compose.material3.ExperimentalMaterial3Api::class)
|
||||
@Composable
|
||||
fun MainAppScreen(
|
||||
rootWidget: BricksWidget,
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user