From a55753494fdbe609f0d5bd2581decaa7808d1f2b Mon Sep 17 00:00:00 2001 From: "Andres Gomez, Thomas (ITDV RL)" Date: Sat, 12 Apr 2025 10:42:45 +0200 Subject: [PATCH] Fix empty characterSheetEdit page. --- .../player/detail/CharacterDetailViewModel.kt | 18 ++++++++++++++++++ .../character/list/GMCharacterPage.kt | 7 +++---- 2 files changed, 21 insertions(+), 4 deletions(-) diff --git a/composeApp/src/commonMain/kotlin/com/pixelized/desktop/lwa/ui/screen/campaign/player/detail/CharacterDetailViewModel.kt b/composeApp/src/commonMain/kotlin/com/pixelized/desktop/lwa/ui/screen/campaign/player/detail/CharacterDetailViewModel.kt index a22dfbb..2ffe945 100644 --- a/composeApp/src/commonMain/kotlin/com/pixelized/desktop/lwa/ui/screen/campaign/player/detail/CharacterDetailViewModel.kt +++ b/composeApp/src/commonMain/kotlin/com/pixelized/desktop/lwa/ui/screen/campaign/player/detail/CharacterDetailViewModel.kt @@ -6,6 +6,8 @@ import com.pixelized.desktop.lwa.repository.alteration.AlterationRepository import com.pixelized.desktop.lwa.repository.characterSheet.CharacterSheetRepository import com.pixelized.desktop.lwa.repository.network.NetworkRepository import com.pixelized.desktop.lwa.repository.settings.SettingsRepository +import com.pixelized.desktop.lwa.ui.navigation.window.WindowController +import com.pixelized.desktop.lwa.ui.navigation.window.destination.navigateToCharacterSheetEdit import com.pixelized.shared.lwa.protocol.websocket.CharacterSheetEvent import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.flow.SharingStarted @@ -14,6 +16,9 @@ import kotlinx.coroutines.flow.combine import kotlinx.coroutines.flow.map import kotlinx.coroutines.flow.stateIn import kotlinx.coroutines.launch +import lwacharactersheet.composeapp.generated.resources.Res +import lwacharactersheet.composeapp.generated.resources.character_sheet_edit__edit__title +import org.jetbrains.compose.resources.getString class CharacterDetailViewModel( private val characterSheetRepository: CharacterSheetRepository, @@ -78,6 +83,19 @@ class CharacterDetailViewModel( displayedCharacterId.value = characterSheetId } + suspend fun editCharacter( + characterSheetId: String, + windows: WindowController, + ) { + if (characterSheetRepository.characterDetail(characterSheetId = characterSheetId) == null) { + characterSheetRepository.updateCharacterSheet(characterSheetId = characterSheetId) + } + windows.navigateToCharacterSheetEdit( + characterId = characterSheetId, + title = getString(Res.string.character_sheet_edit__edit__title), + ) + } + fun hideCharacter() { displayedCharacterId.value = null } diff --git a/composeApp/src/commonMain/kotlin/com/pixelized/desktop/lwa/ui/screen/gamemaster/character/list/GMCharacterPage.kt b/composeApp/src/commonMain/kotlin/com/pixelized/desktop/lwa/ui/screen/gamemaster/character/list/GMCharacterPage.kt index 958ae71..526f2f3 100644 --- a/composeApp/src/commonMain/kotlin/com/pixelized/desktop/lwa/ui/screen/gamemaster/character/list/GMCharacterPage.kt +++ b/composeApp/src/commonMain/kotlin/com/pixelized/desktop/lwa/ui/screen/gamemaster/character/list/GMCharacterPage.kt @@ -52,7 +52,6 @@ import com.pixelized.desktop.lwa.ui.theme.color.component.LwaButtonColors import kotlinx.coroutines.launch import lwacharactersheet.composeapp.generated.resources.Res import lwacharactersheet.composeapp.generated.resources.character_sheet_edit__create__title -import lwacharactersheet.composeapp.generated.resources.character_sheet_edit__edit__title import lwacharactersheet.composeapp.generated.resources.game_master__create_character_sheet import org.jetbrains.compose.resources.getString import org.jetbrains.compose.resources.stringResource @@ -87,9 +86,9 @@ fun GMCharacterPage( }, onCharacterSheetEdit = { characterSheetId -> scope.launch { - windows.navigateToCharacterSheetEdit( - characterId = characterSheetId, - title = getString(Res.string.character_sheet_edit__edit__title), + characterDetailViewModel.editCharacter( + characterSheetId = characterSheetId, + windows = windows, ) } },