diff --git a/composeApp/src/commonMain/composeResources/values/strings.xml b/composeApp/src/commonMain/composeResources/values/strings.xml
index 077b5ae..fd9b1bf 100644
--- a/composeApp/src/commonMain/composeResources/values/strings.xml
+++ b/composeApp/src/commonMain/composeResources/values/strings.xml
@@ -212,6 +212,7 @@
Admin
GameMaster
+ Filtrer par nom :
niv: %1$d
Joueur
Joueur-%1$d
diff --git a/composeApp/src/commonMain/kotlin/com/pixelized/desktop/lwa/ui/composable/textfield/LwaTextField.kt b/composeApp/src/commonMain/kotlin/com/pixelized/desktop/lwa/ui/composable/textfield/LwaTextField.kt
index 5bf6b5b..ed234b8 100644
--- a/composeApp/src/commonMain/kotlin/com/pixelized/desktop/lwa/ui/composable/textfield/LwaTextField.kt
+++ b/composeApp/src/commonMain/kotlin/com/pixelized/desktop/lwa/ui/composable/textfield/LwaTextField.kt
@@ -1,19 +1,18 @@
package com.pixelized.desktop.lwa.ui.composable.textfield
import androidx.compose.foundation.layout.height
-import androidx.compose.material.MaterialTheme
import androidx.compose.material.Text
import androidx.compose.material.TextField
-import androidx.compose.material.TextFieldDefaults
+import androidx.compose.material.TextFieldColors
import androidx.compose.runtime.Composable
import androidx.compose.runtime.Stable
import androidx.compose.runtime.collectAsState
-import androidx.compose.runtime.remember
import androidx.compose.ui.Modifier
import androidx.compose.ui.focus.FocusDirection
import androidx.compose.ui.platform.LocalFocusManager
import androidx.compose.ui.text.style.TextOverflow
import androidx.compose.ui.unit.dp
+import com.pixelized.desktop.lwa.ui.theme.color.component.LwaTextFieldColors
import com.pixelized.desktop.lwa.utils.rememberKeyboardActions
import kotlinx.coroutines.flow.StateFlow
@@ -29,13 +28,13 @@ data class LwaTextFieldUio(
@Composable
fun LwaTextField(
modifier: Modifier = Modifier,
+ colors: TextFieldColors = LwaTextFieldColors(),
leadingIcon: @Composable (() -> Unit)? = null,
trailingIcon: @Composable (() -> Unit)? = null,
singleLine: Boolean = true,
field: LwaTextFieldUio,
) {
val focus = LocalFocusManager.current
- val colorScheme = MaterialTheme.colors
val localModifier = if (singleLine) {
Modifier.height(height = 56.dp)
@@ -49,14 +48,7 @@ fun LwaTextField(
TextField(
modifier = localModifier.then(other = modifier),
- colors = TextFieldDefaults.textFieldColors(
- backgroundColor = remember(field.enable) {
- when (field.enable) {
- true -> colorScheme.onSurface.copy(alpha = 0.03f)
- else -> colorScheme.surface
- }
- },
- ),
+ colors = colors,
keyboardActions = rememberKeyboardActions {
focus.moveFocus(FocusDirection.Next)
},
diff --git a/composeApp/src/commonMain/kotlin/com/pixelized/desktop/lwa/ui/screen/characterSheet/edit/composable/LevelUpField.kt b/composeApp/src/commonMain/kotlin/com/pixelized/desktop/lwa/ui/screen/characterSheet/edit/composable/LevelUpField.kt
index cd5eb2e..534eb6a 100644
--- a/composeApp/src/commonMain/kotlin/com/pixelized/desktop/lwa/ui/screen/characterSheet/edit/composable/LevelUpField.kt
+++ b/composeApp/src/commonMain/kotlin/com/pixelized/desktop/lwa/ui/screen/characterSheet/edit/composable/LevelUpField.kt
@@ -9,6 +9,7 @@ import androidx.compose.runtime.Stable
import androidx.compose.runtime.State
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
+import com.pixelized.desktop.lwa.ui.theme.color.component.LwaCheckboxColors
import com.pixelized.desktop.lwa.ui.theme.lwa
@Stable
@@ -32,6 +33,7 @@ fun LevelUpField(
text = field.label,
)
Checkbox(
+ colors = LwaCheckboxColors(),
checked = field.checked.value,
onCheckedChange = field.onCheck,
)
diff --git a/composeApp/src/commonMain/kotlin/com/pixelized/desktop/lwa/ui/screen/gamemaster/GameMasterScreen.kt b/composeApp/src/commonMain/kotlin/com/pixelized/desktop/lwa/ui/screen/gamemaster/GameMasterScreen.kt
index 1706779..274c406 100644
--- a/composeApp/src/commonMain/kotlin/com/pixelized/desktop/lwa/ui/screen/gamemaster/GameMasterScreen.kt
+++ b/composeApp/src/commonMain/kotlin/com/pixelized/desktop/lwa/ui/screen/gamemaster/GameMasterScreen.kt
@@ -14,7 +14,6 @@ import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.PaddingValues
import androidx.compose.foundation.layout.Row
-import androidx.compose.foundation.layout.fillMaxHeight
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.foundation.layout.padding
@@ -30,7 +29,9 @@ import androidx.compose.material.MaterialTheme
import androidx.compose.material.Scaffold
import androidx.compose.material.Surface
import androidx.compose.material.Switch
+import androidx.compose.material.SwitchColors
import androidx.compose.material.Text
+import androidx.compose.material.TextFieldDefaults
import androidx.compose.material.TopAppBar
import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.filled.Add
@@ -42,6 +43,8 @@ import androidx.compose.runtime.rememberCoroutineScope
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.draw.clip
+import androidx.compose.ui.graphics.Color
+import androidx.compose.ui.unit.Dp
import androidx.compose.ui.unit.dp
import com.pixelized.desktop.lwa.LocalWindowController
import com.pixelized.desktop.lwa.ui.composable.textfield.LwaTextField
@@ -51,6 +54,7 @@ import com.pixelized.desktop.lwa.ui.screen.gamemaster.items.GMCharacter
import com.pixelized.desktop.lwa.ui.screen.gamemaster.items.GMCharacterUio
import com.pixelized.desktop.lwa.ui.screen.gamemaster.items.GMTag
import com.pixelized.desktop.lwa.ui.screen.gamemaster.items.GMTagUio
+import com.pixelized.desktop.lwa.ui.theme.color.component.LwaSwitchColors
import com.pixelized.desktop.lwa.ui.theme.lwa
import kotlinx.coroutines.launch
import lwacharactersheet.composeapp.generated.resources.Res
@@ -110,6 +114,8 @@ fun GameMasterScreen(
@Composable
private fun GameMasterContent(
modifier: Modifier = Modifier,
+ padding: Dp = 16.dp,
+ spacing: Dp = 8.dp,
filterChipsState: LazyListState = rememberLazyListState(),
filter: LwaTextFieldUio,
tags: State>,
@@ -147,8 +153,8 @@ private fun GameMasterContent(
text = stringResource(Res.string.game_master__action),
)
Switch(
+ colors = LwaSwitchColors(),
checked = gameMaster.value,
- colors = MaterialTheme.lwa.colorScheme.component.switch,
onCheckedChange = null,
)
}
@@ -195,8 +201,10 @@ private fun GameMasterContent(
},
),
state = filterChipsState,
- contentPadding = remember { PaddingValues(all = 8.dp) },
- horizontalArrangement = Arrangement.spacedBy(space = 8.dp),
+ contentPadding = remember(padding, spacing) {
+ PaddingValues(horizontal = padding, vertical = spacing)
+ },
+ horizontalArrangement = Arrangement.spacedBy(space = spacing),
) {
items(
items = tags.value,
@@ -217,13 +225,13 @@ private fun GameMasterContent(
modifier = Modifier.matchParentSize(),
contentPadding = remember {
PaddingValues(
- start = 8.dp,
- top = 8.dp,
- end = 8.dp,
- bottom = 8.dp + 48.dp + 8.dp,
+ start = padding,
+ top = padding,
+ end = padding,
+ bottom = padding + 48.dp + padding,
)
},
- verticalArrangement = Arrangement.spacedBy(space = 8.dp),
+ verticalArrangement = Arrangement.spacedBy(space = spacing),
) {
items(
items = characters.value,
@@ -243,11 +251,10 @@ private fun GameMasterContent(
)
}
}
-
IconButton(
modifier = Modifier
.align(alignment = Alignment.BottomEnd)
- .padding(all = 8.dp)
+ .padding(all = padding)
.background(
color = MaterialTheme.lwa.colorScheme.base.primary,
shape = CircleShape,
diff --git a/composeApp/src/commonMain/kotlin/com/pixelized/desktop/lwa/ui/screen/gamemaster/GameMasterViewModel.kt b/composeApp/src/commonMain/kotlin/com/pixelized/desktop/lwa/ui/screen/gamemaster/GameMasterViewModel.kt
index 53825ed..8e9e986 100644
--- a/composeApp/src/commonMain/kotlin/com/pixelized/desktop/lwa/ui/screen/gamemaster/GameMasterViewModel.kt
+++ b/composeApp/src/commonMain/kotlin/com/pixelized/desktop/lwa/ui/screen/gamemaster/GameMasterViewModel.kt
@@ -13,10 +13,11 @@ import kotlinx.coroutines.flow.MutableStateFlow
import kotlinx.coroutines.flow.SharingStarted
import kotlinx.coroutines.flow.combine
import kotlinx.coroutines.flow.map
-import kotlinx.coroutines.flow.mapLatest
import kotlinx.coroutines.flow.stateIn
import kotlinx.coroutines.launch
+import kotlinx.coroutines.runBlocking
import lwacharactersheet.composeapp.generated.resources.Res
+import lwacharactersheet.composeapp.generated.resources.game_master__character__filter
import lwacharactersheet.composeapp.generated.resources.game_master__character_tag__character_search
import lwacharactersheet.composeapp.generated.resources.game_master__character_tag__npc_search
import org.jetbrains.compose.resources.getString
@@ -32,7 +33,7 @@ class GameMasterViewModel(
private val _filter = MutableStateFlow("")
val filter = LwaTextFieldUio(
enable = true,
- labelFlow = MutableStateFlow("Filtre"),
+ labelFlow = MutableStateFlow(runBlocking { getString(Res.string.game_master__character__filter) }),
valueFlow = _filter,
placeHolderFlow = MutableStateFlow(null),
onValueChange = { _filter.value = it },
diff --git a/composeApp/src/commonMain/kotlin/com/pixelized/desktop/lwa/ui/theme/color/LwaColors.kt b/composeApp/src/commonMain/kotlin/com/pixelized/desktop/lwa/ui/theme/color/LwaColors.kt
index 3095c03..d1b1a24 100644
--- a/composeApp/src/commonMain/kotlin/com/pixelized/desktop/lwa/ui/theme/color/LwaColors.kt
+++ b/composeApp/src/commonMain/kotlin/com/pixelized/desktop/lwa/ui/theme/color/LwaColors.kt
@@ -1,7 +1,6 @@
package com.pixelized.desktop.lwa.ui.theme.color
import androidx.compose.material.Colors
-import androidx.compose.material.SwitchColors
import androidx.compose.material.darkColors
import androidx.compose.runtime.Composable
import androidx.compose.runtime.ReadOnlyComposable
@@ -11,23 +10,16 @@ import androidx.compose.ui.graphics.Color
import androidx.compose.ui.graphics.compositeOver
import androidx.compose.ui.unit.Dp
import androidx.compose.ui.unit.dp
-import com.pixelized.desktop.lwa.ui.theme.color.component.lwaSwitch
import kotlin.math.ln
@Stable
data class LwaColors(
val base: Colors,
- val component: Component,
val elevated: Elevated,
val portrait: Portrait,
val portraitBackgroundBrush: Brush,
val chat: Chat,
) {
- @Stable
- data class Component(
- val switch: SwitchColors,
- )
-
@Stable
data class Elevated(
val base1dp: Color,
@@ -80,9 +72,6 @@ fun darkLwaColorTheme(
elevation = 4.dp,
),
),
- component: LwaColors.Component = LwaColors.Component(
- switch = lwaSwitch(base = base),
- ),
portraitBackgroundBrush: Brush = Brush.verticalGradient(
listOf(
elevated.base1dp.copy(alpha = 0.0f),
@@ -107,7 +96,6 @@ fun darkLwaColorTheme(
),
): LwaColors = LwaColors(
base = base,
- component = component,
elevated = elevated,
portrait = portrait,
portraitBackgroundBrush = portraitBackgroundBrush,
diff --git a/composeApp/src/commonMain/kotlin/com/pixelized/desktop/lwa/ui/theme/color/component/LwaCheckboxColors.kt b/composeApp/src/commonMain/kotlin/com/pixelized/desktop/lwa/ui/theme/color/component/LwaCheckboxColors.kt
new file mode 100644
index 0000000..1c45066
--- /dev/null
+++ b/composeApp/src/commonMain/kotlin/com/pixelized/desktop/lwa/ui/theme/color/component/LwaCheckboxColors.kt
@@ -0,0 +1,17 @@
+package com.pixelized.desktop.lwa.ui.theme.color.component
+
+import androidx.compose.material.CheckboxColors
+import androidx.compose.material.CheckboxDefaults
+import androidx.compose.material.MaterialTheme
+import androidx.compose.runtime.Composable
+import androidx.compose.runtime.Stable
+import com.pixelized.desktop.lwa.ui.theme.color.LwaColors
+import com.pixelized.desktop.lwa.ui.theme.lwa
+
+@Composable
+@Stable
+fun LwaCheckboxColors(
+ colors: LwaColors = MaterialTheme.lwa.colorScheme,
+): CheckboxColors = CheckboxDefaults.colors(
+ checkedColor = colors.base.primary,
+)
\ No newline at end of file
diff --git a/composeApp/src/commonMain/kotlin/com/pixelized/desktop/lwa/ui/theme/color/component/LwaSwitch.kt b/composeApp/src/commonMain/kotlin/com/pixelized/desktop/lwa/ui/theme/color/component/LwaSwitch.kt
deleted file mode 100644
index 418b92e..0000000
--- a/composeApp/src/commonMain/kotlin/com/pixelized/desktop/lwa/ui/theme/color/component/LwaSwitch.kt
+++ /dev/null
@@ -1,14 +0,0 @@
-package com.pixelized.desktop.lwa.ui.theme.color.component
-
-import androidx.compose.material.Colors
-import androidx.compose.material.SwitchDefaults
-import androidx.compose.runtime.Composable
-import androidx.compose.runtime.Stable
-
-@Composable
-@Stable
-fun lwaSwitch(
- base: Colors
-) = SwitchDefaults.colors(
- checkedThumbColor = base.primary,
-)
\ No newline at end of file
diff --git a/composeApp/src/commonMain/kotlin/com/pixelized/desktop/lwa/ui/theme/color/component/LwaSwitchColors.kt b/composeApp/src/commonMain/kotlin/com/pixelized/desktop/lwa/ui/theme/color/component/LwaSwitchColors.kt
new file mode 100644
index 0000000..a3f6a88
--- /dev/null
+++ b/composeApp/src/commonMain/kotlin/com/pixelized/desktop/lwa/ui/theme/color/component/LwaSwitchColors.kt
@@ -0,0 +1,16 @@
+package com.pixelized.desktop.lwa.ui.theme.color.component
+
+import androidx.compose.material.MaterialTheme
+import androidx.compose.material.SwitchDefaults
+import androidx.compose.runtime.Composable
+import androidx.compose.runtime.Stable
+import com.pixelized.desktop.lwa.ui.theme.color.LwaColors
+import com.pixelized.desktop.lwa.ui.theme.lwa
+
+@Composable
+@Stable
+fun LwaSwitchColors(
+ colors: LwaColors = MaterialTheme.lwa.colorScheme,
+) = SwitchDefaults.colors(
+ checkedThumbColor = colors.base.primary,
+)
\ No newline at end of file
diff --git a/composeApp/src/commonMain/kotlin/com/pixelized/desktop/lwa/ui/theme/color/component/LwaTextFieldColors.kt b/composeApp/src/commonMain/kotlin/com/pixelized/desktop/lwa/ui/theme/color/component/LwaTextFieldColors.kt
new file mode 100644
index 0000000..1267ee9
--- /dev/null
+++ b/composeApp/src/commonMain/kotlin/com/pixelized/desktop/lwa/ui/theme/color/component/LwaTextFieldColors.kt
@@ -0,0 +1,20 @@
+package com.pixelized.desktop.lwa.ui.theme.color.component
+
+import androidx.compose.material.MaterialTheme
+import androidx.compose.material.TextFieldColors
+import androidx.compose.material.TextFieldDefaults
+import androidx.compose.runtime.Composable
+import androidx.compose.runtime.Stable
+import androidx.compose.ui.graphics.Color
+import com.pixelized.desktop.lwa.ui.theme.color.LwaColors
+import com.pixelized.desktop.lwa.ui.theme.lwa
+
+@Composable
+@Stable
+fun LwaTextFieldColors(
+ colors: LwaColors = MaterialTheme.lwa.colorScheme,
+): TextFieldColors = TextFieldDefaults.textFieldColors(
+ backgroundColor = colors.elevated.base1dp,
+ disabledIndicatorColor = Color.Transparent,
+ unfocusedIndicatorColor = Color.Transparent,
+)
\ No newline at end of file