Add portrait, thumbnail and level to the charactersheet edit.
This commit is contained in:
		
							parent
							
								
									5eafe057f1
								
							
						
					
					
						commit
						353183f0f5
					
				
					 4 changed files with 67 additions and 16 deletions
				
			
		| 
						 | 
					@ -42,6 +42,9 @@
 | 
				
			||||||
    <string name="character_sheet_edit__characteristics__int">Intelligence</string>
 | 
					    <string name="character_sheet_edit__characteristics__int">Intelligence</string>
 | 
				
			||||||
    <string name="character_sheet_edit__characteristics__pow">Pouvoir</string>
 | 
					    <string name="character_sheet_edit__characteristics__pow">Pouvoir</string>
 | 
				
			||||||
    <string name="character_sheet_edit__characteristics__cha">Charisme</string>
 | 
					    <string name="character_sheet_edit__characteristics__cha">Charisme</string>
 | 
				
			||||||
 | 
					    <string name="character_sheet_edit__characteristics__level">Level</string>
 | 
				
			||||||
 | 
					    <string name="character_sheet_edit__characteristics__portrait">Portrait</string>
 | 
				
			||||||
 | 
					    <string name="character_sheet_edit__characteristics__thumbnail">Thumbnail</string>
 | 
				
			||||||
    <string name="character_sheet_edit__sub_characteristics__title">Caractéristiques dérivées</string>
 | 
					    <string name="character_sheet_edit__sub_characteristics__title">Caractéristiques dérivées</string>
 | 
				
			||||||
    <string name="character_sheet_edit__sub_characteristics__movement">Déplacement</string>
 | 
					    <string name="character_sheet_edit__sub_characteristics__movement">Déplacement</string>
 | 
				
			||||||
    <string name="character_sheet_edit__sub_characteristics__max_hit_point">Points de vie maximum</string>
 | 
					    <string name="character_sheet_edit__sub_characteristics__max_hit_point">Points de vie maximum</string>
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -10,6 +10,7 @@ import com.pixelized.desktop.lwa.ui.screen.characterSheet.edit.composable.Action
 | 
				
			||||||
import com.pixelized.desktop.lwa.ui.screen.characterSheet.edit.composable.BaseSkillFieldUio
 | 
					import com.pixelized.desktop.lwa.ui.screen.characterSheet.edit.composable.BaseSkillFieldUio
 | 
				
			||||||
import com.pixelized.desktop.lwa.ui.screen.characterSheet.edit.composable.LevelUpWrapperUio
 | 
					import com.pixelized.desktop.lwa.ui.screen.characterSheet.edit.composable.LevelUpWrapperUio
 | 
				
			||||||
import com.pixelized.desktop.lwa.ui.screen.characterSheet.edit.composable.SimpleFieldUio
 | 
					import com.pixelized.desktop.lwa.ui.screen.characterSheet.edit.composable.SimpleFieldUio
 | 
				
			||||||
 | 
					import com.pixelized.desktop.lwa.ui.screen.characterSheet.edit.composable.textfield.TextFieldWrapperUio
 | 
				
			||||||
import com.pixelized.desktop.lwa.utils.extention.unAccent
 | 
					import com.pixelized.desktop.lwa.utils.extention.unAccent
 | 
				
			||||||
import com.pixelized.shared.lwa.model.characterSheet.CharacterSheet
 | 
					import com.pixelized.shared.lwa.model.characterSheet.CharacterSheet
 | 
				
			||||||
import com.pixelized.shared.lwa.usecase.CharacterSheetUseCase
 | 
					import com.pixelized.shared.lwa.usecase.CharacterSheetUseCase
 | 
				
			||||||
| 
						 | 
					@ -21,8 +22,11 @@ import lwacharactersheet.composeapp.generated.resources.character_sheet_edit__ch
 | 
				
			||||||
import lwacharactersheet.composeapp.generated.resources.character_sheet_edit__characteristics__dex
 | 
					import lwacharactersheet.composeapp.generated.resources.character_sheet_edit__characteristics__dex
 | 
				
			||||||
import lwacharactersheet.composeapp.generated.resources.character_sheet_edit__characteristics__hei
 | 
					import lwacharactersheet.composeapp.generated.resources.character_sheet_edit__characteristics__hei
 | 
				
			||||||
import lwacharactersheet.composeapp.generated.resources.character_sheet_edit__characteristics__int
 | 
					import lwacharactersheet.composeapp.generated.resources.character_sheet_edit__characteristics__int
 | 
				
			||||||
 | 
					import lwacharactersheet.composeapp.generated.resources.character_sheet_edit__characteristics__level
 | 
				
			||||||
 | 
					import lwacharactersheet.composeapp.generated.resources.character_sheet_edit__characteristics__portrait
 | 
				
			||||||
import lwacharactersheet.composeapp.generated.resources.character_sheet_edit__characteristics__pow
 | 
					import lwacharactersheet.composeapp.generated.resources.character_sheet_edit__characteristics__pow
 | 
				
			||||||
import lwacharactersheet.composeapp.generated.resources.character_sheet_edit__characteristics__str
 | 
					import lwacharactersheet.composeapp.generated.resources.character_sheet_edit__characteristics__str
 | 
				
			||||||
 | 
					import lwacharactersheet.composeapp.generated.resources.character_sheet_edit__characteristics__thumbnail
 | 
				
			||||||
import lwacharactersheet.composeapp.generated.resources.character_sheet_edit__level_up
 | 
					import lwacharactersheet.composeapp.generated.resources.character_sheet_edit__level_up
 | 
				
			||||||
import lwacharactersheet.composeapp.generated.resources.character_sheet_edit__name_label
 | 
					import lwacharactersheet.composeapp.generated.resources.character_sheet_edit__name_label
 | 
				
			||||||
import lwacharactersheet.composeapp.generated.resources.character_sheet_edit__skills__acrobatics_base
 | 
					import lwacharactersheet.composeapp.generated.resources.character_sheet_edit__skills__acrobatics_base
 | 
				
			||||||
| 
						 | 
					@ -89,7 +93,9 @@ class CharacterSheetEditFactory(
 | 
				
			||||||
        editedSheet: CharacterSheetEditPageUio,
 | 
					        editedSheet: CharacterSheetEditPageUio,
 | 
				
			||||||
    ): CharacterSheet {
 | 
					    ): CharacterSheet {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        val level = currentSheet?.level ?: 1
 | 
					        val level = editedSheet.level.unpack()?.toIntOrNull()
 | 
				
			||||||
 | 
					            ?: currentSheet?.level
 | 
				
			||||||
 | 
					            ?: 1
 | 
				
			||||||
        val strength = editedSheet.strength.unpack()?.toIntOrNull()
 | 
					        val strength = editedSheet.strength.unpack()?.toIntOrNull()
 | 
				
			||||||
            ?: currentSheet?.strength
 | 
					            ?: currentSheet?.strength
 | 
				
			||||||
            ?: 0
 | 
					            ?: 0
 | 
				
			||||||
| 
						 | 
					@ -115,8 +121,8 @@ class CharacterSheetEditFactory(
 | 
				
			||||||
        return CharacterSheet(
 | 
					        return CharacterSheet(
 | 
				
			||||||
            id = editedSheet.id.value,
 | 
					            id = editedSheet.id.value,
 | 
				
			||||||
            name = editedSheet.name.value.value,
 | 
					            name = editedSheet.name.value.value,
 | 
				
			||||||
            portrait = currentSheet?.portrait,
 | 
					            portrait = editedSheet.portrait.value.value,
 | 
				
			||||||
            thumbnail = currentSheet?.thumbnail,
 | 
					            thumbnail = editedSheet.thumbnail.value.value,
 | 
				
			||||||
            level = level,
 | 
					            level = level,
 | 
				
			||||||
            shouldLevelUp = editedSheet.levelUp.checked.value,
 | 
					            shouldLevelUp = editedSheet.levelUp.checked.value,
 | 
				
			||||||
            strength = strength,
 | 
					            strength = strength,
 | 
				
			||||||
| 
						 | 
					@ -251,6 +257,8 @@ class CharacterSheetEditFactory(
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        val specialSkillsLabel = getString(Res.string.character_sheet_edit__skills__special_title)
 | 
					        val specialSkillsLabel = getString(Res.string.character_sheet_edit__skills__special_title)
 | 
				
			||||||
        val magicSkillsLabel = getString(Res.string.character_sheet_edit__skills__magic_title)
 | 
					        val magicSkillsLabel = getString(Res.string.character_sheet_edit__skills__magic_title)
 | 
				
			||||||
 | 
					        val portrait = mutableStateOf(sheet?.portrait ?: "")
 | 
				
			||||||
 | 
					        val thumbnail = mutableStateOf(sheet?.thumbnail ?: "")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        return with(characterSheetUseCase) {
 | 
					        return with(characterSheetUseCase) {
 | 
				
			||||||
            val name = skillFieldFactory.createWrapper(
 | 
					            val name = skillFieldFactory.createWrapper(
 | 
				
			||||||
| 
						 | 
					@ -263,6 +271,27 @@ class CharacterSheetEditFactory(
 | 
				
			||||||
                },
 | 
					                },
 | 
				
			||||||
                levelUp = createLevelUpWrapper(shouldLevelUp = sheet?.shouldLevelUp ?: false),
 | 
					                levelUp = createLevelUpWrapper(shouldLevelUp = sheet?.shouldLevelUp ?: false),
 | 
				
			||||||
                name = name,
 | 
					                name = name,
 | 
				
			||||||
 | 
					                level = SimpleFieldUio(
 | 
				
			||||||
 | 
					                    label = getString(Res.string.character_sheet_edit__characteristics__level),
 | 
				
			||||||
 | 
					                    value = skillFieldFactory.createWrapper(
 | 
				
			||||||
 | 
					                        value = sheet?.level?.toString() ?: "",
 | 
				
			||||||
 | 
					                        placeholder = mutableStateOf("1"),
 | 
				
			||||||
 | 
					                    )
 | 
				
			||||||
 | 
					                ),
 | 
				
			||||||
 | 
					                portrait = TextFieldWrapperUio(
 | 
				
			||||||
 | 
					                    enable = true,
 | 
				
			||||||
 | 
					                    label = mutableStateOf(getString(Res.string.character_sheet_edit__characteristics__portrait)),
 | 
				
			||||||
 | 
					                    value = portrait,
 | 
				
			||||||
 | 
					                    placeholder = mutableStateOf(null),
 | 
				
			||||||
 | 
					                    onValueChange = { portrait.value = it },
 | 
				
			||||||
 | 
					                ),
 | 
				
			||||||
 | 
					                thumbnail = TextFieldWrapperUio(
 | 
				
			||||||
 | 
					                    enable = true,
 | 
				
			||||||
 | 
					                    label = mutableStateOf(getString(Res.string.character_sheet_edit__characteristics__thumbnail)),
 | 
				
			||||||
 | 
					                    value = thumbnail,
 | 
				
			||||||
 | 
					                    placeholder = mutableStateOf(null),
 | 
				
			||||||
 | 
					                    onValueChange = { portrait.value = it },
 | 
				
			||||||
 | 
					                ),
 | 
				
			||||||
                strength = str,
 | 
					                strength = str,
 | 
				
			||||||
                dexterity = dex,
 | 
					                dexterity = dex,
 | 
				
			||||||
                constitution = con,
 | 
					                constitution = con,
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -64,6 +64,9 @@ data class CharacterSheetEditPageUio(
 | 
				
			||||||
    val id: State<String>,
 | 
					    val id: State<String>,
 | 
				
			||||||
    val levelUp: LevelUpWrapperUio,
 | 
					    val levelUp: LevelUpWrapperUio,
 | 
				
			||||||
    val name: TextFieldWrapperUio,
 | 
					    val name: TextFieldWrapperUio,
 | 
				
			||||||
 | 
					    val level: SimpleFieldUio,
 | 
				
			||||||
 | 
					    val portrait: TextFieldWrapperUio,
 | 
				
			||||||
 | 
					    val thumbnail: TextFieldWrapperUio,
 | 
				
			||||||
    val strength: SimpleFieldUio,
 | 
					    val strength: SimpleFieldUio,
 | 
				
			||||||
    val dexterity: SimpleFieldUio,
 | 
					    val dexterity: SimpleFieldUio,
 | 
				
			||||||
    val constitution: SimpleFieldUio,
 | 
					    val constitution: SimpleFieldUio,
 | 
				
			||||||
| 
						 | 
					@ -172,24 +175,40 @@ fun CharacterSheetEdit(
 | 
				
			||||||
                    .padding(all = 16.dp),
 | 
					                    .padding(all = 16.dp),
 | 
				
			||||||
                verticalArrangement = Arrangement.spacedBy(space = 16.dp)
 | 
					                verticalArrangement = Arrangement.spacedBy(space = 16.dp)
 | 
				
			||||||
            ) {
 | 
					            ) {
 | 
				
			||||||
                Row(
 | 
					                Text(
 | 
				
			||||||
                    verticalAlignment = Alignment.CenterVertically,
 | 
					                    modifier = Modifier.fillMaxWidth(),
 | 
				
			||||||
                ) {
 | 
					                    style = MaterialTheme.lwa.typography.base.caption,
 | 
				
			||||||
                    Text(
 | 
					                    text = "id : ${form.id.value}"
 | 
				
			||||||
                        modifier = Modifier.weight(1f),
 | 
					                )
 | 
				
			||||||
                        style = MaterialTheme.lwa.typography.base.caption,
 | 
					 | 
				
			||||||
                        text = form.id.value
 | 
					 | 
				
			||||||
                    )
 | 
					 | 
				
			||||||
                    LevelUpField(
 | 
					 | 
				
			||||||
                        field = form.levelUp,
 | 
					 | 
				
			||||||
                    )
 | 
					 | 
				
			||||||
                }
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
                TextFieldWrapper(
 | 
					                TextFieldWrapper(
 | 
				
			||||||
                    modifier = Modifier.fillMaxWidth(),
 | 
					                    modifier = Modifier.fillMaxWidth(),
 | 
				
			||||||
                    wrapper = form.name,
 | 
					                    wrapper = form.name,
 | 
				
			||||||
                )
 | 
					                )
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                TextFieldWrapper(
 | 
				
			||||||
 | 
					                    modifier = Modifier.fillMaxWidth(),
 | 
				
			||||||
 | 
					                    wrapper = form.portrait,
 | 
				
			||||||
 | 
					                )
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                TextFieldWrapper(
 | 
				
			||||||
 | 
					                    modifier = Modifier.fillMaxWidth(),
 | 
				
			||||||
 | 
					                    wrapper = form.thumbnail,
 | 
				
			||||||
 | 
					                )
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                Row(
 | 
				
			||||||
 | 
					                    verticalAlignment = Alignment.CenterVertically,
 | 
				
			||||||
 | 
					                ) {
 | 
				
			||||||
 | 
					                    LevelUpField(
 | 
				
			||||||
 | 
					                        modifier = Modifier.weight(1f),
 | 
				
			||||||
 | 
					                        field = form.levelUp,
 | 
				
			||||||
 | 
					                    )
 | 
				
			||||||
 | 
					                    SimpleField(
 | 
				
			||||||
 | 
					                        modifier = Modifier.weight(2f),
 | 
				
			||||||
 | 
					                        field = form.level,
 | 
				
			||||||
 | 
					                    )
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                Row(
 | 
					                Row(
 | 
				
			||||||
                    horizontalArrangement = Arrangement.spacedBy(space = 16.dp)
 | 
					                    horizontalArrangement = Arrangement.spacedBy(space = 16.dp)
 | 
				
			||||||
                ) {
 | 
					                ) {
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -29,7 +29,7 @@ fun LevelUpField(
 | 
				
			||||||
        verticalAlignment = Alignment.CenterVertically,
 | 
					        verticalAlignment = Alignment.CenterVertically,
 | 
				
			||||||
    ) {
 | 
					    ) {
 | 
				
			||||||
        Text(
 | 
					        Text(
 | 
				
			||||||
            style = MaterialTheme.lwa.typography.base.body1,
 | 
					            style = MaterialTheme.lwa.typography.base.caption,
 | 
				
			||||||
            text = field.label,
 | 
					            text = field.label,
 | 
				
			||||||
        )
 | 
					        )
 | 
				
			||||||
        Checkbox(
 | 
					        Checkbox(
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue