From 8ce942e04e5f0bb39c83dd6eea163095b14c1c41 Mon Sep 17 00:00:00 2001
From: Dennis Postma <dennis@directonline.io>
Date: Sat, 20 Jul 2024 22:01:16 +0200
Subject: [PATCH] Dont unset tile or object after update

---
 .../assetManager/partials/ObjectDetails.vue       |  9 ++++++---
 .../assetManager/partials/TileDetails.vue         | 15 +++++++++------
 2 files changed, 15 insertions(+), 9 deletions(-)

diff --git a/src/components/utilities/assetManager/partials/ObjectDetails.vue b/src/components/utilities/assetManager/partials/ObjectDetails.vue
index 6b3469c..4bfa368 100644
--- a/src/components/utilities/assetManager/partials/ObjectDetails.vue
+++ b/src/components/utilities/assetManager/partials/ObjectDetails.vue
@@ -71,10 +71,13 @@ function removeObject() {
   })
 }
 
-function refreshObjectList() {
+function refreshObjectList(unsetSelectedObject = true) {
   gameStore.connection?.emit('gm:object:list', {}, (response: Object[]) => {
     assetManagerStore.setObjectList(response)
-    assetManagerStore.setSelectedObject(null)
+
+    if (unsetSelectedObject) {
+      assetManagerStore.setSelectedObject(null)
+    }
 
     if (zoneEditorStore.active) {
       console.log('Refreshing object list for zone store')
@@ -104,7 +107,7 @@ function saveObject() {
         console.error('Failed to save object')
         return
       }
-      refreshObjectList()
+      refreshObjectList(false)
     }
   )
 }
diff --git a/src/components/utilities/assetManager/partials/TileDetails.vue b/src/components/utilities/assetManager/partials/TileDetails.vue
index 7e4d244..3921cce 100644
--- a/src/components/utilities/assetManager/partials/TileDetails.vue
+++ b/src/components/utilities/assetManager/partials/TileDetails.vue
@@ -56,7 +56,7 @@ watch(selectedTile, (tile: Tile | null) => {
 })
 
 function removeTile() {
-  gameStore.connection.emit('gm:tile:remove', { tile: selectedTile.value?.id }, (response: boolean) => {
+  gameStore.connection?.emit('gm:tile:remove', { tile: selectedTile.value?.id }, (response: boolean) => {
     if (!response) {
       console.error('Failed to remove tile')
       return
@@ -65,10 +65,13 @@ function removeTile() {
   })
 }
 
-function refreshTileList() {
-  gameStore.connection.emit('gm:tile:list', {}, (response: Tile[]) => {
+function refreshTileList(unsetSelectedTile = true) {
+  gameStore.connection?.emit('gm:tile:list', {}, (response: Tile[]) => {
     assetManagerStore.setTileList(response)
-    assetManagerStore.setSelectedTile(null)
+
+    if (unsetSelectedTile) {
+      assetManagerStore.setSelectedTile(null)
+    }
 
     if (zoneEditorStore.active) {
       console.log('Refreshing tile list for zone store')
@@ -83,7 +86,7 @@ function saveTile() {
     return
   }
 
-  gameStore.connection.emit(
+  gameStore.connection?.emit(
     'gm:tile:update',
     {
       id: selectedTile.value.id,
@@ -95,7 +98,7 @@ function saveTile() {
         console.error('Failed to save tile')
         return
       }
-      refreshTileList()
+      refreshTileList(false)
     }
   )
 }