Refactor package gamemaster into admin + fix itemAnimation

This commit is contained in:
Thomas Andres Gomez 2025-11-26 18:16:36 +01:00
parent c4f0b41610
commit ce05e6a4c4
53 changed files with 134 additions and 134 deletions

View file

@ -41,7 +41,7 @@ import com.pixelized.desktop.lwa.ui.navigation.window.WindowsNavHost
import com.pixelized.desktop.lwa.ui.navigation.window.destination.GameMasterWindow
import com.pixelized.desktop.lwa.ui.navigation.window.rememberMaxWindowHeight
import com.pixelized.desktop.lwa.ui.overlay.roll.RollHostState
import com.pixelized.desktop.lwa.ui.screen.gamemaster.GameMasterNavHost
import com.pixelized.desktop.lwa.ui.screen.admin.GameMasterNavHost
import com.pixelized.desktop.lwa.ui.theme.LwaTheme
import com.pixelized.desktop.lwa.utils.InstallCoil
import kotlinx.coroutines.launch

View file

@ -47,24 +47,24 @@ import com.pixelized.desktop.lwa.ui.screen.campaign.toolbar.CampaignToolbarViewM
import com.pixelized.desktop.lwa.ui.screen.campaign.toolbar.links.ResourcesViewModel
import com.pixelized.desktop.lwa.ui.screen.campaign.toolbar.network.NetworkFactory
import com.pixelized.desktop.lwa.ui.screen.campaign.toolbar.network.NetworkViewModel
import com.pixelized.desktop.lwa.ui.screen.gamemaster.GameMasterViewModel
import com.pixelized.desktop.lwa.ui.screen.gamemaster.action.GMActionUseCase
import com.pixelized.desktop.lwa.ui.screen.gamemaster.action.GMActionViewModel
import com.pixelized.desktop.lwa.ui.screen.gamemaster.alteration.edit.GMAlterationEditFactory
import com.pixelized.desktop.lwa.ui.screen.gamemaster.alteration.edit.GMAlterationEditViewModel
import com.pixelized.desktop.lwa.ui.screen.gamemaster.alteration.list.GMAlterationFactory
import com.pixelized.desktop.lwa.ui.screen.gamemaster.alteration.list.GMAlterationViewModel
import com.pixelized.desktop.lwa.ui.screen.gamemaster.character.edit.GMCharacterEditFactory
import com.pixelized.desktop.lwa.ui.screen.gamemaster.character.edit.GMCharacterEditViewModel
import com.pixelized.desktop.lwa.ui.screen.gamemaster.character.edit.dialog.GMCharacterSheetCopyDialogFactory
import com.pixelized.desktop.lwa.ui.screen.gamemaster.character.edit.dialog.GMCharacterSheetCopyDialogViewModel
import com.pixelized.desktop.lwa.ui.screen.gamemaster.character.list.GMCharacterFactory
import com.pixelized.desktop.lwa.ui.screen.gamemaster.character.list.GMCharacterViewModel
import com.pixelized.desktop.lwa.ui.screen.gamemaster.common.tag.GMTagFactory
import com.pixelized.desktop.lwa.ui.screen.gamemaster.item.edit.GMItemEditFactory
import com.pixelized.desktop.lwa.ui.screen.gamemaster.item.edit.GMItemEditViewModel
import com.pixelized.desktop.lwa.ui.screen.gamemaster.item.list.GMItemFactory
import com.pixelized.desktop.lwa.ui.screen.gamemaster.item.list.GMItemViewModel
import com.pixelized.desktop.lwa.ui.screen.admin.AdminViewModel
import com.pixelized.desktop.lwa.ui.screen.admin.action.GMActionUseCase
import com.pixelized.desktop.lwa.ui.screen.admin.action.GMActionViewModel
import com.pixelized.desktop.lwa.ui.screen.admin.alteration.edit.GMAlterationEditFactory
import com.pixelized.desktop.lwa.ui.screen.admin.alteration.edit.GMAlterationEditViewModel
import com.pixelized.desktop.lwa.ui.screen.admin.alteration.list.GMAlterationFactory
import com.pixelized.desktop.lwa.ui.screen.admin.alteration.list.GMAlterationViewModel
import com.pixelized.desktop.lwa.ui.screen.admin.character.edit.GMCharacterEditFactory
import com.pixelized.desktop.lwa.ui.screen.admin.character.edit.GMCharacterEditViewModel
import com.pixelized.desktop.lwa.ui.screen.admin.character.edit.dialog.GMCharacterSheetCopyDialogFactory
import com.pixelized.desktop.lwa.ui.screen.admin.character.edit.dialog.GMCharacterSheetCopyDialogViewModel
import com.pixelized.desktop.lwa.ui.screen.admin.character.list.GMCharacterFactory
import com.pixelized.desktop.lwa.ui.screen.admin.character.list.GMCharacterViewModel
import com.pixelized.desktop.lwa.ui.screen.admin.common.tag.GMTagFactory
import com.pixelized.desktop.lwa.ui.screen.admin.item.edit.GMItemEditFactory
import com.pixelized.desktop.lwa.ui.screen.admin.item.edit.GMItemEditViewModel
import com.pixelized.desktop.lwa.ui.screen.admin.item.list.GMItemFactory
import com.pixelized.desktop.lwa.ui.screen.admin.item.list.GMItemViewModel
import com.pixelized.desktop.lwa.ui.screen.levelup.LevelUpFactory
import com.pixelized.desktop.lwa.ui.screen.levelup.LevelUpViewModel
import com.pixelized.desktop.lwa.ui.screen.settings.SettingsViewModel
@ -188,7 +188,7 @@ val viewModelDependencies
viewModelOf(::SettingsViewModel)
viewModelOf(::LevelUpViewModel)
viewModelOf(::PortraitOverlayViewModel)
viewModelOf(::GameMasterViewModel)
viewModelOf(::AdminViewModel)
viewModelOf(::GMCharacterViewModel)
viewModelOf(::GMCharacterEditViewModel)
viewModelOf(::GMActionViewModel)

View file

@ -20,8 +20,8 @@ import androidx.compose.ui.draw.clip
import androidx.compose.ui.graphics.graphicsLayer
import androidx.compose.ui.text.style.TextOverflow
import androidx.compose.ui.unit.dp
import com.pixelized.desktop.lwa.ui.screen.gamemaster.common.tag.GMTag
import com.pixelized.desktop.lwa.ui.screen.gamemaster.common.tag.GMTagUio
import com.pixelized.desktop.lwa.ui.screen.admin.common.tag.GMTag
import com.pixelized.desktop.lwa.ui.screen.admin.common.tag.GMTagUio
import com.pixelized.desktop.lwa.ui.theme.lwa
@Stable

View file

@ -29,8 +29,8 @@ import androidx.compose.ui.zIndex
import androidx.lifecycle.compose.collectAsStateWithLifecycle
import com.pixelized.desktop.lwa.ui.composable.character.LwaDialog
import com.pixelized.desktop.lwa.ui.composable.textfield.LwaTextFieldUio
import com.pixelized.desktop.lwa.ui.screen.gamemaster.common.GMFilterHeader
import com.pixelized.desktop.lwa.ui.screen.gamemaster.common.tag.GMTagUio
import com.pixelized.desktop.lwa.ui.screen.admin.common.GMFilterHeader
import com.pixelized.desktop.lwa.ui.screen.admin.common.tag.GMTagUio
import com.pixelized.desktop.lwa.ui.theme.lwa
import com.pixelized.desktop.lwa.utils.extention.calculatePaddings
import kotlinx.coroutines.flow.StateFlow

View file

@ -1,8 +1,8 @@
package com.pixelized.desktop.lwa.ui.composable.character.alterteration
import com.pixelized.desktop.lwa.ui.composable.textfield.LwaTextFieldUio
import com.pixelized.desktop.lwa.ui.screen.gamemaster.common.tag.GMTagFactory
import com.pixelized.desktop.lwa.ui.screen.gamemaster.common.tag.GMTagUio
import com.pixelized.desktop.lwa.ui.screen.admin.common.tag.GMTagFactory
import com.pixelized.desktop.lwa.ui.screen.admin.common.tag.GMTagUio
import com.pixelized.desktop.lwa.utils.extention.unAccent
import com.pixelized.shared.lwa.model.alteration.Alteration
import com.pixelized.shared.lwa.model.characterSheet.CharacterSheet

View file

@ -8,8 +8,8 @@ import com.pixelized.desktop.lwa.repository.tag.TagRepository
import com.pixelized.desktop.lwa.ui.composable.error.ErrorSnackUio
import com.pixelized.desktop.lwa.ui.composable.textfield.createLwaTextField
import com.pixelized.desktop.lwa.ui.composable.textfield.createLwaTextFieldFlow
import com.pixelized.desktop.lwa.ui.screen.gamemaster.common.tag.GMTagFactory
import com.pixelized.desktop.lwa.ui.screen.gamemaster.common.tag.GMTagUio
import com.pixelized.desktop.lwa.ui.screen.admin.common.tag.GMTagFactory
import com.pixelized.desktop.lwa.ui.screen.admin.common.tag.GMTagUio
import com.pixelized.desktop.lwa.utils.extention.unAccent
import com.pixelized.shared.lwa.model.alteration.Alteration
import kotlinx.coroutines.ExperimentalCoroutinesApi

View file

@ -4,7 +4,7 @@ import androidx.compose.runtime.Stable
import androidx.navigation.NavGraphBuilder
import androidx.navigation.NavHostController
import androidx.navigation.compose.composable
import com.pixelized.desktop.lwa.ui.screen.gamemaster.action.GMActionPage
import com.pixelized.desktop.lwa.ui.screen.admin.action.GMActionPage
@Stable
object GMActionDestination {

View file

@ -3,7 +3,7 @@ package com.pixelized.desktop.lwa.ui.navigation.screen.destination.gamemaster
import androidx.navigation.NavGraphBuilder
import androidx.navigation.NavHostController
import androidx.navigation.compose.composable
import com.pixelized.desktop.lwa.ui.screen.gamemaster.alteration.list.GMAlterationPage
import com.pixelized.desktop.lwa.ui.screen.admin.alteration.list.GMAlterationPage
object GMAlterationDestination {
private const val ROUTE = "GameMasterAlteration"

View file

@ -7,7 +7,7 @@ import androidx.navigation.NavHostController
import androidx.navigation.NavType
import androidx.navigation.compose.composable
import androidx.navigation.navArgument
import com.pixelized.desktop.lwa.ui.screen.gamemaster.alteration.edit.GMAlterationEditScreen
import com.pixelized.desktop.lwa.ui.screen.admin.alteration.edit.GMAlterationEditScreen
import com.pixelized.desktop.lwa.utils.extention.ARG
@Stable

View file

@ -3,7 +3,7 @@ package com.pixelized.desktop.lwa.ui.navigation.screen.destination.gamemaster
import androidx.navigation.NavGraphBuilder
import androidx.navigation.NavHostController
import androidx.navigation.compose.composable
import com.pixelized.desktop.lwa.ui.screen.gamemaster.character.list.GMCharacterPage
import com.pixelized.desktop.lwa.ui.screen.admin.character.list.GMCharacterPage
object GMCharacterDestination {
private const val ROUTE = "GameMasterCharacter"

View file

@ -7,7 +7,7 @@ import androidx.navigation.NavHostController
import androidx.navigation.NavType
import androidx.navigation.compose.composable
import androidx.navigation.navArgument
import com.pixelized.desktop.lwa.ui.screen.gamemaster.character.edit.GMCharacterEditPage
import com.pixelized.desktop.lwa.ui.screen.admin.character.edit.GMCharacterEditPage
import com.pixelized.desktop.lwa.utils.extention.ARG
@Stable

View file

@ -3,7 +3,7 @@ package com.pixelized.desktop.lwa.ui.navigation.screen.destination.gamemaster
import androidx.navigation.NavGraphBuilder
import androidx.navigation.NavHostController
import androidx.navigation.compose.composable
import com.pixelized.desktop.lwa.ui.screen.gamemaster.item.list.GMItemPage
import com.pixelized.desktop.lwa.ui.screen.admin.item.list.GMItemPage
object GMItemDestination {
private const val ROUTE = "GameMasterItem"

View file

@ -7,7 +7,7 @@ import androidx.navigation.NavHostController
import androidx.navigation.NavType
import androidx.navigation.compose.composable
import androidx.navigation.navArgument
import com.pixelized.desktop.lwa.ui.screen.gamemaster.item.edit.GMItemEditPage
import com.pixelized.desktop.lwa.ui.screen.admin.item.edit.GMItemEditPage
import com.pixelized.desktop.lwa.utils.extention.ARG
@Stable

View file

@ -4,7 +4,7 @@ import androidx.compose.runtime.Stable
import androidx.navigation.NavGraphBuilder
import androidx.navigation.NavHostController
import androidx.navigation.compose.composable
import com.pixelized.desktop.lwa.ui.screen.gamemaster.GameMasterScreen
import com.pixelized.desktop.lwa.ui.screen.admin.GameMasterScreen
@Stable
object GameMasterDestination {

View file

@ -1,4 +1,4 @@
package com.pixelized.desktop.lwa.ui.screen.gamemaster
package com.pixelized.desktop.lwa.ui.screen.admin
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.material.Surface

View file

@ -1,4 +1,4 @@
package com.pixelized.desktop.lwa.ui.screen.gamemaster
package com.pixelized.desktop.lwa.ui.screen.admin
import androidx.compose.foundation.Image
import androidx.compose.foundation.clickable
@ -46,8 +46,8 @@ import com.pixelized.desktop.lwa.ui.navigation.screen.destination.gamemaster.nav
import com.pixelized.desktop.lwa.ui.navigation.screen.destination.gamemaster.navigateToGameMasterCharacterPage
import com.pixelized.desktop.lwa.ui.navigation.screen.destination.gamemaster.navigateToGameMasterObjectPage
import com.pixelized.desktop.lwa.ui.screen.campaign.toolbar.dice.DiceMenu
import com.pixelized.desktop.lwa.ui.screen.gamemaster.common.GMTab
import com.pixelized.desktop.lwa.ui.screen.gamemaster.common.GMTabUio
import com.pixelized.desktop.lwa.ui.screen.admin.common.GMTab
import com.pixelized.desktop.lwa.ui.screen.admin.common.GMTabUio
import com.pixelized.desktop.lwa.ui.theme.color.component.LwaSwitchColors
import com.pixelized.desktop.lwa.ui.theme.lwa
import lwacharactersheet.composeapp.generated.resources.Res
@ -61,10 +61,10 @@ import org.koin.compose.viewmodel.koinViewModel
@Composable
fun GameMasterScreen(
gameMasterViewModel: GameMasterViewModel = koinViewModel(),
viewModel: AdminViewModel = koinViewModel(),
controller: NavHostController = LocalGMScreenController.current,
) {
val gameMaster = gameMasterViewModel.isGameMaster.collectAsState()
val gameMaster = viewModel.isGameMaster.collectAsState()
val isDiceMenuOpen = remember { mutableStateOf(false) }
GameMasterContent(
@ -72,7 +72,7 @@ fun GameMasterScreen(
controller = controller,
isDiceMenuOpen = isDiceMenuOpen,
gameMaster = gameMaster,
onGameMaster = gameMasterViewModel::onGameMaster,
onGameMaster = viewModel::onGameMaster,
onTab = {
when (it) {
GMTabUio.Actions -> controller.navigateToGameMasterActionPage()

View file

@ -1,4 +1,4 @@
package com.pixelized.desktop.lwa.ui.screen.gamemaster
package com.pixelized.desktop.lwa.ui.screen.admin
import androidx.lifecycle.ViewModel
import androidx.lifecycle.viewModelScope
@ -7,7 +7,7 @@ import kotlinx.coroutines.flow.SharingStarted
import kotlinx.coroutines.flow.map
import kotlinx.coroutines.flow.stateIn
class GameMasterViewModel(
class AdminViewModel(
private val settingsRepository: SettingsRepository,
): ViewModel() {

View file

@ -1,4 +1,4 @@
package com.pixelized.desktop.lwa.ui.screen.gamemaster.action
package com.pixelized.desktop.lwa.ui.screen.admin.action
import androidx.compose.foundation.background
import androidx.compose.foundation.clickable

View file

@ -1,4 +1,4 @@
package com.pixelized.desktop.lwa.ui.screen.gamemaster.action
package com.pixelized.desktop.lwa.ui.screen.admin.action
import androidx.compose.foundation.ScrollState
import androidx.compose.foundation.layout.Arrangement
@ -14,7 +14,6 @@ import androidx.compose.runtime.State
import androidx.compose.runtime.rememberCoroutineScope
import androidx.compose.ui.Modifier
import androidx.compose.ui.unit.Dp
import androidx.compose.ui.unit.dp
import androidx.lifecycle.compose.collectAsStateWithLifecycle
import com.pixelized.desktop.lwa.ui.composable.confirmation.ConfirmationDialog
import com.pixelized.desktop.lwa.ui.composable.error.ErrorSnackHandler

View file

@ -1,4 +1,4 @@
package com.pixelized.desktop.lwa.ui.screen.gamemaster.action
package com.pixelized.desktop.lwa.ui.screen.admin.action
import com.pixelized.desktop.lwa.repository.campaign.CampaignRepository
import com.pixelized.desktop.lwa.repository.characterSheet.CharacterSheetRepository

View file

@ -1,4 +1,4 @@
package com.pixelized.desktop.lwa.ui.screen.gamemaster.action
package com.pixelized.desktop.lwa.ui.screen.admin.action
import androidx.lifecycle.ViewModel
import androidx.lifecycle.viewModelScope

View file

@ -1,4 +1,4 @@
package com.pixelized.desktop.lwa.ui.screen.gamemaster.action
package com.pixelized.desktop.lwa.ui.screen.admin.action
import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.Column

View file

@ -1,8 +1,8 @@
package com.pixelized.desktop.lwa.ui.screen.gamemaster.alteration.edit
package com.pixelized.desktop.lwa.ui.screen.admin.alteration.edit
import com.pixelized.desktop.lwa.ui.composable.textfield.createLwaTextField
import com.pixelized.desktop.lwa.ui.composable.textfield.createLwaTextFieldFlow
import com.pixelized.desktop.lwa.ui.screen.gamemaster.common.tag.GMTagFactory
import com.pixelized.desktop.lwa.ui.screen.admin.common.tag.GMTagFactory
import com.pixelized.shared.lwa.model.alteration.Alteration
import com.pixelized.shared.lwa.model.tag.Tag
import com.pixelized.shared.lwa.parser.expression.ExpressionParser

View file

@ -1,4 +1,4 @@
package com.pixelized.desktop.lwa.ui.screen.gamemaster.alteration.edit
package com.pixelized.desktop.lwa.ui.screen.admin.alteration.edit
import androidx.compose.animation.AnimatedContent
import androidx.compose.animation.EnterTransition
@ -64,8 +64,8 @@ import com.pixelized.desktop.lwa.ui.composable.textfield.LwaTextField
import com.pixelized.desktop.lwa.ui.composable.textfield.LwaTextFieldUio
import com.pixelized.desktop.lwa.ui.navigation.screen.LocalScreenController
import com.pixelized.desktop.lwa.ui.navigation.screen.destination.gamemaster.GMAlterationEditDestination
import com.pixelized.desktop.lwa.ui.screen.gamemaster.common.tag.GMTagButton
import com.pixelized.desktop.lwa.ui.screen.gamemaster.common.tag.GMTagUio
import com.pixelized.desktop.lwa.ui.screen.admin.common.tag.GMTagButton
import com.pixelized.desktop.lwa.ui.screen.admin.common.tag.GMTagUio
import com.pixelized.desktop.lwa.ui.theme.color.component.LwaButtonColors
import com.pixelized.desktop.lwa.ui.theme.lwa
import kotlinx.coroutines.CoroutineScope

View file

@ -1,4 +1,4 @@
package com.pixelized.desktop.lwa.ui.screen.gamemaster.alteration.edit
package com.pixelized.desktop.lwa.ui.screen.admin.alteration.edit
import androidx.lifecycle.SavedStateHandle
import androidx.lifecycle.ViewModel
@ -9,7 +9,7 @@ import com.pixelized.desktop.lwa.repository.tag.TagRepository
import com.pixelized.desktop.lwa.ui.composable.error.ErrorSnackUio
import com.pixelized.desktop.lwa.ui.composable.textfield.LwaTextFieldFlow
import com.pixelized.desktop.lwa.ui.navigation.screen.destination.gamemaster.GMAlterationEditDestination
import com.pixelized.desktop.lwa.ui.screen.gamemaster.common.tag.GMTagUio
import com.pixelized.desktop.lwa.ui.screen.admin.common.tag.GMTagUio
import com.pixelized.shared.lwa.protocol.rest.APIResponse.ErrorCode
import kotlinx.coroutines.flow.MutableSharedFlow
import kotlinx.coroutines.flow.MutableStateFlow

View file

@ -1,4 +1,4 @@
package com.pixelized.desktop.lwa.ui.screen.gamemaster.alteration.list
package com.pixelized.desktop.lwa.ui.screen.admin.alteration.list
import androidx.compose.foundation.background
import androidx.compose.foundation.clickable
@ -26,8 +26,8 @@ import androidx.compose.ui.Modifier
import androidx.compose.ui.draw.clip
import androidx.compose.ui.text.style.TextOverflow
import androidx.compose.ui.unit.dp
import com.pixelized.desktop.lwa.ui.screen.gamemaster.common.tag.GMTag
import com.pixelized.desktop.lwa.ui.screen.gamemaster.common.tag.GMTagUio
import com.pixelized.desktop.lwa.ui.screen.admin.common.tag.GMTag
import com.pixelized.desktop.lwa.ui.screen.admin.common.tag.GMTagUio
import com.pixelized.desktop.lwa.ui.theme.lwa
import lwacharactersheet.composeapp.generated.resources.Res
import lwacharactersheet.composeapp.generated.resources.game_master__alteration__delete

View file

@ -1,6 +1,6 @@
package com.pixelized.desktop.lwa.ui.screen.gamemaster.alteration.list
package com.pixelized.desktop.lwa.ui.screen.admin.alteration.list
import com.pixelized.desktop.lwa.ui.screen.gamemaster.common.tag.GMTagFactory
import com.pixelized.desktop.lwa.ui.screen.admin.common.tag.GMTagFactory
import com.pixelized.desktop.lwa.utils.extention.unAccent
import com.pixelized.shared.lwa.model.alteration.Alteration
import com.pixelized.shared.lwa.model.tag.Tag

View file

@ -1,4 +1,4 @@
package com.pixelized.desktop.lwa.ui.screen.gamemaster.alteration.list
package com.pixelized.desktop.lwa.ui.screen.admin.alteration.list
import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.Box
@ -26,17 +26,17 @@ import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.unit.Dp
import androidx.compose.ui.unit.dp
import androidx.compose.ui.zIndex
import com.pixelized.desktop.lwa.ui.composable.error.ErrorSnackHandler
import com.pixelized.desktop.lwa.ui.composable.textfield.LwaTextFieldUio
import com.pixelized.desktop.lwa.ui.navigation.screen.LocalScreenController
import com.pixelized.desktop.lwa.ui.navigation.screen.destination.gamemaster.navigateToGameMasterAlterationEditPage
import com.pixelized.desktop.lwa.ui.screen.gamemaster.common.GMFilterHeader
import com.pixelized.desktop.lwa.ui.screen.gamemaster.common.tag.GMTagUio
import com.pixelized.desktop.lwa.ui.screen.admin.common.GMFilterHeader
import com.pixelized.desktop.lwa.ui.screen.admin.common.tag.GMTagUio
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.game_master__alteration__create
import lwacharactersheet.composeapp.generated.resources.game_master__create_character_sheet
import org.jetbrains.compose.resources.stringResource
import org.koin.compose.viewmodel.koinViewModel
@ -93,6 +93,7 @@ private fun GMAlterationContent(
modifier = modifier,
) {
Surface(
modifier = Modifier.zIndex(1f), // avoid display issue with LazyColumnScope.animateItem()
elevation = 1.dp,
) {
GMFilterHeader(

View file

@ -1,4 +1,4 @@
package com.pixelized.desktop.lwa.ui.screen.gamemaster.alteration.list
package com.pixelized.desktop.lwa.ui.screen.admin.alteration.list
import androidx.lifecycle.ViewModel
import androidx.lifecycle.viewModelScope
@ -7,8 +7,8 @@ import com.pixelized.desktop.lwa.repository.tag.TagRepository
import com.pixelized.desktop.lwa.ui.composable.error.ErrorSnackUio
import com.pixelized.desktop.lwa.ui.composable.textfield.createLwaTextField
import com.pixelized.desktop.lwa.ui.composable.textfield.createLwaTextFieldFlow
import com.pixelized.desktop.lwa.ui.screen.gamemaster.common.tag.GMTagFactory
import com.pixelized.desktop.lwa.ui.screen.gamemaster.common.tag.GMTagUio
import com.pixelized.desktop.lwa.ui.screen.admin.common.tag.GMTagFactory
import com.pixelized.desktop.lwa.ui.screen.admin.common.tag.GMTagUio
import com.pixelized.desktop.lwa.utils.extention.unAccent
import kotlinx.coroutines.flow.MutableSharedFlow
import kotlinx.coroutines.flow.MutableStateFlow

View file

@ -1,12 +1,12 @@
package com.pixelized.desktop.lwa.ui.screen.gamemaster.character.edit
package com.pixelized.desktop.lwa.ui.screen.admin.character.edit
import com.pixelized.desktop.lwa.ui.composable.checkbox.LwaCheckBoxUio
import com.pixelized.desktop.lwa.ui.composable.textfield.createLwaTextField
import com.pixelized.desktop.lwa.ui.composable.textfield.createLwaTextFieldFlow
import com.pixelized.desktop.lwa.ui.screen.gamemaster.character.edit.item.GMActionFieldUio
import com.pixelized.desktop.lwa.ui.screen.gamemaster.character.edit.item.GMSkillFieldUio
import com.pixelized.desktop.lwa.ui.screen.gamemaster.common.tag.GMTagFactory
import com.pixelized.desktop.lwa.ui.screen.admin.character.edit.item.GMActionFieldUio
import com.pixelized.desktop.lwa.ui.screen.admin.character.edit.item.GMSkillFieldUio
import com.pixelized.desktop.lwa.ui.screen.admin.common.tag.GMTagFactory
import com.pixelized.desktop.lwa.utils.extention.unpack
import com.pixelized.shared.lwa.model.characterSheet.CharacterSheet
import com.pixelized.shared.lwa.model.characterSheet.CharacterSheet.CommonSkillId.ACROBATICS_ID

View file

@ -1,4 +1,4 @@
package com.pixelized.desktop.lwa.ui.screen.gamemaster.character.edit
package com.pixelized.desktop.lwa.ui.screen.admin.character.edit
import androidx.compose.animation.AnimatedVisibility
import androidx.compose.animation.expandHorizontally
@ -63,14 +63,14 @@ import com.pixelized.desktop.lwa.ui.composable.textfield.LwaTextField
import com.pixelized.desktop.lwa.ui.composable.textfield.LwaTextFieldUio
import com.pixelized.desktop.lwa.ui.navigation.screen.LocalScreenController
import com.pixelized.desktop.lwa.ui.navigation.screen.destination.gamemaster.GMCharacterEditDestination
import com.pixelized.desktop.lwa.ui.screen.gamemaster.character.edit.dialog.GMCharacterSheetCopyDialog
import com.pixelized.desktop.lwa.ui.screen.gamemaster.character.edit.dialog.GMCharacterSheetCopyDialogViewModel
import com.pixelized.desktop.lwa.ui.screen.gamemaster.character.edit.item.GMActionField
import com.pixelized.desktop.lwa.ui.screen.gamemaster.character.edit.item.GMActionFieldUio
import com.pixelized.desktop.lwa.ui.screen.gamemaster.character.edit.item.GMSkillField
import com.pixelized.desktop.lwa.ui.screen.gamemaster.character.edit.item.GMSkillFieldUio
import com.pixelized.desktop.lwa.ui.screen.gamemaster.common.tag.GMTagButton
import com.pixelized.desktop.lwa.ui.screen.gamemaster.common.tag.GMTagUio
import com.pixelized.desktop.lwa.ui.screen.admin.character.edit.dialog.GMCharacterSheetCopyDialog
import com.pixelized.desktop.lwa.ui.screen.admin.character.edit.dialog.GMCharacterSheetCopyDialogViewModel
import com.pixelized.desktop.lwa.ui.screen.admin.character.edit.item.GMActionField
import com.pixelized.desktop.lwa.ui.screen.admin.character.edit.item.GMActionFieldUio
import com.pixelized.desktop.lwa.ui.screen.admin.character.edit.item.GMSkillField
import com.pixelized.desktop.lwa.ui.screen.admin.character.edit.item.GMSkillFieldUio
import com.pixelized.desktop.lwa.ui.screen.admin.common.tag.GMTagButton
import com.pixelized.desktop.lwa.ui.screen.admin.common.tag.GMTagUio
import com.pixelized.desktop.lwa.ui.theme.lwa
import com.pixelized.desktop.lwa.utils.extention.unpack
import kotlinx.coroutines.CoroutineScope

View file

@ -1,4 +1,4 @@
package com.pixelized.desktop.lwa.ui.screen.gamemaster.character.edit
package com.pixelized.desktop.lwa.ui.screen.admin.character.edit
import androidx.lifecycle.SavedStateHandle
import androidx.lifecycle.ViewModel
@ -7,9 +7,9 @@ import com.pixelized.desktop.lwa.repository.characterSheet.CharacterSheetReposit
import com.pixelized.desktop.lwa.repository.tag.TagRepository
import com.pixelized.desktop.lwa.ui.composable.error.ErrorSnackUio
import com.pixelized.desktop.lwa.ui.navigation.screen.destination.gamemaster.GMCharacterEditDestination
import com.pixelized.desktop.lwa.ui.screen.gamemaster.character.list.GMCharacterFactory.Companion.NPC_ID
import com.pixelized.desktop.lwa.ui.screen.gamemaster.character.list.GMCharacterFactory.Companion.PLAYER_ID
import com.pixelized.desktop.lwa.ui.screen.gamemaster.common.tag.GMTagUio
import com.pixelized.desktop.lwa.ui.screen.admin.character.list.GMCharacterFactory.Companion.NPC_ID
import com.pixelized.desktop.lwa.ui.screen.admin.character.list.GMCharacterFactory.Companion.PLAYER_ID
import com.pixelized.desktop.lwa.ui.screen.admin.common.tag.GMTagUio
import kotlinx.coroutines.delay
import kotlinx.coroutines.flow.MutableSharedFlow
import kotlinx.coroutines.flow.MutableStateFlow

View file

@ -1,4 +1,4 @@
package com.pixelized.desktop.lwa.ui.screen.gamemaster.character.edit.dialog
package com.pixelized.desktop.lwa.ui.screen.admin.character.edit.dialog
import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.Column

View file

@ -1,4 +1,4 @@
package com.pixelized.desktop.lwa.ui.screen.gamemaster.character.edit.dialog
package com.pixelized.desktop.lwa.ui.screen.admin.character.edit.dialog
import com.pixelized.desktop.lwa.ui.composable.textfield.LwaTextFieldFlow
import com.pixelized.desktop.lwa.ui.composable.textfield.createLwaTextField

View file

@ -1,4 +1,4 @@
package com.pixelized.desktop.lwa.ui.screen.gamemaster.character.edit.dialog
package com.pixelized.desktop.lwa.ui.screen.admin.character.edit.dialog
import androidx.lifecycle.ViewModel
import androidx.lifecycle.viewModelScope

View file

@ -1,4 +1,4 @@
package com.pixelized.desktop.lwa.ui.screen.gamemaster.character.edit.item
package com.pixelized.desktop.lwa.ui.screen.admin.character.edit.item
import androidx.compose.animation.animateContentSize
import androidx.compose.foundation.layout.Arrangement

View file

@ -1,4 +1,4 @@
package com.pixelized.desktop.lwa.ui.screen.gamemaster.character.edit.item
package com.pixelized.desktop.lwa.ui.screen.admin.character.edit.item
import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.Box

View file

@ -1,4 +1,4 @@
package com.pixelized.desktop.lwa.ui.screen.gamemaster.character.list
package com.pixelized.desktop.lwa.ui.screen.admin.character.list
import androidx.compose.foundation.ExperimentalFoundationApi
import androidx.compose.foundation.PointerMatcher
@ -29,9 +29,9 @@ import androidx.compose.ui.draw.clip
import androidx.compose.ui.input.pointer.PointerButton
import androidx.compose.ui.text.font.FontStyle
import androidx.compose.ui.unit.dp
import com.pixelized.desktop.lwa.ui.screen.gamemaster.character.list.GMCharacterItemUio.Action
import com.pixelized.desktop.lwa.ui.screen.gamemaster.common.tag.GMTag
import com.pixelized.desktop.lwa.ui.screen.gamemaster.common.tag.GMTagUio
import com.pixelized.desktop.lwa.ui.screen.admin.character.list.GMCharacterItemUio.Action
import com.pixelized.desktop.lwa.ui.screen.admin.common.tag.GMTag
import com.pixelized.desktop.lwa.ui.screen.admin.common.tag.GMTagUio
import com.pixelized.desktop.lwa.ui.theme.lwa
import lwacharactersheet.composeapp.generated.resources.Res
import lwacharactersheet.composeapp.generated.resources.game_master__character_action__add_to_group

View file

@ -1,7 +1,7 @@
package com.pixelized.desktop.lwa.ui.screen.gamemaster.character.list
package com.pixelized.desktop.lwa.ui.screen.admin.character.list
import com.pixelized.desktop.lwa.ui.screen.gamemaster.character.list.GMCharacterItemUio.Action
import com.pixelized.desktop.lwa.ui.screen.gamemaster.common.tag.GMTagUio
import com.pixelized.desktop.lwa.ui.screen.admin.character.list.GMCharacterItemUio.Action
import com.pixelized.desktop.lwa.ui.screen.admin.common.tag.GMTagUio
import com.pixelized.desktop.lwa.utils.extention.unAccent
import com.pixelized.shared.lwa.model.campaign.Campaign
import com.pixelized.shared.lwa.model.characterSheet.CharacterSheetPreview

View file

@ -1,4 +1,4 @@
package com.pixelized.desktop.lwa.ui.screen.gamemaster.character.list
package com.pixelized.desktop.lwa.ui.screen.admin.character.list
import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.Box
@ -32,6 +32,7 @@ import androidx.compose.ui.input.key.type
import androidx.compose.ui.unit.Dp
import androidx.compose.ui.unit.LayoutDirection
import androidx.compose.ui.unit.dp
import androidx.compose.ui.zIndex
import com.pixelized.desktop.lwa.LocalBlurController
import com.pixelized.desktop.lwa.ui.composable.character.alterteration.CharacterSheetAlterationDialog
import com.pixelized.desktop.lwa.ui.composable.character.alterteration.CharacterSheetAlterationDialogViewModel
@ -48,8 +49,8 @@ import com.pixelized.desktop.lwa.ui.screen.campaign.player.detail.CharacterDetai
import com.pixelized.desktop.lwa.ui.screen.campaign.player.detail.CharacterDetailPanelViewModel
import com.pixelized.desktop.lwa.ui.screen.campaign.player.detail.DetailPanelUio
import com.pixelized.desktop.lwa.ui.screen.campaign.player.detail.rememberTransitionAnimation
import com.pixelized.desktop.lwa.ui.screen.gamemaster.common.GMFilterHeader
import com.pixelized.desktop.lwa.ui.screen.gamemaster.common.tag.GMTagUio
import com.pixelized.desktop.lwa.ui.screen.admin.common.GMFilterHeader
import com.pixelized.desktop.lwa.ui.screen.admin.common.tag.GMTagUio
import com.pixelized.desktop.lwa.ui.theme.color.component.LwaButtonColors
import kotlinx.coroutines.launch
import lwacharactersheet.composeapp.generated.resources.Res
@ -200,6 +201,7 @@ fun GMCharacterContent(
modifier = modifier,
) {
Surface(
modifier = Modifier.zIndex(1f), // avoid display issue with LazyColumnScope.animateItem()
elevation = 1.dp,
) {
GMFilterHeader(

View file

@ -1,4 +1,4 @@
package com.pixelized.desktop.lwa.ui.screen.gamemaster.character.list
package com.pixelized.desktop.lwa.ui.screen.admin.character.list
import androidx.lifecycle.ViewModel
import androidx.lifecycle.viewModelScope
@ -8,8 +8,8 @@ import com.pixelized.desktop.lwa.repository.network.NetworkRepository
import com.pixelized.desktop.lwa.repository.tag.TagRepository
import com.pixelized.desktop.lwa.ui.composable.textfield.createLwaTextField
import com.pixelized.desktop.lwa.ui.composable.textfield.createLwaTextFieldFlow
import com.pixelized.desktop.lwa.ui.screen.gamemaster.character.list.GMCharacterItemUio.Action
import com.pixelized.desktop.lwa.ui.screen.gamemaster.common.tag.GMTagFactory
import com.pixelized.desktop.lwa.ui.screen.admin.character.list.GMCharacterItemUio.Action
import com.pixelized.desktop.lwa.ui.screen.admin.common.tag.GMTagFactory
import com.pixelized.desktop.lwa.utils.extention.unAccent
import com.pixelized.shared.lwa.protocol.websocket.GameMasterEvent
import kotlinx.coroutines.flow.MutableStateFlow

View file

@ -1,4 +1,4 @@
package com.pixelized.desktop.lwa.ui.screen.gamemaster.common
package com.pixelized.desktop.lwa.ui.screen.admin.common
import androidx.compose.animation.AnimatedVisibility
import androidx.compose.animation.fadeIn
@ -29,8 +29,8 @@ import androidx.compose.ui.unit.Dp
import androidx.compose.ui.unit.dp
import com.pixelized.desktop.lwa.ui.composable.textfield.LwaTextField
import com.pixelized.desktop.lwa.ui.composable.textfield.LwaTextFieldUio
import com.pixelized.desktop.lwa.ui.screen.gamemaster.common.tag.GMTag
import com.pixelized.desktop.lwa.ui.screen.gamemaster.common.tag.GMTagUio
import com.pixelized.desktop.lwa.ui.screen.admin.common.tag.GMTag
import com.pixelized.desktop.lwa.ui.screen.admin.common.tag.GMTagUio
import com.pixelized.desktop.lwa.ui.theme.color.component.LwaTextFieldColors
import com.pixelized.desktop.lwa.ui.theme.lwa
import kotlinx.coroutines.launch

View file

@ -1,4 +1,4 @@
package com.pixelized.desktop.lwa.ui.screen.gamemaster.common
package com.pixelized.desktop.lwa.ui.screen.admin.common
import androidx.compose.material.Icon
import androidx.compose.material.IconButton

View file

@ -1,4 +1,4 @@
package com.pixelized.desktop.lwa.ui.screen.gamemaster.common.tag
package com.pixelized.desktop.lwa.ui.screen.admin.common.tag
import androidx.compose.animation.animateColorAsState
import androidx.compose.foundation.clickable

View file

@ -1,4 +1,4 @@
package com.pixelized.desktop.lwa.ui.screen.gamemaster.common.tag
package com.pixelized.desktop.lwa.ui.screen.admin.common.tag
import com.pixelized.shared.lwa.model.tag.Tag
import java.text.Collator

View file

@ -1,4 +1,4 @@
package com.pixelized.desktop.lwa.ui.screen.gamemaster.item.edit
package com.pixelized.desktop.lwa.ui.screen.admin.item.edit
import androidx.compose.animation.AnimatedContent
import androidx.compose.animation.SizeTransform
@ -6,8 +6,6 @@ import androidx.compose.animation.animateContentSize
import androidx.compose.animation.core.animateFloatAsState
import androidx.compose.animation.fadeIn
import androidx.compose.animation.fadeOut
import androidx.compose.animation.slideInVertically
import androidx.compose.animation.slideOutVertically
import androidx.compose.animation.togetherWith
import androidx.compose.foundation.background
import androidx.compose.foundation.interaction.MutableInteractionSource

View file

@ -1,9 +1,9 @@
package com.pixelized.desktop.lwa.ui.screen.gamemaster.item.edit
package com.pixelized.desktop.lwa.ui.screen.admin.item.edit
import com.pixelized.desktop.lwa.ui.composable.checkbox.LwaCheckBoxUio
import com.pixelized.desktop.lwa.ui.composable.textfield.createLwaTextField
import com.pixelized.desktop.lwa.ui.composable.textfield.createLwaTextFieldFlow
import com.pixelized.desktop.lwa.ui.screen.gamemaster.common.tag.GMTagFactory
import com.pixelized.desktop.lwa.ui.screen.admin.common.tag.GMTagFactory
import com.pixelized.shared.lwa.model.alteration.Alteration
import com.pixelized.shared.lwa.model.item.Item
import com.pixelized.shared.lwa.model.tag.Tag
@ -21,7 +21,6 @@ import lwacharactersheet.composeapp.generated.resources.game_master__item__edit_
import lwacharactersheet.composeapp.generated.resources.game_master__item__edit_label
import lwacharactersheet.composeapp.generated.resources.game_master__item__edit_thumbnail
import org.jetbrains.compose.resources.getString
import java.util.UUID
class GMItemEditFactory(
private val tagFactory: GMTagFactory,

View file

@ -1,4 +1,4 @@
package com.pixelized.desktop.lwa.ui.screen.gamemaster.item.edit
package com.pixelized.desktop.lwa.ui.screen.admin.item.edit
import androidx.compose.animation.AnimatedContent
import androidx.compose.animation.EnterTransition
@ -59,8 +59,8 @@ import com.pixelized.desktop.lwa.ui.composable.textfield.LwaTextField
import com.pixelized.desktop.lwa.ui.composable.textfield.LwaTextFieldUio
import com.pixelized.desktop.lwa.ui.navigation.screen.LocalScreenController
import com.pixelized.desktop.lwa.ui.navigation.screen.destination.gamemaster.GMItemEditDestination
import com.pixelized.desktop.lwa.ui.screen.gamemaster.common.tag.GMTagButton
import com.pixelized.desktop.lwa.ui.screen.gamemaster.common.tag.GMTagUio
import com.pixelized.desktop.lwa.ui.screen.admin.common.tag.GMTagButton
import com.pixelized.desktop.lwa.ui.screen.admin.common.tag.GMTagUio
import com.pixelized.desktop.lwa.ui.theme.color.component.LwaButtonColors
import com.pixelized.desktop.lwa.ui.theme.lwa
import com.pixelized.desktop.lwa.utils.extention.calculateHorizontalPaddings

View file

@ -1,4 +1,4 @@
package com.pixelized.desktop.lwa.ui.screen.gamemaster.item.edit
package com.pixelized.desktop.lwa.ui.screen.admin.item.edit
import androidx.lifecycle.SavedStateHandle
import androidx.lifecycle.ViewModel
@ -10,7 +10,7 @@ import com.pixelized.desktop.lwa.repository.tag.TagRepository
import com.pixelized.desktop.lwa.ui.composable.error.ErrorSnackUio
import com.pixelized.desktop.lwa.ui.composable.textfield.LwaTextFieldFlow
import com.pixelized.desktop.lwa.ui.navigation.screen.destination.gamemaster.GMItemEditDestination
import com.pixelized.desktop.lwa.ui.screen.gamemaster.common.tag.GMTagUio
import com.pixelized.desktop.lwa.ui.screen.admin.common.tag.GMTagUio
import com.pixelized.shared.lwa.protocol.rest.APIResponse.ErrorCode
import kotlinx.coroutines.flow.MutableSharedFlow
import kotlinx.coroutines.flow.MutableStateFlow

View file

@ -1,4 +1,4 @@
package com.pixelized.desktop.lwa.ui.screen.gamemaster.item.list
package com.pixelized.desktop.lwa.ui.screen.admin.item.list
import androidx.compose.foundation.background
import androidx.compose.foundation.clickable
@ -33,8 +33,8 @@ import androidx.compose.ui.draw.clip
import androidx.compose.ui.text.style.TextOverflow
import androidx.compose.ui.unit.Dp
import androidx.compose.ui.unit.dp
import com.pixelized.desktop.lwa.ui.screen.gamemaster.common.tag.GMTag
import com.pixelized.desktop.lwa.ui.screen.gamemaster.common.tag.GMTagUio
import com.pixelized.desktop.lwa.ui.screen.admin.common.tag.GMTag
import com.pixelized.desktop.lwa.ui.screen.admin.common.tag.GMTagUio
import com.pixelized.desktop.lwa.ui.theme.lwa
import kotlinx.coroutines.launch
import lwacharactersheet.composeapp.generated.resources.Res

View file

@ -1,6 +1,6 @@
package com.pixelized.desktop.lwa.ui.screen.gamemaster.item.list
package com.pixelized.desktop.lwa.ui.screen.admin.item.list
import com.pixelized.desktop.lwa.ui.screen.gamemaster.common.tag.GMTagFactory
import com.pixelized.desktop.lwa.ui.screen.admin.common.tag.GMTagFactory
import com.pixelized.desktop.lwa.utils.extention.unAccent
import com.pixelized.shared.lwa.model.item.Item
import com.pixelized.shared.lwa.model.tag.Tag

View file

@ -1,4 +1,4 @@
package com.pixelized.desktop.lwa.ui.screen.gamemaster.item.list
package com.pixelized.desktop.lwa.ui.screen.admin.item.list
import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.Box
@ -27,12 +27,13 @@ import androidx.compose.ui.Modifier
import androidx.compose.ui.draw.clipToBounds
import androidx.compose.ui.unit.Dp
import androidx.compose.ui.unit.dp
import androidx.compose.ui.zIndex
import com.pixelized.desktop.lwa.ui.composable.error.ErrorSnackHandler
import com.pixelized.desktop.lwa.ui.composable.textfield.LwaTextFieldUio
import com.pixelized.desktop.lwa.ui.navigation.screen.LocalScreenController
import com.pixelized.desktop.lwa.ui.navigation.screen.destination.gamemaster.navigateToGameMasterItemEditPage
import com.pixelized.desktop.lwa.ui.screen.gamemaster.common.GMFilterHeader
import com.pixelized.desktop.lwa.ui.screen.gamemaster.common.tag.GMTagUio
import com.pixelized.desktop.lwa.ui.screen.admin.common.GMFilterHeader
import com.pixelized.desktop.lwa.ui.screen.admin.common.tag.GMTagUio
import com.pixelized.desktop.lwa.ui.theme.color.component.LwaButtonColors
import kotlinx.coroutines.launch
import lwacharactersheet.composeapp.generated.resources.Res
@ -93,6 +94,7 @@ private fun GMItemContent(
modifier = modifier,
) {
Surface(
modifier = Modifier.zIndex(1f), // avoid display issue with LazyColumnScope.animateItem()
elevation = 1.dp,
) {
GMFilterHeader(

View file

@ -1,15 +1,14 @@
package com.pixelized.desktop.lwa.ui.screen.gamemaster.item.list
package com.pixelized.desktop.lwa.ui.screen.admin.item.list
import androidx.lifecycle.ViewModel
import androidx.lifecycle.viewModelScope
import com.pixelized.desktop.lwa.repository.item.ItemRepository
import com.pixelized.desktop.lwa.repository.tag.TagRepository
import com.pixelized.desktop.lwa.ui.composable.error.ErrorSnackUio
import com.pixelized.desktop.lwa.ui.composable.textfield.LwaTextFieldUio
import com.pixelized.desktop.lwa.ui.composable.textfield.createLwaTextField
import com.pixelized.desktop.lwa.ui.composable.textfield.createLwaTextFieldFlow
import com.pixelized.desktop.lwa.ui.screen.gamemaster.common.tag.GMTagFactory
import com.pixelized.desktop.lwa.ui.screen.gamemaster.common.tag.GMTagUio
import com.pixelized.desktop.lwa.ui.screen.admin.common.tag.GMTagFactory
import com.pixelized.desktop.lwa.ui.screen.admin.common.tag.GMTagUio
import com.pixelized.desktop.lwa.utils.extention.unAccent
import kotlinx.coroutines.flow.MutableSharedFlow
import kotlinx.coroutines.flow.MutableStateFlow