diff --git a/composeApp/src/commonMain/composeResources/drawable/ic_save_24dp.xml b/composeApp/src/commonMain/composeResources/drawable/ic_save_24dp.xml new file mode 100644 index 0000000..21e6721 --- /dev/null +++ b/composeApp/src/commonMain/composeResources/drawable/ic_save_24dp.xml @@ -0,0 +1,12 @@ + + + + + + \ No newline at end of file diff --git a/composeApp/src/commonMain/kotlin/com/pixelized/desktop/lwa/App.kt b/composeApp/src/commonMain/kotlin/com/pixelized/desktop/lwa/App.kt index c9a257b..aada2bd 100644 --- a/composeApp/src/commonMain/kotlin/com/pixelized/desktop/lwa/App.kt +++ b/composeApp/src/commonMain/kotlin/com/pixelized/desktop/lwa/App.kt @@ -144,7 +144,6 @@ private fun WindowsHandler( is CharacterSheetCreateWindow -> CharacterSheetMainNavHost( startDestination = CharacterSheetEditDestination.navigationRoute( id = window.sheetId, - enableBack = false, ), ) } diff --git a/composeApp/src/commonMain/kotlin/com/pixelized/desktop/lwa/navigation/screen/destination/CharacterSheetEditDestination.kt b/composeApp/src/commonMain/kotlin/com/pixelized/desktop/lwa/navigation/screen/destination/CharacterSheetEditDestination.kt index 4d122ac..1c7399b 100644 --- a/composeApp/src/commonMain/kotlin/com/pixelized/desktop/lwa/navigation/screen/destination/CharacterSheetEditDestination.kt +++ b/composeApp/src/commonMain/kotlin/com/pixelized/desktop/lwa/navigation/screen/destination/CharacterSheetEditDestination.kt @@ -12,33 +12,24 @@ import com.pixelized.desktop.lwa.utils.extention.ARG object CharacterSheetEditDestination { private const val ROUTE = "character.sheet.edit" private const val CHARACTER_ID = "id" - private const val ENABLE_BACK = "enable_back" - fun baseRoute() = "$ROUTE?${CHARACTER_ID.ARG}&${ENABLE_BACK.ARG}" + fun baseRoute() = "$ROUTE?${CHARACTER_ID.ARG}" - fun navigationRoute(id: String?, enableBack: Boolean) = ROUTE + - "?$CHARACTER_ID=$id" + - "&$ENABLE_BACK=$enableBack" + fun navigationRoute(id: String?) = ROUTE + + "?$CHARACTER_ID=$id" fun arguments() = listOf( navArgument(CHARACTER_ID) { nullable = true type = NavType.StringType }, - navArgument(ENABLE_BACK) { - nullable = false - type = NavType.BoolType - } ) data class Argument( val id: String?, - val enableBack: Boolean, ) { constructor(savedStateHandle: SavedStateHandle) : this( id = savedStateHandle.get(CHARACTER_ID), - enableBack = savedStateHandle.get(ENABLE_BACK) - ?: error("Missing enableBack argument"), ) } } @@ -54,8 +45,7 @@ fun NavGraphBuilder.composableCharacterSheetEditPage() { fun NavHostController.navigateToCharacterSheetEdit( id: String? = null, - enableBack: Boolean = true, ) { - val route = CharacterSheetEditDestination.navigationRoute(id = id, enableBack = enableBack) + val route = CharacterSheetEditDestination.navigationRoute(id = id) navigate(route = route) } \ No newline at end of file diff --git a/composeApp/src/commonMain/kotlin/com/pixelized/desktop/lwa/screen/characterSheet/edit/CharacterSheetEditPage.kt b/composeApp/src/commonMain/kotlin/com/pixelized/desktop/lwa/screen/characterSheet/edit/CharacterSheetEditPage.kt index b2a411a..50f6c06 100644 --- a/composeApp/src/commonMain/kotlin/com/pixelized/desktop/lwa/screen/characterSheet/edit/CharacterSheetEditPage.kt +++ b/composeApp/src/commonMain/kotlin/com/pixelized/desktop/lwa/screen/characterSheet/edit/CharacterSheetEditPage.kt @@ -49,6 +49,9 @@ import lwacharactersheet.composeapp.generated.resources.character_sheet_edit__sa import lwacharactersheet.composeapp.generated.resources.character_sheet_edit__skills__magic_action import lwacharactersheet.composeapp.generated.resources.character_sheet_edit__skills__special_action import lwacharactersheet.composeapp.generated.resources.character_sheet_edit__sub_characteristics__title +import lwacharactersheet.composeapp.generated.resources.ic_save_24dp +import lwacharactersheet.composeapp.generated.resources.ic_skull_32dp +import org.jetbrains.compose.resources.painterResource import org.jetbrains.compose.resources.stringResource import org.koin.compose.viewmodel.koinViewModel @@ -109,13 +112,6 @@ fun CharacterSheetEditPage( CharacterSheetEdit( title = window.title, form = viewModel.characterSheet.value, - onBack = remember { - if (viewModel.enableBack) { - { screen.popBackStack() } - } else { - null - } - }, onNewSpecialSkill = { scope.launch { viewModel.onNewSpecialSkill() @@ -148,7 +144,6 @@ fun CharacterSheetEdit( modifier: Modifier = Modifier, title: String, form: CharacterSheetEditPageUio, - onBack: (() -> Unit)?, onNewSpecialSkill: () -> Unit, onNewMagicSkill: () -> Unit, onNewAction: () -> Unit, @@ -165,18 +160,17 @@ fun CharacterSheetEdit( text = title, ) }, - navigationIcon = onBack?.let { action: () -> Unit -> - { - IconButton( - onClick = action, - ) { - Icon( - imageVector = Icons.AutoMirrored.Filled.ArrowBack, - contentDescription = null, - ) - } + actions = { + IconButton( + onClick = onSave, + ) { + Icon( + painter = painterResource(Res.drawable.ic_save_24dp), + tint = MaterialTheme.colors.primary, + contentDescription = null, + ) } - } + }, ) }, content = { paddingValues -> diff --git a/composeApp/src/commonMain/kotlin/com/pixelized/desktop/lwa/screen/characterSheet/edit/CharacterSheetEditViewModel.kt b/composeApp/src/commonMain/kotlin/com/pixelized/desktop/lwa/screen/characterSheet/edit/CharacterSheetEditViewModel.kt index 87029cc..88f5470 100644 --- a/composeApp/src/commonMain/kotlin/com/pixelized/desktop/lwa/screen/characterSheet/edit/CharacterSheetEditViewModel.kt +++ b/composeApp/src/commonMain/kotlin/com/pixelized/desktop/lwa/screen/characterSheet/edit/CharacterSheetEditViewModel.kt @@ -24,8 +24,6 @@ class CharacterSheetEditViewModel( private val argument = CharacterSheetEditDestination.Argument(savedStateHandle) - val enableBack = argument.enableBack - private val _characterSheet = mutableStateOf( characterSheetRepository.characterSheetFlow(id = argument.id).value.let { runBlocking {