Colton Idle
08/09/2021, 4:35 PMAlexander Kurasov[JB]
08/10/2021, 7:49 AMColton Idle
08/10/2021, 8:08 AMUnresolved reference: MuAppThemeHover over Column "error":
@Composable invocations can only happen from the context of a @Composable functionHover over ToggleButtons
Unresolved reference: ToggleButtonsHover over Text
@Composable invocations can only happen from the context of a @Composable function
fun main() = application {
Window(onCloseRequest = ::exitApplication) {
DesktopMaterialTheme {
Text("It works")
}
}
}
Maybe my theme is bad?
Maybe someone can tell?
commonMain contains this theme
@Composable
fun MuAppTheme(darkTheme: Boolean = false, content: @Composable () -> Unit) {
val colors = if (darkTheme) DarkColorPalette else LightColorPalette
ProvideMuColors(colors) {
MaterialTheme(content = content)
}
}
@Composable
fun App2() {
var text by remember { mutableStateOf("Hello, !") }
Button(onClick = {
text = "Hello, fd"
}) {
Text(text)
}
}
and it auto completes just fine...Alexander Kurasov[JB]
08/10/2021, 8:55 AMColton Idle
08/10/2021, 3:21 PMimport androidx.compose.material.MaterialTheme
import androidx.compose.runtime.Composable
import androidx.compose.runtime.CompositionLocalProvider
import androidx.compose.runtime.Stable
import androidx.compose.runtime.getValue
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember
import androidx.compose.runtime.setValue
import androidx.compose.runtime.staticCompositionLocalOf
import androidx.compose.ui.graphics.Color
private val LightColorPalette =
MuAppColors(iconC1 = Color.Blue)
private val DarkColorPalette = MuAppColors(iconC1 = Color.Red)
@Composable
fun MuAppTheme(darkTheme: Boolean = false, content: @Composable () -> Unit) {
val colors = if (darkTheme) DarkColorPalette else LightColorPalette
ProvideMuAppColors(colors) {
MaterialTheme(
content = content
)
}
}
@Stable
class MuAppColors(
iconC1: Color,
) {
var textOrIcon_c1 by mutableStateOf(iconC1)
private set
fun update(other: MuAppColors) {
textOrIcon_c1 = other.textOrIcon_c1
}
}
@Composable
fun ProvideMuAppColors(colors: MuAppColors, content: @Composable () -> Unit) {
val colorPalette = remember { colors }
colorPalette.update(colors)
CompositionLocalProvider(LocalAmbientMuProviderColors provides colorPalette, content = content)
}
private val LocalAmbientMuProviderColors =
staticCompositionLocalOf<MuAppColors> { error("No MuColorPalette provided") }
fun main() = application {
Window(onCloseRequest = ::exitApplication) {
MuAppTheme {
Text("")
}
}
}
then invalidate caches and restart