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 {