Fix empty characterSheetEdit page.

This commit is contained in:
Andres Gomez, Thomas (ITDV RL) 2025-04-12 10:42:45 +02:00
parent 5a55d38fb2
commit a55753494f
2 changed files with 21 additions and 4 deletions

View file

@ -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.characterSheet.CharacterSheetRepository
import com.pixelized.desktop.lwa.repository.network.NetworkRepository import com.pixelized.desktop.lwa.repository.network.NetworkRepository
import com.pixelized.desktop.lwa.repository.settings.SettingsRepository 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 com.pixelized.shared.lwa.protocol.websocket.CharacterSheetEvent
import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.flow.MutableStateFlow
import kotlinx.coroutines.flow.SharingStarted import kotlinx.coroutines.flow.SharingStarted
@ -14,6 +16,9 @@ import kotlinx.coroutines.flow.combine
import kotlinx.coroutines.flow.map import kotlinx.coroutines.flow.map
import kotlinx.coroutines.flow.stateIn import kotlinx.coroutines.flow.stateIn
import kotlinx.coroutines.launch 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( class CharacterDetailViewModel(
private val characterSheetRepository: CharacterSheetRepository, private val characterSheetRepository: CharacterSheetRepository,
@ -78,6 +83,19 @@ class CharacterDetailViewModel(
displayedCharacterId.value = characterSheetId 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() { fun hideCharacter() {
displayedCharacterId.value = null displayedCharacterId.value = null
} }

View file

@ -52,7 +52,6 @@ import com.pixelized.desktop.lwa.ui.theme.color.component.LwaButtonColors
import kotlinx.coroutines.launch import kotlinx.coroutines.launch
import lwacharactersheet.composeapp.generated.resources.Res import lwacharactersheet.composeapp.generated.resources.Res
import lwacharactersheet.composeapp.generated.resources.character_sheet_edit__create__title 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 lwacharactersheet.composeapp.generated.resources.game_master__create_character_sheet
import org.jetbrains.compose.resources.getString import org.jetbrains.compose.resources.getString
import org.jetbrains.compose.resources.stringResource import org.jetbrains.compose.resources.stringResource
@ -87,9 +86,9 @@ fun GMCharacterPage(
}, },
onCharacterSheetEdit = { characterSheetId -> onCharacterSheetEdit = { characterSheetId ->
scope.launch { scope.launch {
windows.navigateToCharacterSheetEdit( characterDetailViewModel.editCharacter(
characterId = characterSheetId, characterSheetId = characterSheetId,
title = getString(Res.string.character_sheet_edit__edit__title), windows = windows,
) )
} }
}, },